Hi,
darf mal wieder mit Access 2007 arbeiten und stolpere über folgendes Phänomen:
ZitatMsgBox DLookup("deutschlandOrt", "tblDeutschland", "pkDeutschlandID = " & Me.cmbPlzOrt)
Geht ohne Probleme
ZitatIf DLookup("deutschlandOrt", "tblDeutschland", "pkDeutschlandID = " & Me.cmbPlzOrt) Then
MsgBox "Ich bin da!"
End If
Typen unverträglich. Warum auch immer.
Jemand eine Idee?
Ach ja, in einem Dutzend weiterer Datenbanken gibt es keine Probleme. Aber das will bei Access nichts heißen ;D
Danke für Input
Andi
N'abend,
was für einen Typ hat das Feld "deutschlandOrt"?
Harald
Hallo,
der Datentyp von deutschlandOrt dürfte unwichtig sein, es kommt auf pkDeutschlandID an und das scheint Zahl.
Achte darauf, dass die gebundene Spalte des Kombis cmbPlzOrt auch diese Zahl enthält.
Hallo,
das geht imo nur mit boolschem Datentyp bzw. bei Zahlen (0/-1)
If DLookup("deutschlandOrt", "tblDeutschland", "pkDeutschlandID = " & Me.cmbPlzOrt) Then
liefert aller Wahrscheinlichkeit ein String zurück.
Prüf doch einfach auf die Länge des Rückgabewertes. if len(...) > 0 then
Gruß Andreas
Hi,
Danke für die Tipps.
Da If DLookup("pkDeutschlandID", "tblDeutschland", "pkDeutschlandID = " & Me.cmbPlzOrt) Then
MsgBox "Ich bin da!"
End If
funktioniert, bin ich der Meinung, dass sich was geändert haben muss. "*", "tblDeutschland"... ist ohne Fehlermeldung gar nicht mehr möglich.
Hab ich das was verpasst?
Wenn ich nun eine Kombinationssuche mit 2 Kriterien machen möchte geht es mit keiner Methode mehr:
If Len(DLookup("*", "tblStandort", "standortStrasse Like '" & Strassenvergleich & "'" & " AND pkDeutschlandID = " & Me.cmbPlzOrt)) > 0 Then
MsgBox "An diesem Standort gibt es bereits eine Lagerbox!"
Exit Sub
End If
Auch ohne "Len".
Ich glaube, ich muss mal alle alten DBs checken, ob die überhaupt noch funktionieren ???
Gruselige Grüße
Andi
N'abend,
nach meinem Versuch funktioniert das nur, wenn das Feld ein Wahrheitswert ist.
Alternativ müßte etwas stehen wie if ... > abc then.
In meinen Versuch mit Text-Feldern kam genau die oben aufgeführte Fehlermeldung.
Deshalb am Anfang meine Frage nach dem Feldtyp.
Harald
Danke Dir, früher ging es vollkommen ohne Probleme.
Teste gerade, ob es überhaupt noch mit 2 unterschiedlichen Vergleichen geht, oder ob ich die nacheinander abarbeiten muss.
Andreas
@bahasu
Verneig: Auch 2 Vergleiche gehen, auch Text- und anschließender Schlüsselvergleich, sofern nicht "*" oder gar ein Stringfeld am Anfang von Dlookup genommen wird, sondern eben das Primärschlüsselfeld.
Bei meiner alten DB funktioniert es mit "*" übrigens auch nicht mehr und da bin ich echt enttäuscht. Die DB lief bis dato fehlerlos.
Fröhliches Suchen und manuelles Ersetzen ist über alle meine DBs angesagt.
Arribaa
Andi
P.S. mit den nun für die DB eigentlich richtigen Feldern sieht die nun funktionierende Geschichte so aus:
If DLookup("pkStandortID", "tblStandort", "standortStrasse Like '" & Strassenvergleich & "'" & " And fkDeutschlandID = " & Me.cmbPlzOrt) Then
MsgBox "Der Lagerboxenstandort ist bereits vorhanden!", vbInformation, "Lagerstandort bereits vorhanden!"
End If
Hallo,
Paragraph 1: wenn du wissen willst warum ein Code-Ausdruck nicht die gewünschte Ergebnisse liefert dann debugge ihn.
Len() geht doch nur bei Texten. "*" als Feld ist nicht gültig.
Also sollte es so lauten:
If Len(DLookup("deutschlandOrt", "tblDeutschland", "pkDeutschlandID = " & Me.cmbPlzOrt)) > 0 Then
Gruß Andreas
Bääh, Paragraph 1 ist die schlaue Variante und ich bin nicht schlau ;)
Im Ernst, Recht hast Du und trotzdem hat sich mit der Updaterei etwas geändert.
Danke Dir und klar funktioniert Deine Variante recht gut sogar. Ist auf jeden Fall mit im Plan und mein Doppelvergleich führt nun auch zum richtigen Ergebnis.
Viele Grüße
Andi