Pur essendo assai datato esistono ancora molti applicativi scritti in VB6, ad esempio, che si interfacciano con database Access attraverso DAO (Data Access Object).
Ad esempio, se volessimo estrarre tutti i clienti dal classico database Northwind.mdb scriveremmo qualcosa del genere:
Private Sub myTest
Dim MyDB As DAO.Database
Dim MySet As DAO.Recordset
Set MyDB = CurrentDB()
Set MySet = MyDB.OpenRecordset("Select * from Employees", dbOpenDynaset)
End Sub
Identica sintassi se dovessimo richiamare una query.
Private Sub myTest
Dim MyDB As DAO.Database
Dim MySet As DAO.Recordset
Set MyDB = CurrentDB()
Set MySet = MyDB.OpenRecordset("Query1", dbOpenDynaset)
End Sub
Qualche propblemino in più se la nostra query fosse una query parametrica.
Infatti sarebbe necessario dichiarare i vari parametri ed impostarne i rispettivi valori prima di eseguirla, pena la restituzione di un messaggio d'errore "Troppo pochi parametri. Previsto x"
Quando si fa riferimento, in DAO, ad una query con parametri, la sintassi appropriata è la seguente:
Private Sub mySub()
Dim MyDB As DAO.Database
Dim MyDef As DAO.QueryDef
Dim MySet As DAO.Recordset
Set MyDB = CurrentDB()
Set MyDef = MyDB.QueryDefs("Query1")
MyDef.Parameters("@PrimoParametro").Value = PrimoValore
MyDef.Parameters("@SecondoParametro").Value = SecondoValore
MyDef.Parameters("@TerzoParametro").Value = TerzoValore
Set MySet = MyDef.OpenRecordset(dbOpenDynset)
MySet.Close
MyDef.Close
End Sub
Ricordiamo che l'ordine dei parametri non è necessario ed è possibile referenziarli anche tramite il loro indice (es. MyDef.Parameters(0).Value = PrimoValore)