Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Recorset di una query
lunedì 06 novembre 2006 - 09.25
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Emilia
Profilo
| Newbie
39
messaggi | Data Invio:
lun 6 nov 2006 - 09:25
Salve ragazzi, vorrei sapere come prelevare un dato tramite un Recordset di una query.
In pratica io ho già utilizzato i Recordset su tabelle.
Dalle guide che ho letto in merito ai Recordset di una query sembra che la gestione sia la stessa dei Recordet delle tabelle, quindi ho adattato quello che avevo usato per le tabelle alla query :
Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset("QueryAssociaCodice")
rs.MoveFirst
CodiceAutomezzo = rs("[Codice Automezzo]")
Ma mi segnale l'errore: Parametri insufficienti, previsti 1.
A questo punto ho provato ad aggiungere il parametro DbOpenTable:
Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset("QueryAssociaCodice", dbOpenTable)
rs.MoveFirst
CodiceAutomezzo = rs("[Codice Automezzo]")
ma mi segnala l'errore : Operazione non valida.
In cosa sbaglio?
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
lun 6 nov 2006 - 09:31
> Dim rs As Recordset
>
> Set rs = CurrentDb.OpenRecordset("QueryAssociaCodice")
> rs.MoveFirst
> CodiceAutomezzo = rs("[Codice Automezzo]")
>
>Ma mi segnale l'errore: Parametri insufficienti, previsti 1.
Ciao Emilia,
per caso la query è parametrica?
Se non lo è significa che il nome della colonna che vai a specificare non è corretto.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Emilia
Profilo
| Newbie
39
messaggi | Data Invio:
lun 6 nov 2006 - 13:58
La query prende come parametri un NumeroTelepass passato dalla maschera e restituisce un CodiceAutomezzo.
Il campo della query che contiene il Codice si chiama proprio Codice Automezzo, quindi non credo che abbia sbagliato il nome della colonna.
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
lun 6 nov 2006 - 14:12
>La query prende come parametri un NumeroTelepass passato dalla
>maschera e restituisce un CodiceAutomezzo.
Dato che la query necessita di un parametro di input dovrai specificarlo prima di eseguirla.
Utilizza la collection Parameters dell'oggetto QueryDef come riportato nel seguente esempio:
http://www.developerfusion.co.uk/show/111/
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Emilia
Profilo
| Newbie
39
messaggi | Data Invio:
lun 6 nov 2006 - 18:35
Ciao Lorenzo,
l’esempio che mi hai proposto ho cercato di adattarlo alle mie esigenze e ne è uscito fuori il seguente codice:
Dim rst As Recordset
Dim query As QueryDef
Set query = CurrentDb.QueryDefs("QueryAssociaCodice")
QueryAssociaCodice è una query già esitente nel mio Database che per filtrare ha bisogno di prendere in input il Numero di Via-Card che inserisco nella maschera.
query.Parameters("[NumeroViaCard]") = ViaCard
ViaCard è il campo presente nella maschera, quindi proprio quello che la query dovrà ricevere in input.
Set rst = query.OpenRecordset()
rst.MoveFirst
CodiceAutomezzo = rst("[Codice Automezzo]")
Questo codice mi genera l'errore : Elemento non trovato in questo insieme!
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
lun 6 nov 2006 - 21:49
> query.Parameters("[NumeroViaCard]") = ViaCard
>ViaCard è il campo presente nella maschera, quindi proprio quello
>che la query dovrà ricevere in input.
>
> Set rst = query.OpenRecordset()
> rst.MoveFirst
> CodiceAutomezzo = rst("[Codice Automezzo]")
>
>Questo codice mi genera l'errore : Elemento non trovato in questo
>insieme!
L'errore dove si verifica? Quando valorizzi il parametro della query oppure quando leggi il valore della colonna del recordset?
Hai provato a rimuovere quelle parentesi quadre?
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Emilia
Profilo
| Newbie
39
messaggi | Data Invio:
mar 7 nov 2006 - 12:17
Si ho provato ma mi da lo stesso errore.
Tieni presente che il codice sul furum è come realmente l'ho scritto.
Non vorrei che ci manchi qualche altro pezzo (non so, magari inerente la creazione del database o del workset, anche se credo che mettendo CurrentDb dovrebbe già includere entrambi e poi l'errore non mi sembra inerente a quello).
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mar 7 nov 2006 - 13:48
>Si ho provato ma mi da lo stesso errore.
L'errore dove si verifica? Quando valorizzi il parametro della query oppure quando leggi il valore della colonna del recordset?
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Emilia
Profilo
| Newbie
39
messaggi | Data Invio:
mar 7 nov 2006 - 15:09
Visto che mi da come errore : Elemento non trovato in questo insieme!, penso che l'errore si verifichi quando leggo il valore nella colonna del Recorset .
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mar 7 nov 2006 - 15:19
>Visto che mi da come errore : Elemento non trovato in questo
>insieme!, penso che l'errore si verifichi quando leggo il valore
>nella colonna del Recorset .
Pensi?! Non puoi debuggare il tuo codice eseguendo passo passo ogni singola riga in modo da vedere dove si scatena l'eccezione?
Se hai ancora problemi, allega in un nuovo post un mdb di esempio (compresso in un fle zip) che contenga le tabelle base, la query ed un modulo con il codice che hai scritto in modo da individuare insieme l'errore.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Emilia
Profilo
| Newbie
39
messaggi | Data Invio:
gio 9 nov 2006 - 15:12
Ho risolto diversamente, ho scoperto che la query è possibile effettuarla direttamente sulla maschera e quindi non ho avuto bisogno del Recordset perchè il campo l'ho direttamente collegato alla query in modo che il risultato mi comparisse nella casella di testo.:)
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !