Recupero Dati query



  • Recupero Dati query
    di §Desmo79 (utente non iscritto) data: 30/04/2014 17:14:30

    Ciao,
    dopo aver effettuato una query su un db Access (da macro VBA)
    devo poter gestire e controllare il risultato.

    come da esempio risportato devo poter gestire il valore restituito dalla query.

    Grazie
     
    Set cn = New ADODB.Connection
        strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:DB.accdb;"
        cn.ConnectionString = strConn
        cn.Open
        strSQL = "SELECT MAX(ID)+1 from DATI"
        cn.Execute (strSQL)



  • di Vecchio Frac data: 30/04/2014 20:49:58

    Tipicamente una query SELECT estrae dei record da una tabella e restituisce un insieme di righe (un recordset).
    Quindi ti serve un contenitore dove depositare le righe (nel tuo esempio è una riga sola che contiene il numero più alto che trova relativo al campo "id").
    Il contenitore è di tipo Recordset e l'assegnazione si esegue con Set perchè si tratta di un oggetto di ADODB.
    Ora non posso fare prove concrete con un file accdb ma così dovrebbe funzionare.
    Attento che se il campo ID è vuoto, cioè non esiste nessun record, è meglio passare alla funzione Nz il valore Max e farsi restituire 0 in caso di esito positivo per evitare errori con un valore Null:
    strSQL = "SELECT Nz(Max(ID),0)+1 from DATI"
     
    Set cn = New ADODB.Connection
    Set rs = New ADODB.Recordset     '<<<<<
        strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:DB.accdb;"
        cn.ConnectionString = strConn
        cn.Open
        strSQL = "SELECT MAX(ID)+1 from DATI"
        
    Set rs = cn.Execute (strSQL)
    msgbox rs(0)    
        






  • di §Desmo79 (utente non iscritto) data: 02/05/2014 13:56:47

    perfetto risolto.

    Grazie 1000