Hallo zusammen,
ich hab ein Formular basierend auf einer Abfrage. In dem über 4 Parameter gefiltert bzw. gesucht werden soll.
4 Parameter:
- Abgangsort
- Länderkürzel des Bestimmungsort
- PLZ von/bis des Bestimmungsort
- KG von/bis (die transportiert werden sollen)
Bei den ersten beiden Parametern auch kein Problem. Ich hab die Abfrage über ungebundene Textfelder verknüpft und lass mir das ganze über ein Listenfeld anzeigen:
Me.Listenfeld.Requery
Bei PLZ ist die Tabelle in die Attribute PLZvon und PLZbis aufgeteilt z. B. 2000 bis 2999. Nun will ich irgendeine PLZ dazwischen in mein Formular eingeben und es soll dann diesen Bereich ziehen. In der Abfrage hab ich das über eine extra Spalte geregelt wo ich die Bedingung bei Kriterien eintrage!
Die Frage ist, wie ich das in die Kriterien Zeile vernünftig einbaue bzw. die Bereichsabfrage (welche in der Abfrage funktioniert) mit dem Verweis auf das Formular verbinde oder kombiniere??? Mit "oder" funktioniert das ja nicht...
Hat von euch jemand eine Idee?
Würde mir sehr weiterhelfen!
Gruss Stefilius
Hallo,
"Nun will ich irgendeine PLZ dazwischen in mein Formular eingeben und es soll dann diesen Bereich ziehen"
Mit nur einem Parameter kannst du m.E. keinen Bereich auswählen da hierbei keine Ober- und Untergrenze bekanntgegeben wird.
Irgendwie vestehe ich dein Ansinnen nicht ganz.
"Bei PLZ ist die Tabelle in die Attribute PLZvon und PLZbis aufgeteilt z. B. 2000 bis 2999."
Also gehe ich davon aus, dass die Tabelle 2 Spalten besitzt - welche Werte stehen in von und welche in bis?
Kann man sich das in Etwa so vorstellen?
von bis
1000 1999
2000 2999
3000 3999
Hallo,
dein Tabellen-Beispiel ist korrekt. Genau so sieht das bei mir aus!
Ich möchte nun als Beispiel die PLZ 1589 eingeben und dann soll über die Abfrage dieser Bereich gewählt werden.
Warum ich das so möchte:
Für jedes PLZ-Gebiet ist ein anderer Preis festgelegt, denn ich dadurch angezeigt bekommen möchte.
In Kombination mit den anderen Parametern soll mir im Endeffekt ein Preis für eine Route vom Abgangsort, Länderkürzel des Bestimmungsorts, PLZ des Bestimmungsorts und KG angezeigt werden.
In meiner Parameterabfrage funktioniert das Ganze ja, nur wie bekomm ich das ins Formular??
Danke schon mal für deine Antwort!
Nun denn,
ZitatIch möchte nun als Beispiel die PLZ 1589 eingeben und dann soll über die Abfrage dieser Bereich gewählt werden.
Also der Bereich 1000 - 1999 ...
dann schreibe ins Kriterienfeld unter PLZvon deiner Abfrage:
in der Annahme dass das Eingabefeld für die PLZ 'txtPLZ' benamst ist
Left(Forms!DeinFormular!txtPLZ;1) & "000"
Bedingung, die PLZ-Spalten der Tabelle sind als Text deklariert
HTH
Hallo!
Im Prinzip kannst du das auch so ähnlich wie mit den anderen Parametern gestalten.
Aus der einen Bedingung werden dann einfach 2 Bedingungen:
where ... PLZvon <= Nz([PLZ], 9999) AND PLZbis >= Nz([PLZ], 0)
[PLZ] kann als Abfrageparamter gestaltet werden oder bei Bedarf auch durch einen Bezug auf ein Textfeld ersetzt werden.
mfg
Josef
Danke erst mal für die Antwort, das funktioniert ja wunderbar!
Das Problem ist, dass mit der Erweiterung meiner DB 4-stellige, 5-stellige und auch 6-stellige PLZ gefunden werden sollen. Das ist natürlich abhängig vom jeweiligen Land.
Des Weiteren sind die PLZ-Gebiete nicht immer so schöne gegliedert wie im obigen Beispiel.
Zum Beispiel in Deutschland:
10000 - 15999
16000 - 17999
20000 - 22999
. . . . .
Im Moment läuft das in meinem Abfragekriterium so: >=[PLZvon] Und <=[PLZbis] Dieses wird allerdings nicht in PLZvon oder PLZbis als Kriterium geführt sondern in einer extra Spalte... Ist das überhaupt notwendig?
Das kann ganz beliebig sein. Ist es möglich jenes Problem mit Variablen bzw. Wildcards zu lösen?
Oder wie soll ich das am Besten machen bzw. ist es überhaupt möglich?
Sorry stehe da gerade ein bisschen auf dem SChlauch!
Hallo!
Ein Beispiel:
Tabelle
| PlzVon | PlzBis | Wert |
| 1000 | 1367 | 1 |
| 1468 | 5999 | 2 |
| ... | ... | ... |
| 10000 | 12345 | 815 |
SQL-Anweisung:
Select
Wert
from
Tabelle
where
PlzVon <= Nz([PlzEingeben], 999999)
AND
PlzBis >= Nz([PlzEingeben], 0) Anm.: das Nz für den Ersatz eines NULL-Wertes dient dazu, dass man bei keiner Filtereingabe alle Datensätze erhält.
Falls die PLZ als Text und nicht als Zahl gespeichert wird, ist diese Filterung allerdings nicht 1:1 anwendbar .. zumindest nicht, für unterschiedlich lange PLZ-Werte.
mfg
Josef
Hallo Josef P.
super das funktioniert so weit wirklich gut! Danke dir!!!
Wie binde ich diese Kriterien jetzt noch in mein Formular ein? Das ist eigentlich der Hauptknackpunkt für mich, da ich mit Formularen noch nicht viel gearbeitet habe.
Speziell bei diesem Parameter weiss ich nicht wie das funktioniert. Die vorherigen Parameter hab ich mit Erfolg in mein Formular integriert.
Noch eine allerletzte Frage. Wenn ich die PLZ-Spalten als Text gespeichert habe (z.B. England), ist es dann theoretisch anders möglich ne Lösung zu finden? Wenn nicht würde ich mir da was einfallen lassen um das speziell für England zu umgehen und die Spalte PLZvon und PLZbis als Zahl speichern zu können.
Gruss
Stefilius
Hallo!
Wenn du den vorherigen Parameter (welcher auch immer das ist) erfolgreich eingebaut hast, sollte es mit dem PLZ-Parameter nicht anders sein.
Da ich allerdings nicht weiß, was du bisher gemacht hast bzw. wie die Abfrage aussieht, kann ich dir auch nicht bei den nächsten Schritten helfen.
Wenn du deine aktuelle Abfrage in der SQL-Ansicht öffnest und den Text hier zeigst, wird sich sicher jemand finden, der dir einen Tipp geben kann, wie du in diese SQL-Anweisung die PLZ-Prüfung einbauen kannst.
Bezüglich PLZ als Text:
Ein Text-Vergleich hat den Nachteil, dass "2" größer als "1000" ist. Damit wird das Filtern bei Bereichen etwas aufwendiger.
Zumindest wird noch die Prüfung der Textlänge notwendig.
Als Beispiel (unter der Voraussetzung, dass unterschiedliche PLZ-Längen nicht kombiniert werden):
Select
Wert
from
Tabelle
where
PlzVon <= Nz([PlzEingeben], "ZZZZZZZZZ")
AND
PlzBis >= Nz([PlzEingeben], "")
AND
(Len(PLzVon) = Len([PlzEingeben]) OR [PlzEingeben] IS NULL)
Ein ganz anderer Ansatz könnte das Zuordnen jeder einzelnen vorhandenen PLZ zum jeweiligen Bereichs-Datensatz sein in einer weiteren 1:n-Tabelle sein.
Die Tabelle für die einzelnen PLZ-Werte könnte man per VBA einmalig befüllen. Dann müsste man nur noch in dieser TAbelle die passene PLZ-Wert suchen und könnte über den Fremdschlüssel die Daten aus der übergeordneten Tabelle mit den Preisen usw. auslesen.
mfg
Josef
Hallo,
hmmm... welche Überraschungen hast du sonst noch auf Lager ? ;D
"Des Weiteren sind die PLZ-Gebiete nicht immer so schöne gegliedert wie im obigen Beispiel"
Es würde theoretisch genügen wenn du den Startwert deiner PLZ kennst - z.B. 16000
Hierbei soll dan der Bereich 16000 bis 17999 gefunden werden.
Gut, dann schreibst du ins Kriterienfeld unter PLZvon:
=[PLZ eingeben]
In der Abfrage steht dann kein Formularverweis sondern nur obige Parameterabfrage.
Wird die Ausführung der Abfrage angestoßen erscheint das Eingabefeld in das du dann die StartPLZ einträgst.
Somit bist du flexibel was den Aufbau und die Länge der PLZ betrifft.
Eine weiter Einschränkung auf PLZbis benötigst du eigentlich nicht, da ja zu einem PLZvon Eintrag nur ein einziger PLZbis Eintrag besteht.
HTH
Hallo zusammen,
erst mal danke für eure Antworten und Hilfen. Leider ist das nicht exakt das was ich gerne hätte. Ich würde eben gerne eine x-beliebige PLZ-Zahl eingeben und Access soll mir den dazugehörigen Bereich suchen, der die eingegebene PLZ umfasst. Das in Verbindung mit dem Abgangsort, dem Länderkürzel und der zu transportierenden KG-Zahl soll mir einen Preis ergeben. Was in der Abfrage auch tadellos klappt!
Ich kopiere euch mal den sql-code der Abfrage des WHERE-Teils rein. Ich hoffe das reicht!
WHERE ((([PLZeingeben])>=[PLZvon] And ([PLZeingeben])<=[PLZbis]) AND (([KGeingeben])>=[KGvon] And ([KGeingeben])<=[KGbis]) AND (([Absenderort])=[Aort]) AND (([BLänderkürzel])=[Länderkürzel]));
Integriert ins Formular mit:
Wie [Formulare]![Test]![Aort] & "*"
Es geht ja um den WHERE-Teil:
Den Abgangsort (Aort) und das Länderkürzel habe ich über den obigen Weg in mein Formular eingebaut. Wie kann ich jetzt den Code von Josef P. integrieren? Bzw. wie würdet ihr den oberen WHERE-Teil in ein Formular mit ungebundenen Texfeldern integrieren??
Hier der Code von Josef P.:
WHERE PlzVon <= Nz([PlzEingeben], "ZZZZZZZZZ") AND PlzBis >= Nz([PlzEingeben], "") AND (Len(PLzVon) = Len([PlzEingeben]) OR [PlzEingeben] IS NULL)
Kann mir jemand von euch da helfen?
Als Anfänger tut man sich bei so etwas eben schwer...
Danke für eure Hilfe und Geduld
Gruss Stefilius
Hallo!
ZitatIntegriert ins Formular mit:
Wie [Formulare]![Test]![Aort] & "*"
Integriert ins Formular bedeutet aber schon, dass du eine SQL-Anweisung (Abfrage) verwendest, oder?
=>
Where [Absenderort] like [Forms]![Test]![Aort] & "*"Anm.: Falls die SQL-Anweisung direkt im Formular und nicht in einer extra Abfrage gespeichert ist, würde ich "[Forms]![Test]!" weglassen, damit der SQL-Code unabhängig vom Formularnamen wird.
aus
WHERE PlzVon <= Nz([PlzEingeben], "ZZZZZZZZZ") AND PlzBis >= Nz([PlzEingeben], "") AND (Len(PLzVon) = Len([PlzEingeben]) OR [PlzEingeben] IS NULL)wird mit Formularbezug:
WHERE PlzVon <= Nz([Forms]![Test]![txtPLZ], "ZZZZZZZZZ") AND PlzBis >= Nz([Forms]![Test]![txtPLZ], "") AND (Len(PLzVon) = Len([Forms]![Test]![txtPLZ]) OR [Forms]![Test]![txtPLZ] IS NULL)In diesem Code werden übrigens nur dann alle PLZ-Bereiche angezeigt, wenn kein Wert in das Textfeld eingeben wurde.
Ansonsten:
Hast du schon einmal darüber nachgedacht, den Filterausdruck dynamisch im VBA-Code zu erzeugen? .. Also nur jene Filter-Ausdrücke erzeugen, die zur Datenfilterung benötigt werden. Leere Textfelder (die keine filterung auslösen sollen) würden dann in der SQL-Anweisung gar nicht vorkommen.
Dafür gibt es bestimmt einige Beispiele in diesem Forum oder per Google & Co. zu finden.
mfg
Josef
Hallo!
Nochmals vielen Dank für deinen Code. Das funktioniert jetzt perfekt, genauso wie ich es wollte!!!
ZitatIntegriert ins Formular bedeutet aber schon, dass du eine SQL-Anweisung (Abfrage) verwendest, oder?
Ja, ich verwende eine SQL-Anweisung!
Wenn ich versuche deinen Code auf KGvon/KGbis zu duplizieren (natürlich mit geänderten Txt-Feldern) und ihn in SQL dafür einzufügen versuche kommt die Fehlermeldung:
"Der Ausdruck wurde falsch eingegeben oder er ist zu komplex, um ausgewertet zu werden. Beispielsweise kann ein numerischer Ausdruck zu viele komplizierte Elemente enthalten. Vereinfachen Sie den Ausdruck, in dem sie Teile des Ausdrucks Variable zuweisen"
Was kann man dagegen machen?
ZitatAnsonsten:
Hast du schon einmal darüber nachgedacht, den Filterausdruck dynamisch im VBA-Code zu erzeugen? .. Also nur jene Filter-Ausdrücke erzeugen, die zur Datenfilterung benötigt werden. Leere Textfelder (die keine filterung auslösen sollen) würden dann in der SQL-Anweisung gar nicht vorkommen.
Dafür gibt es bestimmt einige Beispiele in diesem Forum oder per Google & Co. zu finden.
Darüber hab ich mir noch keine Gedanken gemacht und zwar aus dem Grund, dass ich mit VBA nicht vertraut bin und mich in diesem Bereich der Programmierung wirklich überhaupt nicht auskenne...
Freundliche Grüsse
Stefilius
Hallo!
Wie sieht der nicht funktionierende Ausdruck nun aus?
Noch etwas: schreib bitte einmal die Datentypen der zu filternden Felder von der Tabelle auf. Davon hängt nämlich ab, wie man den NZ-Ausdruck formulieren muss (wegen Zahl vs. Text).
Wenn du die SQL-Anweisung direkt im Formular in der Eigenschaft "RecordSource" abspeicherst, kannst du den Formular-Bezug weglassen, solange die Steuerelementnamen nicht mit Feldnamen aus der Tabelle identisch sind.
Meine Annahme der Datentypen in der Tabelle für den nachfolgenden SQL-Ausdruck:
Absenderort: Text
PlzVon + PlzBis: Text
KGvon: Zahl
Länderkürzel: Text
=>
WHERE
Absenderort like [Aort] & "*"
AND
(PlzVon <= Nz([txtPLZ], "ZZZZZZZZZ") AND PlzBis >= Nz([txtPLZ], "") AND (Len(PLzVon) = Len([txtPLZ]) OR [txtPLZ] IS NULL))
AND
(KGvon <= Nz([txtKG], 999999) AND KGbis >= Nz([txtKG], -999999))
AND
BLänderkürzel like [txtLänderkürzel] & "*"
mfg
Josef
Hallo!
Die Fehlermeldung kommt auch weiterhin mit dem von dir vorgeschlagenen Code. Des Weiteren erscheint die Fehlermeldung nur beim Öffnen des Formulares. Allerdings lässt sich das Formular öffnen und liefert dann auch die richtigen Ergebnisse.
Hier mal der Code der WHERE-Bedingung in meiner Abfrage:
WHERE (((Routen_tbl.Aort) Like Formulare!Test!Aort & "*") And ((Routen_tbl.Länderkürzel) Like Formulare!Test!Länderkürzel & "*")) And PlzVon<=Nz(Forms!Test!txtPLZ,"ZZZZZZZZZ") And PlzBis>=Nz(Forms!Test!txtPLZ,"") And (Len(PLzVon)=Len(Forms!Test!txtPLZ) Or Forms!Test!txtPLZ Is Null) And (KGvon<=Nz(Forms!Test!txtKG,999999) And KGbis>=Nz(Forms!Test!txtKG,-999999));
Die Datentypen sind wie von dir beschrieben:
Aort: Text
PLZvon +PLZbis: Text
KGvon + KGbis: Zahl
Länderkürzel: Text
Freundliche Grüsse
Stefilius
Hallo!
Kannst du eine kleine Beispiel-DB erstellen, in der das Problem auftritt?
mfg
Josef
Hallo,
ich könnte dir mal die komplette Abfrage in SQL schicken, falls es dir weiterhelfen würde?
Wenn nicht, kann ich auch eine Beispiel-DB erstellen. Welches Format sollte sie für dich sein?
Gruss,
Stefilius
Hallo zusammen,
ich schicke euch mal den SQL-Code der Abfrage auf der mein Formular basiert. Vllt. könnt ihr mir helfen den auftretenden Fehler der "Komplexität", der in vorherigen Beiträgen bereits erläutert wurde, zu lösen.
SELECT Spediteure_tbl.Sname, Routen_tbl.Aort, Routen_tbl.Bemerkung, Routen_tbl.PLZvon, Routen_tbl.PLZbis, Routen_tbl.Länderkürzel, [Gewicht Lademeter_tbl].Kgvon, [Gewicht Lademeter_tbl].Kgbis, Gew_Rou_tbl.Preis
FROM Spediteure_tbl INNER JOIN ((Routen_tbl INNER JOIN (([Gewicht Lademeter_tbl] INNER JOIN Gew_Rou_tbl ON [Gewicht Lademeter_tbl].LNR = Gew_Rou_tbl.LNR) INNER JOIN Spe_Gew_tbl ON [Gewicht Lademeter_tbl].LNR = Spe_Gew_tbl.LNR) ON Routen_tbl.RNR = Gew_Rou_tbl.RNR) INNER JOIN Spe_Rou_tbl ON Routen_tbl.RNR = Spe_Rou_tbl.RNR) ON (Spediteure_tbl.SNR = Spe_Rou_tbl.SNR) AND (Spediteure_tbl.SNR = Spe_Gew_tbl.SNR)
WHERE (((Routen_tbl.Aort) Like [Formulare]![Test]![Aort] & "*") AND ((Routen_tbl.PLZvon)<=Nz([Forms]![Test]![txtPLZ],"ZZZZZZZZZ")) AND ((Routen_tbl.PLZbis)>=Nz([Forms]![Test]![txtPLZ],"")) AND ((Routen_tbl.Länderkürzel) Like [Formulare]![Test]![Länderkürzel] & "*") AND (([Gewicht Lademeter_tbl].Kgvon)<=Nz([Forms]![Test]![txtKG],999999)) AND (([Gewicht Lademeter_tbl].Kgbis)>=Nz([Forms]![Test]![txtKG],-999999)) AND ((Len([PLzVon]))=Len([Forms]![Test]![txtPLZ]))) OR (((Routen_tbl.Aort) Like [Formulare]![Test]![Aort] & "*") AND ((Routen_tbl.PLZvon)<=Nz([Forms]![Test]![txtPLZ],"ZZZZZZZZZ")) AND ((Routen_tbl.PLZbis)>=Nz([Forms]![Test]![txtPLZ],"")) AND ((Routen_tbl.Länderkürzel) Like [Formulare]![Test]![Länderkürzel] & "*") AND (([Gewicht Lademeter_tbl].Kgvon)<=Nz([Forms]![Test]![txtKG],999999)) AND (([Gewicht Lademeter_tbl].Kgbis)>=Nz([Forms]![Test]![txtKG],-999999)) AND (([Forms]![Test]![txtPLZ]) Is Null));
Ich weiss, dass in der Tabellenstruktur durchaus Redundanzen vorkommen (was natürlich nicht sein sollte), aber du Vorgaben und gewisse gegebene Voraussetzungen ist es nicht anders möglich!
In der Zwischenzeit bastel ich mal eine kleine Beispiel-DB, sodass wir Fehler vllt. leichter auf die Spur kommen
Grüsse
Stefilius
Hallo!
Funktioniert die SQL-Anweisung, wenn du sie in einer Abfrage öffnest und das Formular offen ist?
Noch etwas: wo befinden sich eigentlich die Filterfelder? Die sind schon im Formularkopf bze. Formularfuß und nicht im Detailbereich untergebracht, oder?
Anm.: Ich bevorzuge für Filterformulare immer ein ungebundenes Formular mit den Filterfeldern und ein Unterformular, das gefiltert wird.
mfg
Josef
Hallo,
ZitatFunktioniert die SQL-Anweisung, wenn du sie in einer Abfrage öffnest und das Formular offen ist?
leider nein, ich kann die Abfrage ledigleich im Entwurfsmodus öffnen, aber auch nicht ausführen! Bei geschlossenem Formular funktioniert die Abfrage ohne Fehlermeldung!
Zitatwo befinden sich eigentlich die Filterfelder? Die sind schon im Formularkopf bze. Formularfuß und nicht im Detailbereich untergebracht, oder?
Sind im Formularkopf, ebenfalls der Such-/LeerenButton.
Mein Listenfeld, welches die Ergebnisse ausgibt, ist im Detailbereiche. Ist das etwa falsch?
Die Beispiel-DB kommt übrigens morgen!
Grüsse,
Stefilius
Hallo!
Du verwendest ein Listenfeld zum Anzeigen der gefilterten Daten?
Bisher ging ich davon aus, dass die Datensätze im Formular selbst angezeigt werden.
Wenn du ein Listenfeld verwendest, kannst du auf jeden Fall die Formbezüge entfernen.
Welche Fehlermeldung kommt, wenn du die SQL-Anweisung in eine Access-Abfrage öffnest?
Stehen möglicherweise Werte in den Filterfeldern, die nicht zum Datentyp der Tabellenfelder passen?
Sind in den Filterfeldern Standardwerte eingetragen oder sind die beim Öffnen des Formulars alle leer?
Falls das auch nicht zur Problemlösung beiträgt, machen wir morgen oder nächste Woche weiter. Für heute habe ich "ausgeraten". ;-)
mfg
Josef
hallo,
habe jetzt meine Beispiel-DB fertig und stelle diese hier mit rein. Inklusive Abfrage und dazugehörigem Formular.
Um nochmals darauf hinzuweisen bzgl. der Normalisierung und Redundanzen. Ich weiss, dass das nicht der optimalste Weg ist, aber aufgrund verschiedener Gegebenheiten ist das nicht anders möglich...
ZitatWelche Fehlermeldung kommt, wenn du die SQL-Anweisung in eine Access-Abfrage öffnest?
Wenn ich nur die Abfrage öffne kommt keine Fehlermeldung, funktioniert einwandfrei!
ZitatStehen möglicherweise Werte in den Filterfeldern, die nicht zum Datentyp der Tabellenfelder passen?
Meines Wissens nicht...
ZitatSind in den Filterfeldern Standardwerte eingetragen oder sind die beim Öffnen des Formulars alle leer?
Die Felder sind leer, es sind keine Standardwerte eingetragen!
Viel Spass beim Probieren :)
Grüsse Stefilius
[Anhang gelöscht durch Administrator]
Hallo,
habe das Problem behoben. War ein wirklicher Anfängerfehler!
Hab deinen auf den Felddatentyp Text geänderten Code bzgl der PLZ in meiner Abfrage eingetragen, aber in der Tabelle den Felddatentyp nicht auf Text geändert.... Mein Fehler...
Sorry, aber daraus werde ich lernen!
Vielen Dank für die Hilfe, Mühen und Geduld!
Bis hoffentlich bald mal wieder.
Grüsse,
Stefilius
Hallo zusammen,
meine Abfrage und das Formular laufen so weit einwandfrei!
Ich gebe meine Parameter (APLZ, ALand, BPLZ, BLand und KG) ein und bekommen den gewünschten Datensatz geliefert. Jetzt habe ich aber hierzu noch eine kleine Frage.
Und zwar würde ich gerne noch den Parameter Lademeter(LM) einbauen. Soweit ist das kein Problem, allerdings soll der User auswählen zwischen KG und LM eingabe. D. h. ein Parameter bleibt immer leer. Man könnte auch von einem optionalen Parameter sprechen.
Die Beding "is Null" für das Feld ist mir bekannt, nur verzweifle ich am Klammersetzen. Im Moment funktioniert die Abfrage nur wenn ich KG eingebe und bei LM nichts. Im umgekehrten Fall zeigt es mir alle Datensätze an, welche hinterlegt sind. Ich gehe davon aus, dass es an den Klammern liegt?!?!
Hier mal mein WHERE-Teil in SQL:
WHERE
(((Routen_tbl.APLZvon)<=Nz([Forms]![Test_KG_LM]![txtAPLZ],"ZZZZZZZZZ")) AND
((Routen_tbl.APLZbis)>=Nz([Forms]![Test_KG_LM]![txtAPLZ],"")) AND
((Routen_tbl.Aländerkürzel) Like [Formulare]![Test_KG_LM]![ALänderkürzel] & "*") AND
((Routen_tbl.PLZvon)<=Nz([Forms]![Test_KG_LM]![txtBPLZ],"ZZZZZZZZZ")) AND
((Routen_tbl.PLZbis)>=Nz([Forms]![Test_KG_LM]![txtBPLZ],"")) AND
((Routen_tbl.BLänderkürzel) Like [Formulare]![Test_KG_LM]![BLänderkürzel] & "*") AND
(([Gewicht Lademeter_tbl].Kgvon)<=Nz(Forms!Test_KG_LM!txtKG,999999)) And
(([Gewicht Lademeter_tbl].Kgbis)>=Nz(Forms!Test_KG_LM!txtKG,-999999)) OR ((Forms!Test_KG_LM!txtKG) Is Null)) AND
(([Gewicht Lademeter_tbl].LM) Like (Forms!Test_KG_LM!txtLM & "*") OR (Forms!Test_KG_LM!txtLM) Is Null) AND
((Routen_tbl.Gültigkeit)="ja");
Vielleicht kann mir ja jemand helfen, wäre euch sehr dankbar!
Grüsse Stefilius