Hallo Access Gemeinde,
jetzt tüftel ich mal wieder an einem Problem, dem ich selbst nicht gewachsen bin :-( und bitte um Mithilfe.
In einem Endlosformular möchte ich alle Datensätze anzeigen oder oder nur die, die genau eine bestimmte Zahl enthalten.
In der Abfrage steht:
"Wie "*" & [Formulare]![frmBoxensuche]![XPal] & "*"
Die Tabelle enthält in dieser Spalte "PalID" nur Ziffern, Momentan von 1 bis 940
Möchte ich jetzt die Palette 1 haben, bekomme ich damit aber auch die Paletten 10, 11, 616, usw.
Kürze ich die Bedingung aber auf "[Formulare]![frmBoxensuche]![XPal]" und das Feld XPal ist leer, zeigt mir das Formular aber nur Fehler in Form von ###.
Wie kann ich das Problem lösen?
Gruß dolpho
ZitatWie kann ich das Problem lösen?
Als erstes: Verstehen, was Du tust. Und nicht wundern, wenn das passiert, was Du programmierst.
Suche: Palette = 1 statt Palette LIKE "*1*"
Das ist mir schon klar; nur wenn ich das Formular öffne und in dem Suchfeld steht nichts drin, wird auch NICHTS angezeigt - und das ist mein Problem
Kriterium soll alle Datensätze bringen (https://www.donkarl.com?FAQ3.14)
Vielen Dank!
Das war die Lösung:
[Forms]![frmBoxensuche]![XPal] Oder [Forms]![frmBoxensuche]![XPal] Ist Null
Gruß dolpho
Leider war das nur die halbe Lösung.
Beim Öffnen funktioniert der Befehl sauber und es ist alles in Ordnung.
Lösche ich aber die Suchfelder mit Me.XPal =""
dann bekomme ich wieder keine Datensätze und access quittiert mit
Laufzeitfehler 3021 Kein aktueller Datensatz
lösche ich das Feld mit der [Del] Taste funktioniert es wieder.
Was muss ich denn in VBA eingeben, dass NICHTS drin steht?
Hallo,
mit "" ist das Feld nicht leer, es steht ein Nullstring drin. Zum Leeren muss Null (nicht die Zahl 0) zugewiesen werden
Me.XPal = Null
Klasse, jetzt hat es geklappt!
Danke!!!
Zitat entfernt. Bitte keine vollständigen Beiträge zitieren. MzKlMu
Sorry, jetzt muss ich nochmal nachhaken:
Gleiche Situation, Formular mit Abfrage in das Formular.
Das Textfeld klappt super!
Was muss ich aber in einem Kombinationsfeld eintragen damit es mir die Abfrage "jungfräulich" also ohne Daten präsentiert?
Me.cboFeld = "" und
Me.cboFeld = Null und
Me.cboFeld = "0" oder 0
funktioniert nicht, zumal es ein In einen Tabellenwert eingreift, der auch "0" enthalten kann.
Für eine Auskunft, die meinen Geist gerade rückt ;-) wäre ich sehr dankbar!
Gruß dolpho
Zitat von: dolpho am Januar 20, 2024, 18:23:59Me.cboFeld = "" und
Me.cboFeld = Null und
Me.cboFeld = "0" oder 0
funktioniert nicht, zumal es ein In einen Tabellenwert eingreift, der auch "0" enthalten kann.
Zu der Frage möchte ich auf deinen eigenen Kommentar verweisen:
Zitat von: dolpho am Januar 10, 2024, 09:50:08Das war die Lösung:
[Forms]![frmBoxensuche]![XPal] Oder [Forms]![frmBoxensuche]![XPal] Ist Null
Hallo dolpho,
ZitatWas muss ich aber in einem Kombinationsfeld eintragen damit es mir die Abfrage "jungfräulich" also ohne Daten präsentiert?
Me.cboFeld = Null
ist schon richtig, nur bekommt das Formular bzw. die Datenbasis davon nichts
mit, musst du also erneut abrufen beim Ereignis "Nach Aktualisierung", -
Prozedur "cboFeld_AfterUpdate" mit
Me.Requery
Oder du setzt einfach einen Filter, der immer False ergibt
Me.Filter = "0=1"
Me.FilterOn = True
grus ekkehard
Hallo,
@PhilS das Zitat bezieht sich auf ein textfeld und dort funktioniert es super
jetzt will ich aber ein cbo leeren.
@ekkehard den Requery gibt es bei mir aber die Liste danach bleibt leer.
Es handelt sich um die Zeile, die ich mal rausgerückt habe habe und XSta ist eine combobox
setze ich aber deinen Filter ein, bekomme ich Laufzeitfehler bzw. kein Ergebnis
Private Sub cmdDel_Click()
Me.Filter = "1=0"
Me.FilterOn = True
Me.XBez = ""
Me.XBox = ""
Me.XCod = ""
Me.XDat = ""
Me.Xkrz = ""
Me.XNam = ""
Me.XPal = Null
Me.XSAP = ""
Me.XSta = Null
Me.XStT = ""
Me.Requery
DoCmd.Close acForm, "frmListenBox"
End Sub
Jetzt nochmal die Auflösung der Sache:
inzwischen ist der Fehler behoben, den ich scheinbar selbst verursacht hatte.
Zeitgleich stand im Formular der Code:
Private Sub Form_Load()
Me.XSta = 4
Me.Requery
End Sub
und im cboFeld XSta als Standardwert "4" eingetragen
und das hat wohl den Fehöer verursacht.
Nochmals danke! an alle