|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Mar 2003
Città: tra Borgo Ticino e Milano
Messaggi: 6046
|
Problema Visual Basic - SQL - ADODB
Ciao, qualcuno può aiutarmi con questo piccolo (spero) problema?
In visual Basic, sto creando un'applicazione che interroghi un database access. Devo far eseguire una prima query e su questa devo far eseguire un'ulteriore query (che poi sarebbe solo un fitro). Il problema è che mi da errore quando esegue la seconda. Vi posto la parte di programma incriminata, riducendola all'osso. (cioè ho tolto alcune variabili e al loro posto ho messo dellce costanti per non complicare il tutto) Su MSDN ho trovato informazioni sull'errore ma ancora non riesco a risolverlo. Qualcuno può aiutarmi??? Ecco il codice e in fondo il codice dell'errore. ______________________ ' apro database e tabella Set conn = New ADODB.Connection conn.ConnectionString = "DSN = SystemDSN_nome" strConn = "driver={Microsoft Access Driver (*.mdb)}; dbq=C:\database.mdb" conn.Open strConn Set rst = New ADODB.Recordset rst.Open tabella1, conn, , adLockPessimistic ' Prima query string1 ="SELECT Staz_Inizio, Staz_Fine, count(motivo) as Somma FROM tabella1 GROUP BY Staz_Inizio, Staz_Fine" Set query1 = conn.Execute(string1) 'Seconda query: query incriminata string2="" _ & "SELECT * FROM query1 WHERE Staz_Inizio=""Milano Centrale"" AND Staz_fine=""Novara"" " set query2= conn.Execute(string2) ______________________ RunTime Error '-2147217904 (80040e10)' [Microsoft][Driver ODBC Microsoft Access] Parametri Insufficienti. Previsti 2 ______________________ GRazie a tutti
__________________
firma in progress |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ma query1 è salvata nel database ?
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Mar 2003
Città: tra Borgo Ticino e Milano
Messaggi: 6046
|
Sinceramente non sono sicuro che sia salvata.
Io all'inizio della routine dichiaro query1 come variabile di tipo recordset. Inoltre, se string2 fosse così: string2= "SELECT * FROM query1" il programma non darebbe più errore. Quindi il problema non sta nel salvataggio di query1 secondo me. ho letto che quell'errore si verifica quando sbagli a mettere il nome dei campi nell'istruzione WHERE, ma sono sicuro di aver scritto giusto.
__________________
firma in progress |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Probabilmente query1 è salvata dentro al DB... Non puoi fare in questo modo per filtrare il risultato della query che hai fatto all'inizio... Devi comporre una nuova query SQL che esegue sia la prima query che il filtraggio dei dati risultanti...
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Mar 2003
Città: tra Borgo Ticino e Milano
Messaggi: 6046
|
ok. a questo punto però mi si presenta un altro problema.
per fare tutto insieme devo utilizzare l'istruzione HAVING (visto che c'è un raggruppamento) e in qualunque modo la scriva mi da errore di sintassi.
__________________
firma in progress |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:08.