Supportnet Computer
Planet of Tech

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

Antwort 2 von Martin-C

Hallo,

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.

Antwort 4 von Gudrun11

Hallo,

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 ... :/

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:

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. :/

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. :/

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.

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]
:)

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: