gelöst VBA in Access - IF Verzweigung
Probleme mit if-verzweigung
Hallo,
ich hab nen Problem mit folgender if Verzweigung:
If Me!Identcode.Value = DLookup("Identcode", "Scandaten") Then
MsgBox "Achtung: Wert ist doppelt"
Else
DoCmd.RunMacro "Speichern"
End If
Also wenn die Schleife ausgeführt wird, wird jedesmal das Makro ausgeführt egal ob der if Wert True oder False ist ohne das die Message-Box ausgeführt wird. Kann mir jemand dabei helfen das die MsgBox ausgeführt wird wenn der if wert true ist?
Vielen dank im Vorraus,
Matthias
ich hab nen Problem mit folgender if Verzweigung:
If Me!Identcode.Value = DLookup("Identcode", "Scandaten") Then
MsgBox "Achtung: Wert ist doppelt"
Else
DoCmd.RunMacro "Speichern"
End If
Also wenn die Schleife ausgeführt wird, wird jedesmal das Makro ausgeführt egal ob der if Wert True oder False ist ohne das die Message-Box ausgeführt wird. Kann mir jemand dabei helfen das die MsgBox ausgeführt wird wenn der if wert true ist?
Vielen dank im Vorraus,
Matthias
7 Antworten
- LÖSUNG verkehrsberuhigt schreibt am 08.02.2006 um 16:21:27 Uhr
- LÖSUNG EXXON schreibt am 09.02.2006 um 10:12:22 Uhr
- LÖSUNG verkehrsberuhigt schreibt am 09.02.2006 um 10:28:16 Uhr
- LÖSUNG EXXON schreibt am 09.02.2006 um 10:45:41 Uhr
- LÖSUNG verkehrsberuhigt schreibt am 09.02.2006 um 10:57:58 Uhr
- LÖSUNG EXXON schreibt am 09.02.2006 um 11:21:12 Uhr
- LÖSUNG EXXON schreibt am 09.02.2006 um 14:54:12 Uhr
- LÖSUNG EXXON schreibt am 09.02.2006 um 11:21:12 Uhr
- LÖSUNG verkehrsberuhigt schreibt am 09.02.2006 um 10:57:58 Uhr
- LÖSUNG EXXON schreibt am 09.02.2006 um 10:45:41 Uhr
- LÖSUNG verkehrsberuhigt schreibt am 09.02.2006 um 10:28:16 Uhr
- LÖSUNG EXXON schreibt am 09.02.2006 um 10:12:22 Uhr
LÖSUNG 08.02.2006 um 16:21 Uhr
Also wenn die Schleife ausgeführt wird,
wird jedesmal das Makro ausgeführt egal
ob der if Wert True oder False ist
wird jedesmal das Makro ausgeführt egal
ob der if Wert True oder False ist
Das zu glauben fällt mir schwer...
Vielmehr denke ich, dass Du beim DLOOKUP-Aufruf noch ein (Vergleichs-)Kriterium angeben musst.
Aber mit einem DEBUG sollte das doch schnell zu klären sein?!
LÖSUNG 09.02.2006 um 10:12 Uhr
kannst du mir vieleicht mal den syntax mit nem beispiel geben? ich weiß nicht wo da der fehler sein könnte.
Erklärung zu den Gegebenheiten:
also in das feld identcode wird eine zahl eingegeben welche in der tabelle Scandaten im Feld Identcode nachgeschaut werden soll und mit dem identcode.value verglichen werden soll.
Erklärung zu den Gegebenheiten:
also in das feld identcode wird eine zahl eingegeben welche in der tabelle Scandaten im Feld Identcode nachgeschaut werden soll und mit dem identcode.value verglichen werden soll.
LÖSUNG 09.02.2006 um 10:28 Uhr
Hallo
Ich will es versuchen...
Zu Beginn würde ich folgendes versuchen:
Vorhanden = DLookup("Identcode", "Scandaten", "Identcode = """ & Me!Identcode.Value & """)
If Me!Identcode.Value = Vorhanden Then
MsgBox "Achtung: Wert ist doppelt"
Else
DoCmd.RunMacro "Speichern"
End If
Das geht natürlich eleganter aber ich hoffe, dass es so besser verständlich ist.
kannst du mir vieleicht mal den syntax mit
nem beispiel geben? ich weiß nicht wo
da der fehler sein könnte.
nem beispiel geben? ich weiß nicht wo
da der fehler sein könnte.
Ich will es versuchen...
Zu Beginn würde ich folgendes versuchen:
Vorhanden = DLookup("Identcode", "Scandaten", "Identcode = """ & Me!Identcode.Value & """)
If Me!Identcode.Value = Vorhanden Then
MsgBox "Achtung: Wert ist doppelt"
Else
DoCmd.RunMacro "Speichern"
End If
Das geht natürlich eleganter aber ich hoffe, dass es so besser verständlich ist.
LÖSUNG 09.02.2006 um 10:45 Uhr
Vorhanden = DLookup("Identcode", "Scandaten", "Identcode = """ & Me!Identcode.Value & """)
verständlich wars schon ;)
aber da kommt ne fehlermeldung bei deinem code in der zeile oben
"Syntaxfehler"
habe aber inzwischen über ne msgbox rausgefunden das der lookup-befehl von mir immer die selbe zahl produziert die nichts mit der anderen (eingegebenen) zahl zu tun hat. Die zahl von me!identcode.value ist richtig!
LÖSUNG 09.02.2006 um 10:57 Uhr
a) Vermutlich fehlt in meiner Zeile ein abschliessenden Anführungszeichen
b) Geliefert bekommst Du vermutlich aus dem ersten Datensatz den Wert aus dem Feld Identcode oder?
b) Geliefert bekommst Du vermutlich aus dem ersten Datensatz den Wert aus dem Feld Identcode oder?
LÖSUNG 09.02.2006 um 11:21 Uhr
a) hab ich schon probiert hat aber keinen brauchbaren ergebnisse zurückgeliefert bzw. fehlermeldung
b) nach dem code suche ich: 721427503916 herauskommt: 63604591364
die zahl die herauskommt ist mitten in der tabelle auserdem ist die zahl nur elf Stellen lang anstatt 12 wie es sein sollte (fehler in der tabelle)
so und jetzt hab ich noch fast alle fehlerhaften datensätze rausgelöscht jetzt kommt die zahl 461073421744 raus (das ist der datensatz nr. 43650)
b) nach dem code suche ich: 721427503916 herauskommt: 63604591364
die zahl die herauskommt ist mitten in der tabelle auserdem ist die zahl nur elf Stellen lang anstatt 12 wie es sein sollte (fehler in der tabelle)
so und jetzt hab ich noch fast alle fehlerhaften datensätze rausgelöscht jetzt kommt die zahl 461073421744 raus (das ist der datensatz nr. 43650)
LÖSUNG 09.02.2006 um 14:54 Uhr
so ich habs jetzt doch noch lösen können es muss heißen:
DLookup("[Identcode]", "Scandaten", "[Identcode] = '" & Me!Identcode & "'")
lag irgendwie teilweise dadran das es Text war :rolleyes:
DLookup("[Identcode]", "Scandaten", "[Identcode] = '" & Me!Identcode & "'")
lag irgendwie teilweise dadran das es Text war :rolleyes:
Ähnliche Inhalte
Neue Wissensbeiträge
Heiß diskutierte Inhalte