Vind ons op socialmedia

Query opbouwen vanuit VBA

VBA Query

Maak een query met VBA

Wanneer je eenmaal aan het bouwen bent met een database zul je merken dat er veel query’s worden gebouwd waardoor jet het overzicht snel kwijt bent.

Soms ontkom je er niet aan om de verschillende waarden die je zoekt steeds een nieuwe query voor te bouwen omdat die gegevens bijvoorbeeld net buiten de relatie van de tabellen licht.

Je kunt er dan voor kiezen met VBA een query te bouwen en vervolgens de gegenereerde data te gebruiken en vervolgens de gemaakt e query weer te verwijderen.

Onderstaande code bouwt een query op en leest de gegevens in een variabele. aan het eind wordt gemaakte query weer verwijderd

Click to open code
Set db = CurrentDb
strsql = "SELECT DISTINCTROW [Order Details].CustomerID, [UnitPrice]*[Quantity] AS Omzet, [Order Details].OrderDetailID, [Order Details].Date FROM [Order Details] GROUP BY [Order Details].CustomerID, [UnitPrice]*[Quantity], [Order Details].OrderDetailID, [Order Details].Date, [Order Details].ProductID, [Order Details].Retour HAVING ((([Order Details].CustomerID)=1 Or ([Order Details].CustomerID)>9) AND (([Order Details].Date)>=getDat1() And ([Order Details].Date)<=getdat2()) AND (([Order Details].ProductID)<>116 And ([Order Details].ProductID)<>115) AND (([Order Details].Retour)=False));"
Set qdf = db.CreateQueryDef("Myquery", strsql)

If IsNull(DLookup("sum([omzet])", "Myquery")) Then
dblomzetexcl = 0
Else
dblomzetexcl = DLookup("sum([omzet])", "Myquery")
End If

DoCmd.DeleteObject acQuery, "myquery"
qdf.Close
db.Close

Bookmark and Share