Queries

2.2 Aprire una query parametrica da codice VBA.
  Federico Luciani, Roberto
(D)
Come faccio ad aprire una query con parametri da codice?

(R)
Ipotizziamo di avere una query parametrica dal nome qryCompleanni; i parametri si chiamano [Mese:] e [Sesso:]
Allora il codice necessario per passare i parametri alla query e creare un recordset basato sul risultato della query è:
   Dim dbs As DAO.Database
   Dim qdf As DAO.QueryDef
   Dim rst as DAO.Recordset
   Set dbs = CurrentDB
   Set qdf = dbs.QueryDefs("qryCompleanni")
   qdf.Parameters![Mese:] = "Marzo"
   qdf.Parameters![Sesso:] = "F"
   Set rst = qdf.OpenRecordset
   '...
   rst.close
   qdf.close
   Set dbs = nothing
Se poi i parametri sono contenuti in una maschera chiamata frmParametri in due controlli chiamati rispettivamente CercaMese e CercaSesso:
   Dim dbs As DAO.Database
   Dim qdf As DAO.QueryDef
   Dim rst as DAO.Recordset
   Set dbs = CurrentDB
   Set qdf = dbs.QueryDefs("qryCompleanni")
   qdf.Parameters![Forms!frmParametri!CercaMese] = Forms!frmParametri!CercaMese
   qdf.Parameters![Forms!frmParametri!cercaSesso] = Forms!frmParametri!CercaSesso
   Set rst = qdf.OpenRecordset
   '...
   rst.close
   qdf.close
   Set dbs = nothing
NB
Il codice VBA di cui sopra fa riferimento alle librerie Microsoft DAO quindi, se si usa una versione di Access successiva ad Access 97, occorre aggiungere tale libreria ai riferimenti del database.


Se pensate di avere del materiale freeware interessante e volete pubblicarlo, allora leggete qui.