Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Carlos_C am September 22, 2015, 08:15:59

Titel: Problem mit Suchformular
Beitrag von: Carlos_C am September 22, 2015, 08:15:59
Hallo liebes Forum,

ich habe folgendes Problem mit einem Suchformular:

Und zwar habe ich ein Suchformular um Dokumente zu suchen, mit –u.a.- den Feldern ,,cbo_Projekt", ,,cbo_Dokumententyp", ,,cbo_Version", ,,txt_Beschreibung", ,,txt_DatumDokumentVon" und ,,txt_DatumDokumentBis".

Projekt, Dok-Typ und Version sind Kombinationsboxen.

Das Fomular basiert auf die Abfrage ,,qry_Dokumente". In der Entwurfsansicht dieser Abfrage habe ich, unter ,,Kriterien":

bei dem Feld ,,Projekt" ,,Wie "*" & [Formulare]![frmDokumente]![cbo_Projekt] & "*"" ,

bei dem Feld ,,Dokumententyp" ,,Wie "*" & [Formulare]![frmDokumente]![cbo_Dokumententyp] & "*"" , und

bei dem Feld ,,Version" ,,Wie "*" & [Formulare]![frmDokumente]![cbo_Version] & "*""

geschrieben.

Im Formular, als AfterClick Ereignis, für diese 3 Felder (,,cbo_Projekt", ,,cbo_Dokumententyp" und ,,cbo_Version") habe ich folgendes geschrieben: ,,Me.Requery".

Funktioniert wunderbar, nachdem ich bei Projekt, Dok.-Typ und / oder Version was eingebe, werden unten die Ergebnisse gezeigt.

Das Problem habe ich jetzt aber mit den Feldern ,,txt_Beschreibung" und ,,txt_DatumDokumentVon" und ,,txt_DatumDokumentBis".

Bei dem Feld ,,txt_Beschreibung" ist das Problem, dass in manchen Datenfeldern dieses Feld leer sein kann, so dass wen ich im dazugehörigen Feld in der Abfrage qry_Dokumente

  ,,Wie "*" & [Formulare]![frmDokumente]![cbo_LetzteVersion] & "*""

schreibe, Access mir nicht die Datensätze zeigt, bei denen das Feld Beschreibung leer ist.

Weißt man, wie ich dieses Problem lösen kann?

Das zweite Problem habe ich mit den Feldern ,,txt_DatumDokumentVon" und ,,txt_DatumDokumentBis". Ich möchte im Suchformular die Möglichkeit haben, eins oder die beiden Felder zu befüllen. Wenn ich z.B. unter ,,txt_DatumDokumentVon" den 2.3.2015 eingebe, soll Access mir die Datensätze zeigen, wo unter ,,DatumDokument" ein Datum nicht älter als der 2.3.2015 steht. Im Gegenteil, wenn ich z.B. unter ,,txt_DatumDokumentBis" den 31.08.2015, soll Access mir alle Datensätze zeigen, wo unter ,,DatumDokument" ein Datum 31.08.2015 oder älter steht. Wenn ich in beiden Felder ,,txt_DatumDokumentVon" und ,,txt_DatumDokumentBis" was eingeben, soll mir Access dann natürlich die Dokumente aus dem Zeitraum zeigen.

Hat jemand hier auch einen Tipp?


Titel: Re: Problem mit Suchformular
Beitrag von: DF6GL am September 22, 2015, 08:36:28
Hallo,

vorzuziehen wäre in solchen Fällen der Zusammenbau des SQL-Strings mit einem entspr. Where-Condition-Ausdruck per VBA....

Zitat,,Wie "*" & [Formulare]![frmDokumente]![cbo_LetzteVersion] & "*""

schreibe, Access mir nicht die Datensätze zeigt, bei denen das Feld Beschreibung leer ist.


Versteh ich nicht... Was hat "cbo_LetzteVersion" mit der Beschreibung zu tun?



ZitatDas zweite Problem habe ich mit den Feldern ,,txt_DatumDokumentVon" und ,,txt_DatumDokumentBis". Ich möchte im Suchformular die Möglichkeit haben, eins oder die beiden Felder zu befüllen. Wenn ich z.B. unter ,,txt_DatumDokumentVon" den 2.3.2015 eingebe, soll Access mir die Datensätze zeigen, wo unter ,,DatumDokument" ein Datum nicht älter als der 2.3.2015 steht. Im Gegenteil, wenn ich z.B. unter ,,txt_DatumDokumentBis" den 31.08.2015, soll Access mir alle Datensätze zeigen, wo unter ,,DatumDokument" ein Datum 31.08.2015 oder älter steht. Wenn ich in beiden Felder ,,txt_DatumDokumentVon" und ,,txt_DatumDokumentBis" was eingeben, soll mir Access dann natürlich die Dokumente aus dem Zeitraum zeigen.

eine Möglichkeit wäre:


>=nz([Forms]![frmDokumente]![txt_DatumDokumentVon];#01.01.1900#)

und

<=nz([Forms]![frmDokumente]![txt_DatumDokumentBis];#01.01.2200#)


bei den enstpr. Abfragespalten.
Titel: Re: Problem mit Suchformular
Beitrag von: Carlos_C am September 22, 2015, 09:51:49
Entschuldige, habe mich vertippt, ich meinte "cbo_Beschreibung" und nicht "cbo_LetzteVersion".
Titel: Re: Problem mit Suchformular
Beitrag von: Carlos_C am September 22, 2015, 09:53:57
Danke Franz für Deine Antwort!

Es gibt aber nur eine Abfragespalte "DatumDokument". Die 2 Formularfelder "txt_DatumDokumentVon" und "txt_DatumDokumentBis" beziehen sich auf diese Abfragespalte.
Titel: Re: Problem mit Suchformular
Beitrag von: MaggieMay am September 22, 2015, 10:40:51
Hi,
ZitatEs gibt aber nur eine Abfragespalte "DatumDokument"
du kannst die beiden Kriterien mit UND verknüpft in eine Zeile (="Zelle") schreiben.
Titel: Re: Problem mit Suchformular
Beitrag von: Carlos_C am September 22, 2015, 10:52:31
Super! Versuche dann es gleich. Danke Euch!!!
Titel: Re: Problem mit Suchformular
Beitrag von: Carlos_C am September 22, 2015, 11:46:32
Funktioniert wunderbar! Vielen Dank!

Wisst Ihr vielleicht, was ich in die Abfragespalte "Beschreibung" eingeben soll? Wie vorhin erwähnt, wenn ich

"Wie "*" & [Formulare]![frmDokumente]![txt_Beschreibung] & "*""

eingebe, betrachtet Access nur die Datensätze, wo das Feld "Beschreibung"nicht leer ist.



Titel: Re: Problem mit Suchformular
Beitrag von: Carlos_C am September 22, 2015, 12:09:39
Ich habe übrigens ein kleines Problem entdeckt nach der Lösung der Datumsfelder.

Ich habe in der Abfragespalte ,,DatumDokument" folgendes eingegeben:

>=Nz([Forms]![frmDokumente]![txt_DatumDokumentVon];#01.01.1900#) Und <=Nz([Forms]![frmDokumente]![txt_DatumDokumentBis];#01.01.2200#)

Wie schon geschrieben, funktioniert sehr gut, aber, wenn ich auf den Knopf ,,Filter Zurücksetzen" klicke, kommt folgende Fehlermeldung:

Laufzeitfehler ,3420': Das Objet ist ungültig, oder es ist nicht mehr festgelegt.

Und markiert die letzte Zeile meines VBA Codes. Hier der VBA Code hinter dem ,,Filter zurücksetzen" Botton:

Private Sub btn_FilterEntfernen_Click()

Me.cbo_Projekt = ""
Me.cbo_Dokumententyp = ""
Me.cbo_Version = ""
Me.txt_DatumDokumentVon = ""
Me.txt_DatumDokumentBis = ""
Me.txt_Beschreibung = ""
Me.Requery

End Sub
Titel: Re: Problem mit Suchformular
Beitrag von: MaggieMay am September 22, 2015, 12:50:55
Hi,

1)
erweitere das Kriterium wie folgt:
Wie "*" & [Formulare]![frmDokumente]![txt_Beschreibung] & "*" ODER IST NULL

2)
Setze die Felder auf NULL anstelle von "".
Titel: Re: Problem mit Suchformular
Beitrag von: Carlos_C am September 22, 2015, 13:29:24
Hallo Maggie, hier die Nervensäge nochmal =)

Der Punkt 2 klappt jetzt wunderbar.

Der Punkt 1 aber noch nicht. Also, wenn ich das Formular öffne, soll Access mir alle Datensätze zeigen. Aber, wenn ich ein Suchkriterium eingebe, sollen nur die Datensätze gezeigt werden, die das Kriterium erfüllen. Mit Deinem Code zeigt er mir die DS, die das kriterium erfüllen + alle Datensätze, wo unter "Beschreibung" nichts eingetragen ist.

Kann man das ändern?
Titel: Re: Problem mit Suchformular
Beitrag von: MaggieMay am September 22, 2015, 14:34:53
ZitatMit Deinem Code zeigt er mir die DS, die das kriterium erfüllen + alle Datensätze, wo unter "Beschreibung" nichts eingetragen ist.
Ja, ich dachte das wäre es was du haben wolltest.

Oder wie war das hier gemeint:
Zitatbetrachtet Access nur die Datensätze, wo das Feld "Beschreibung"nicht leer ist.
Titel: Re: Problem mit Suchformular
Beitrag von: Carlos_C am September 22, 2015, 14:41:13
Entschuldige, habe mich falsch ausgedruckt.

Wenn ich das Formular öffne, sollen alle Datensätze (also die Null und Nicht Null Werte) gezeigt werden.

Wenn ich was im Feld "Beschreibung" eingebe, sollen nach Aktualisierung nur die Datensätze gezeigt werden, die in der Abfagespalte "Beschreibung" den Wert, den ich Formularfeld "Beschreibung" eingegeben hat. Z.B. ich gebe unter "Beschreibung" "X" ein, dann sollen die Datensätze gezeigt werden, wo z.B. unter "Beschreibung" "Prüfung X", oder "Test X" eingetragen wurde.

Kann man das bei Access machen?
Titel: Re: Problem mit Suchformular
Beitrag von: MaggieMay am September 22, 2015, 15:37:41
Dann sollte folgendes funktionieren:
Wie "*" & [Formulare]![frmDokumente]![txt_Beschreibung] & "*" ODER [Formulare]![frmDokumente]![txt_Beschreibung] IST NULL
Titel: Re: Problem mit Suchformular
Beitrag von: Carlos_C am September 22, 2015, 16:37:57
Super! Jetzt klappt es super! Danke, Maggie!