2016-03-25 3 views
0

Zuerst habe ich nach einer Antwort auf diese Frage gesucht, aber alle Suchen haben Antworten gefunden, wie eine globale Variable in einer Abfrage verwendet wird. Ich weiß, wie das geht.So definieren Sie eine globale MS Access-Variable mit einer SQL-Zeichenfolge

Ich möchte ein Abfrageobjekt erstellen, das UseRates aufruft, die berechnet werden, während Daten geändert werden - das ist einfach. Die unbekannte Antwort ist, wie diese Abfrage nennen (oder geben Sie die Ergebnisse dieser Abfrage) in eine globale Variable, so dass die globale Variablendefinition so etwas wie (Name des Query-Objekt ist qryUseRates) aussehen:

Public gUseRate1 = "SELECT qryUseRates.UseRate FROM qryUseRates WHERE lngAgeGrp = 1" 

Dann Definieren Sie natürlich 4 weitere globale Variablen in ähnlicher Weise für die anderen 4 Verwendungsraten (Ändern der Where-Klausel für jeden).

Der Grund: Die Nutzungsraten werden mit allen aggregierten geografischen Gebieten berechnet, aber dann werden sie für jedes geografische Gebiet separat angewendet. Daher gibt QryUseRates 5 Zeilen zurück, aber die Abfrage, die diese Raten verwendet, hat fast 100 Zeilen, so dass ich keine Möglichkeit sehe, den 2 Abfragen beizutreten.

Nur ein Follow-up; Sobald die Variablen definiert sind ich tun würde:

Public Function GetUseRate1() 
getuserate1 = gUseRate1 

dann auf ein neues Abfrage-Objekt gehen und wo ich es brauche, würde ich verwenden GetUseRate1(). Wenn eine globale Variable korrekt definiert ist, scheint dies zu funktionieren - es wurde versucht, einfach etwas Einfaches zu verwenden, um die globale Variable zu definieren.

+0

So Ihre Frage * Wie kann ich eine Abfrage ausführen und das resultierende Feld in eine Variable gelesen * ? (Eigentlich sollten Sie wahrscheinlich in ein Array einlesen, damit Sie alle Variablen zusammenhalten können, aber Sie * können * fünf separate Variablen verwenden.) Wenn das * nicht * ist, was Sie fragen, dann kann ich leider nicht Machen Sie einen Sinn für das, was Sie geschrieben haben. –

+0

Ken, das ist was ich suche. Danke, ich sehe, dass Gustav es mit DLookup() hat. – random13

Antwort

0

Verwenden DLookup:

Public gUseRate1 As Currency 
gUseRate1 = DLookup("UseRate", "qryUseRates", "lngAgeGrp = 1") 

Wenn „nicht gefunden“ zu erwarten ist:

gUseRate1 = Nz(DLookup("UseRate", "qryUseRates", "lngAgeGrp = 1"), 0) 
+0

Genau! Vielen Dank. Ich begann den Pfad von DLookup(), wandte mich dann aber den globalen Variablen zu, bevor ich die Antwort bekam, die ich brauchte, da Global für eine andere Verwendung benötigt wurde. Ich mag sie beide und habe sie jetzt in meinem Arsenal. Danke noch einmal. – random13

+0

Großartig! Dann bitte als beantwortet markieren. – Gustav

Verwandte Themen