Discussion:
In VBA Wert aus Abfrage in Variable speichern
(zu alt für eine Antwort)
Josef Poetzl
2003-09-25 12:32:55 UTC
Permalink
Hallo!
wie kann ich einen Wert in eine Variable speichern, welchen ich aus einer
Tabelle mit einer Abfrage auslese?
Aber schon ganz nahe der Lösung ;-)
Dim WertDenIchWill as Integer
WertDenIchWill = unbekannteFUNKTION("select id from table where value = " & me.field.value)
WertDenIchWill = DLookup("FeldName", "Tabelle", "Bedingung")
Anm.: Bedingung sollte eindeutig sein.

Für Dein Beispiel vermutlich:
FeldName = Feld aus Tabelle
Bedingung = "id = " & Me!ID.value

Anm.: Statt den Dxxxx-Funktionen verwende ich lieber eine
Recordset-Varainte. siehe auf meiner (noch nicht fertigen Seite):
http://access.joposol.com Punkt D15 -Aggregatfunktionen


Oder Du verwendest gleich ein Recordset direkt in Deiner Funktion:

Dim WertDenIchWill as Integer
Dim strSQL as String
Dim rst as DAO.Recordset

strSQL= "SELECT FeldName FROM Tabelle WHERE ID=" & idWert
set rst = CurrentDB.OpenRecordset(strSQL)
With rst
if .EOF Then
WertDenIchWill = DeinStandardwert
else
WertDenIchWill = Nz(.Fields(0),DeinStandardwert)
' statt .Fields(0) kannst Du auch
' .Fields("FeldName") verwenden
end if
.Close
end With
set rst=nothing

mfg
Josef
Gunter Avenius
2003-09-25 12:36:54 UTC
Permalink
Hallo Daniel,
Hallo NG,
wie kann ich einen Wert in eine Variable speichern, welchen ich aus
einer Tabelle mit einer Abfrage auslese?
Dim WertDenIchWill as Integer
WertDenIchWill = unbekannteFUNKTION("select id from table where
value = " & me.field.value)
wenn in "field" eine Zahl steht:
WertDenIchWill =Dlookup("id","table","value = " & me!field)

wenn in "field" ein Text steht:
WertDenIchWill =Dlookup("id","table","value = '" & me!field & "'")

"WertDenIchWill" enthält dann die "id"
--
Gruß
Gunter
_________________________________________________
Access FAQ: http://www.donkarl.com
home: http://www.avenius.com
Philipp Stiefel
2003-09-25 12:40:16 UTC
Permalink
wie kann ich einen Wert in eine Variable speichern, welchen ich aus einer
Tabelle mit einer Abfrage auslese?
Dim WertDenIchWill as Integer
WertDenIchWill = unbekannteFUNKTION("select id from table where value = " &
me.field.value)
FALSCH
Die Idee funktioniert und die unbekannte Funktion heißt DLookup.
Damit kannst du auf den SQL-String wahrscheinlich auch verzichten.
macht das sinn?
Vermutlich ja, aber das musst du wissen.

Gruß
Phil
--
Bitte verwendet für Fragen zu Access mit DBMS-Server-Backends
die Newsgroup microsoft.public.de.access.clientserver! Danke!

Richtig zitieren im Usenet -> http://got.to/quote
Johannes Karl
2003-09-25 14:34:41 UTC
Permalink
In article <***@nntp.fh-trier.de>, ***@schimpfoessl.de
says...
Hallo NG,
wie kann ich einen Wert in eine Variable speichern, welchen ich aus einer
Tabelle mit einer Abfrage auslese?
Dim WertDenIchWill as Integer
WertDenIchWill = unbekannteFUNKTION("select id from table where value = " &
me.field.value)
FALSCH
macht das sinn?
Gruss Daniel
Richtig:

Dim WertDenIchWill as Integer
WertDenIchWill = dlookup("id","table","value = " & me.field.value)

falls du aber value als text vergleichen willst:

Dim WertDenIchWill as Integer
WertDenIchWill = dlookup("id","table","value = '" & me.field.value & "'")

hth Johannes

Loading...