Recordset di Query

martedì 14 novembre 2006 - 15.27

Emilia Profilo | Newbie


Ciao Ragazzi,
volevo capire come si fa ad aprire un RecordSet di una Query che prende in input un parametro .
Esempio:
Ho la query SommaLitri che calcola i LitriTotali di carburante relativi ad un Automezzo.
Il parametro che viene passato alla query è proprio CodiceAutomezzo che
fa in modo che la query calcoli solo i LitriTotali di quel CodiceAutomezzo.

Ora, dalla maschera da cui gli mando anche il parametro CodiceAutomezzo,
in VBA, vorrei aprire il Recordset di questa query per poter
recuperare il valore di LitriTotali relativi al CodiceAutomezzo selezionato.
La maschera appena citata si chiama CalcolaConsumoMedio.

Ho scritto per questo problema il seguente codice, ma mi restitutisce l'errore
"nessun elemento trovato per questo insieme".

Dim rst As Recordset
Dim qdf As QueryDef
Dim par As Parameter

Set qdf = CurrentDb.QueryDefs("CalcolaTotaleLitri")

Set par = qdf.Parameters!Codice

Set rst = qdf.OpenRecordset()
rst.MoveFirst

TotaleLitri = rst("LitriTotali")

Aiutatemi

lbenaglia Profilo | Guru

>volevo capire come si fa ad aprire un RecordSet di una Query
>che prende in input un parametro .

Ciao Emilia,

se non ricordo male ti avevo già indicato questo esempio:
http://www.developerfusion.co.uk/show/111/

Quindi il tuo codice dovebbe essere:

Dim rst As Recordset Dim qdf As QueryDef Set qdf = CurrentDb.QueryDefs("CalcolaTotaleLitri") qdf.Parameters("Codice") = "Il tuo valore" Set rst = qdf.OpenRecordset() TotaleLitri = rst.Fields("LitriTotali").Value

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

Emilia Profilo | Newbie

Si mi si è ripresentato il problema per un altra maschera e quindi sto riprovando a fare in modo che funzioni

Emilia Profilo | Newbie

Sto Debaggando il Codice e il problema sta in questa linea:

qdf.Parameters![Codice Automezzo] = "A12"

il codice che ho scritto è il seguente, un mix tra il tuo e qualche cosa presa sulla rete. Ho fatto svariati tentativi di modifica ma mi da sempre lo stesso errore

Dim rst As DAO.Recordset
Dim qdf As DAO.QueryDef
Dim db As DAO.Database

Set db = CurrentDb
Set qdf = CurrentDb.QueryDefs("CalcolaTotaleLitri")

qdf.Parameters![Codice Automezzo] = "A12"

MsgBox "Ciao"

Set rst = qdf.OpenRecordset(dbOpenDynaset)

TotaleLitri = rst("ImportoTotale")

lbenaglia Profilo | Guru

>Sto Debaggando il Codice e il problema sta in questa linea:
>
>qdf.Parameters![Codice Automezzo] = "A12"

Posta un mdb di esempio contenente la query e le tabelle base richiamate nella query con alcune righe di prova.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

Emilia Profilo | Newbie

Ho risolto ,
Il problema stava in quella linea. Ho trovato in rete la soluzione, ho inserito la seguente riga

qdf.Parameters![Forms!CalcolaConsumoMedio!Codice] = Forms!CalcolaConsumoMedio!Codice

che in pratica prende il parametro dalla maschera e successivamente lo passa alla query.
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 !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5