Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Thilo am Mai 12, 2023, 17:41:03

Titel: Abfrage mit Kriterium aus Textfeld
Beitrag von: Thilo am Mai 12, 2023, 17:41:03
Hallo,

Ich erstelle in einem Formular ein individuelles Filterkriterium wie zum Beispiel: ([Kunden-Nr] >= 300 AND [Kunden-Nr] <= 9999999)
Nun möchte ich dieses Filterkriterium als Kriterium in einer Abfrage nutzen.
Ich setzte dazu einen Verweis zum Textfeld ins Formular. (Siehe Bild)
Nun bekomme ich eine Fehlermeldung: Der Ausdruck ist falsch eingegeben oder zu komplex.
Wenn ich aber den Inhalt des Textfeldes: ([Kunden-Nr] >= 300 AND [Kunden-Nr] <= 9999999)
manuell als Kriterium in die Abfrage einfüge funktioniert es.
Was mache ich Falsch?
Titel: Re: Abfrage mit Kriterium aus Textfeld
Beitrag von: andyfau am Mai 12, 2023, 21:03:56
Hallo,
wenn Du in der Abfrage direkt auf das Formularfeld referenzieren möchtest, muss dies voll qualifiziert erfolgen:
Formulare!Formularname!Feldname etc.
Dabei muss das Formular geöffnet sein, wenn die Abfrage ausgeführt wird.

Es ist aber nicht die beste Art Parameter an eine Abfrage zu übergeben.

Schau Dir mal an, was es so zu Querydefs als Parameterabfrage gibt.
Titel: Re: Abfrage mit Kriterium aus Textfeld
Beitrag von: Bernie110 am Mai 12, 2023, 22:06:19
Hi,

ergänzend hierzu ein paar Varianten in der Abfrage.
Voraussetzung ist, dass du ein Feld in deinem Formular hast.
Vermutlich
Feld = [txtFilter]
Formlar = WA_Standardauftrag_übernehmen  ( Ps ohne Leerzeichen )
Ein Listenfeld oder eine UFO würde die Daten deiner Abfrage anzeigen.
Aktualiseriung im Formular mit DeinlistenfeldoderUFO.requery
Diesen Befehl könntest du "nach Aktualisierung" deines Feldes [txtFilter] einbinden.

Im Abfragekrit könntest du dann z.B. folendes eingeben :

wie "" & Formulare!WA_Standardauftrag_übernehmen!txtFilter & "*"
Der Filter wird in der Zeichenfolge von links nach rechts ausgeführt.
D.h. Gib zb nur 8 ein, dann findert er dir alle Nrn die mit 8 beginnen.
Oder du gibst einfach die gesamte Nr ein.

mit
wie "*" & Formulare!WA_Standardauftrag_übernehmen!txtFilter & "*"
...Gib ins Feld als Beispiel eine 8 ein, dann findet er dir alle Nrn die eine 8 beinhalten.. usw

Das sind  meine schnellen Lieblingsvariaten.
Hoffe das hilft dir weiter.
Aber Achtung. Das ist nicht immer die performanteste Variante.
Gruss Bernie