Supportnet / Forum / Datenbanken
Kombinationsfeld + Textfeld vs. VBA
Frage
Hallo,
und zwar besteht folgendes Problem:
Ich will, dass wenn man ein Artikelnummer (PLU_Nr) in einem Textfeld eingibt, im Kombinationsfeld ( ) einen Kunden auswählt und anschließend auf den "Suchen"-Button klickt, das dann nur die passenden Daten mit dem dazugehörigen Datum & Kunden aufgelistet werden.
Habe mir hierfier diesen VBA-Code gemacht:
[code]Private Sub Befehl17_Click()
Me.Filter = "PLU_Nr = " & Me!Textfeld
Me.Filter = "KundenName = " & Me!Kombinationsfeld22
Me.FilterOn = True
End Sub
[/code]
Wenn ich jetzt im Kombinationsfeld einen Namen und im Textfeld ein Datum eingebe, soll er nach dem Klick auf den Button nur die Daten herausfiltern, die zu dem ausgewählten Namen und zu dem Datum passen.
Problem allerdings: Er filtert entweder nur das Datum heraus ODER den Kundennamen.
Also muss irgendwas im Code falsch sein oder?
Antwort 1 von Teddy7
Versuch´s mal so:
Me.Filter = "PLU_Nr = " & Me!Textfeld & " and KundenName = ´" & Me!Kombinationsfeld22 & "´"
evtl mußt Du noch zusätzlich das Datumsfeld formatieren. Wenn manchmal nur ein Selektionskriterium gefüllt ist muß die Abfrage umfangreicher sein !
Gruß
Teddy
Me.Filter = "PLU_Nr = " & Me!Textfeld & " and KundenName = ´" & Me!Kombinationsfeld22 & "´"
evtl mußt Du noch zusätzlich das Datumsfeld formatieren. Wenn manchmal nur ein Selektionskriterium gefüllt ist muß die Abfrage umfangreicher sein !
Gruß
Teddy
Antwort 2 von Martin-C
Hallo,
leider kommt ein Laufzeitfehler.
Laufzeitfehler: 3075:
Synataxfehler (fehlender Operator) in Abfrageausdruck ´PLU_Nr = 702 and KundenName = ´Albrecht Torsten´´.
leider kommt ein Laufzeitfehler.
Laufzeitfehler: 3075:
Synataxfehler (fehlender Operator) in Abfrageausdruck ´PLU_Nr = 702 and KundenName = ´Albrecht Torsten´´.
Antwort 3 von Martin-C
Nochmal ich: Habe jetzt das
Me.FilterOn = True
wieder unten angehangen. Jetzt klappt es soweit, nur er fragt mich in einem Parameterwert immer nach ´Kunde´ (Bsp: ´Könecke´). Wenn ich dort eine Artikelnummer oder Kundennummer eingebe, zeigt er mir gar nichts an.
Me.FilterOn = True
wieder unten angehangen. Jetzt klappt es soweit, nur er fragt mich in einem Parameterwert immer nach ´Kunde´ (Bsp: ´Könecke´). Wenn ich dort eine Artikelnummer oder Kundennummer eingebe, zeigt er mir gar nichts an.
Antwort 4 von Gudrun11
Hallo,
vielleicht muß irgendwo der alte Filter zurückgesetzt werden mit Me.Filter = ""
Gruß Gudrun
vielleicht muß irgendwo der alte Filter zurückgesetzt werden mit Me.Filter = ""
Gruß Gudrun
Antwort 5 von Martin-C
Hallo,
habe jetzt mal eine kleien Beispieldatei hochgeladen:
http://www.netupload.de/detail.php?img=3e94cf44ea643f74d11e6ddef6c1e4ee.zip
Ich verstehe nicht, wo da der Fehler liegen soll?
BITTE helft mir ... :/
habe jetzt mal eine kleien Beispieldatei hochgeladen:
http://www.netupload.de/detail.php?img=3e94cf44ea643f74d11e6ddef6c1e4ee.zip
Ich verstehe nicht, wo da der Fehler liegen soll?
BITTE helft mir ... :/
Antwort 6 von erik
In deiner Filterzeile hast du drei Fehler untergebracht.
Bei ausbleibender Eingabe imTextfeld wird NULL zurückgegeben, das löst einen Laufzeitfehler aus.
"Kunden" heißt in Wirklichkeit "Kunde", daher auch die Parameterabfrage nach "Kunden"
Die Hochkommas um Me!Kombi herum sind in Wirklichkeit accents aigu, wie z.B. bei "é". Du musst echte Hochkommas verwenden mit Shift+Rautetaste.
Wenn du Code aus dem Supportnet kopierst, dann achte stets darauf, die Accents entsprechend wieder in Hochkommas zu ändern.
Wenn PLU eine Pflichteingabe ist, dann solltest du diese Zeile verwenden:
Auch in diesem Code müssen die Accents ersetzt werden.
Bei ausbleibender Eingabe imTextfeld wird NULL zurückgegeben, das löst einen Laufzeitfehler aus.
"Kunden" heißt in Wirklichkeit "Kunde", daher auch die Parameterabfrage nach "Kunden"
Die Hochkommas um Me!Kombi herum sind in Wirklichkeit accents aigu, wie z.B. bei "é". Du musst echte Hochkommas verwenden mit Shift+Rautetaste.
Wenn du Code aus dem Supportnet kopierst, dann achte stets darauf, die Accents entsprechend wieder in Hochkommas zu ändern.
Wenn PLU eine Pflichteingabe ist, dann solltest du diese Zeile verwenden:
If Not IsNull(Me!Textfeld) Then
Me.Filter = "PLU=" & Me!Textfeld & " AND Kunde=´" & Me!Kombi & "´"
Else
MsgBox "PLU ist eine Pflichteingabe.", vbExclamation
End If
Auch in diesem Code müssen die Accents ersetzt werden.
Antwort 7 von Martin-C
Guten morgen liebe Community.
Ersteinmal "Danke" für deine Hilfe & Tipps. Hat geklappt. :)
Nun stellt sich aber ein neues "Problem":
Undzwar wollte ich gern wissen, wie der VBA-Befehl für ZWISCHEN ist?
Ich will nämlich statt der bisherigen PLU (Artikelnummer) 2 Textfelder erstellen, in dem man ein Datum eingeben kann (Von - Bis).
Mit Parametern kann ich das ja relativ leicht lösen, allerdings muss das leider in 2 Textfeldern sen. :/
Ersteinmal "Danke" für deine Hilfe & Tipps. Hat geklappt. :)
Nun stellt sich aber ein neues "Problem":
Undzwar wollte ich gern wissen, wie der VBA-Befehl für ZWISCHEN ist?
Ich will nämlich statt der bisherigen PLU (Artikelnummer) 2 Textfelder erstellen, in dem man ein Datum eingeben kann (Von - Bis).
Mit Parametern kann ich das ja relativ leicht lösen, allerdings muss das leider in 2 Textfeldern sen. :/
Antwort 8 von Teddy7
between
Antwort 9 von Martin-C
Hallo,
vielen Dank für die fixe Antwort.
Leider aber scheint irgendetwas noch nicht zu stimmen.
Ich habe mal eine kleine Beispieldatei hochgeladen:
http://www.netupload.de/detail.php?img=90bfc5225c77fd3a64c46d2ff560b4bf.zip
Wie man sieht, tut sich gar nichts. :/
vielen Dank für die fixe Antwort.
Leider aber scheint irgendetwas noch nicht zu stimmen.
Ich habe mal eine kleine Beispieldatei hochgeladen:
http://www.netupload.de/detail.php?img=90bfc5225c77fd3a64c46d2ff560b4bf.zip
Wie man sieht, tut sich gar nichts. :/
Antwort 10 von Martin-C
Hallo,
wurde bereits geschafft.
Im letzten Schritt komm ich leider auch nicht weiter. Das mit dem Datum klappt, lediglich der Filter vom Kombinationsfeld(19) streikt.
Irgendwas haut mit Zeile 4 nicht hin. Wo liegt denn hier der Fehler? :/ *verzweifel*
wurde bereits geschafft.
Im letzten Schritt komm ich leider auch nicht weiter. Das mit dem Datum klappt, lediglich der Filter vom Kombinationsfeld(19) streikt.
Private Sub Befehl26_Click()
Me.Filter = "Datum Between " & Format(Me!Von, "\#yyyy\-mm\-dd\#") & _
" AND " & Format(Me!Bis, "\#yyyy\-mm\-dd\#")
& " and KundenName = ´" & Me!Kombinationsfeld22 & "´"
Me.FilterOn = True
End Sub
Irgendwas haut mit Zeile 4 nicht hin. Wo liegt denn hier der Fehler? :/ *verzweifel*
Antwort 11 von Martin-C
[edit] Kombifeld 22 natürlich [/edit]
:)
:)