PDA

Vollständige Version anzeigen : Abfrage Kriterium "Ist Null" als Parameterwert


Nils Schergens
05.10.2001, 07:37
Hi

Ich habe folgendes Problem:
Ich habe ein Formular erstellt in dem der Benutzter einen Bericht filtern kann. Also Parameter für die Abfrage festlegt z.B. den Zeitraum usw. Nun stehen ich vor dem Problem, das ich Abfrage will, ob der Auftrag schon abgeschlossen ist oder nicht. Also habe ich mir gedacht. Ich frage ab, ob für das Abschlussdatum "Ist Null" gilt. Nur bekomme ich dann immer die Fehlermeldung:
"Der Ausdruck wurde falsch eingegeben, oder er ist zu komplex ..." Wenn ich aber auf den Parameter verzichte und es direkt in die Abfrage schreibe, funktioniert es. Aber dann kann der User ja nicht mehr wählen :( Weiss jemand ne Lösung

Schon mal danke im Vorraus.

md
05.10.2001, 07:44
Hallo Nils
Wie legt der Bentzer das fest, in einem Kombofeld oder wie?

MD

Nils Schergens
05.10.2001, 08:12
Zur Zeit über ein Kontrollkästchen. Wenn das angekreuzt wird, wird das ein Ergebnissfeld gleich "Ist Null" gesetzt. Das Ergebnissfeld sollte dann eigentlich den Parameter für die Abfrage darstellen.

md
05.10.2001, 08:14
Hallo Nils!
Dann muß es in der Abfrage Wahr (True) oder Falsch (false) heißen, nicht null!

MD

kama
05.10.2001, 08:21
Hallo wenn du dein abfrage datum abfragen willst ob leer oder Datum muß du in einer Abfrage wie folgt vorgehen
Lege ein neues Feld an
Erledigt:IstDatum([Abschlussdatum ])

Unter Kriterien trägst du entsprechend deinem wunsch
Wahr für ist erledigt
Falsch ist noch offen

Nils Schergens
05.10.2001, 10:35
Vielen Dank für die schnelle Hilfe, klappt soweit. Nur was mache ich wenn ich beide auslesen will? Ich habe es mit "Wahr oder Falsch" versucht. In der Abfrage funktioniert das aber als Parameterwert wiederum nicht. Ich bekomme dann keine Daten geliefert.

Auf ein gelöstes Problem folgt immer ein neues :)

MarioR
05.10.2001, 19:10
Hallo Nils,

wenn Du beide Fälle sehen willst, kannst Du unter Kriterien z.B. <1 eintragen.

Nur zum Verständnis:
-1 entspricht Wahr
0 entspricht Falsch

MarkX
06.10.2001, 08:49
Im Abfragefall reagiert Access auch auf "Ja" (angekreuzt; aktiviert;Wahr) und "Nein" (kein Kreuz; deaktiviert; Falsch)

Viele Wegen führen nach Rom.

Viel Spaß

boocc
07.10.2001, 01:48
hi,

ich habe momentan wohl exakt das gleiche Problem!

Da ich nicht nur "Ist Null" oder "Ist Nicht Null" - Kriterien, sondern auch div. Datumsberechnungen (+ - Tage, Wochen und Monate) bei jeweils 2 Feldern einer Abfrage (an dieser Stelle gesamt 200 Anfügeabfragen) durch ein Formular (Kombinationsfelder) bestimmen möchte, macht bei mir die Anbindung einer zusätzlichen Feldspalte nur bedingten Sinn.

Direkt in der Abfrage eingegeben funktioniert es, aber nicht mehr z.B. über ein Textfeld (Fehlermeldung bei "Abfrage ausführen": "Datentypen in Kriteriumsausdruck unverträglich", bzw. bei "Datenblattansicht": "Dieser Ausdruck wurde falsch eingegeben, oder es ist zu komplex.."

Wo ist der Wurm??
Es muss doch möglich sein, über Konstanten in einem Steuerelement eine Abfrage auszuführen!

Oder wie würde eine entsprechende SQL heissen??
(5 Tabellen mit jeweils 160 Feldern)

Die Idee über true/false ist sehr gut, und funktioniert auch garantiert, jedoch nicht bei weiteren Funktionen (z.B. Datum + 7 Tage)


Ich würde mich sehr freuen, eine Lösung zu erfahren!!

gruss,
boocc

erwin
07.10.2001, 11:03
@alle

ich würde mal den Gedanken in Erwägung ziehen die SQL's dynamisch zu erstellen - dann erspart man sich eigentlich jedes weitere "Gehampel" ;)

siehe Reinhards Beispiel "Suchen" auf http://www.kraasch.de/beispiele.htm

so long erwin...

Nils Schergens
08.10.2001, 08:42
Schönen Montag morgen :)

Also das mit <1 hatte ich schon probiert. Ich bekomme wiederum keine Daten zurück, wenn ich es als Parameterwert eingebe, sondern nur wenn ich es direkt in die abfrage schreibe.

MarioR
08.10.2001, 11:50
Hallo Nils,

ich hab zwar mit Parametern noch nicht gearbeitet, aber so müsste es gehen:

in Feld steht Erledigt:IstDatum([Abschlussdatum])
in Kriterium steht <>[Parameter]

Du übergibst als Parameter (Typ Integer):
-1 für offen
0 für erledigt
1 für alle beide Möglichkeiten

Nils Schergens
08.10.2001, 13:11
Danke Mario das ist ne geniale Lösung :p

und funktioniert prächtig

Wie schon gesagt aus einer Lösung folgt das nächste Problem :)

Eigentlich wieder das selbe und zwar soll diesmal nach einem Kfz Kennzeichen abgefragt werden. Man filtert entweder nach einem Kennzeichen oder wenn man nichts eingibt sollen alle ausgegeben werden.

Sorry das ich euch noch immer mit dem Abfragekram nerve, aber ich habe verschiedene Bücher durchgewälzt, aber finde nie so richtig was mir da weiterhilft.

MarioR
08.10.2001, 13:49
Hallo Nils,

Feld: Kennzeichen: Nz([KFZ-Kennzeichen];"")

Wenn Du genau auf die Zeichenfolge prüfen willst:
Kriterium: Wie Wenn(IstNull([Parameter]);"*";[Parameter])

Sonst kannst Du es so machen :)
- Kennzeichen beginnt mit der Zeichenfolge:
Kriterium: Wie [Parameter] & "*"
- Kennzeichen endet mit der Zeichenfolge:
Kriterium: Wie "*" & [Parameter]
- Kennzeichen enthält Zeichenfolge:
Kriterium: Wie "*" & [Parameter] & "*"

Nils Schergens
08.10.2001, 14:40
Funktioniert danke

So erstmal bin ich für heute glücklich :)