Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: silentwolf am Juli 14, 2016, 21:28:48

Titel: Listenfeld filtern mit Textfeld Datum
Beitrag von: silentwolf am Juli 14, 2016, 21:28:48
Hallo liebe Leute,
bin leider wieder mal an meine Grenzen gestoßen und komm leider nicht weiter..
Hab schon geschaut ob ich etwas finde aber leider ohne Erfolg.

Private Sub txtDatum_Change()
Dim db As DAO.Database
Dim qdf As DAO.QueryDef
Dim datDatum As Date
Dim datSQL As Date

Set db = CurrentDb
Set qdf = db.QueryDefs("qryObjektTerminTest")

datDatum = txtDatum.Text

   
    datSQL = "SELECT qryObjektTerminTest.* " & _
                         "FROM qryObjektTerminTest " & _
                         "WHERE qryObjektTerminTest.ObjT_Datum= #" & Me.txtDatum & "#" & _
                         "ORDER BY qryObjektTerminTest.ObjT_Anfang;"
   
        lstObjektTermine.RowSource = datSQL
        lstObjektTermine.Requery
End Sub


Hier ist mein Code der leider in der datSQL Anweisung mir den Laufzeitfehler 13 gibt..
Ich finde den Fehler leider alleine nicht..

Was ich eigentlich hier versuche ist nach dem Öffnen eines Formulares werden in Textfeld das Datum eingetragen  bzw. beim Öffnen ist das aktuelle Datum hinterlegt.
In diesem Formular habe ich noch ein lstObjektTermine eingefügt das ich mit einer Abfrage fülle..Ich würde gerne nach Änderung des txtDatum feldes die lstObjektTermine aktualisieren und nur die Daten des ausgewählten Datums anzeigen lassen.
Also ich bin mir nicht sicher 1. wie ich beim öffnen gleich das listenfeld aktualisiere also mit dem aktuellen Datum.. und zweitens bekomme ich eben diese Fehlermeldung wenn ich versuche ein anderes Datum auszuwählen.

Wäre echt dankbar wenn mir hier jemand helfen könnte!

Vielen Dank

Albert
Titel: Re: Listenfeld filtern mit Textfeld Datum
Beitrag von: MaggieMay am Juli 14, 2016, 22:14:31
Hallo Albert,
ZitatDim datSQL As Date
einem Datumsfeld kannst du natürlich keinen SQL-String zuweisen.

Und das Change-EReignis scheint mir hier auch nicht die richtige Wahl
zu sein, nimm lieber AfterUpdate.
Dann brauchst du auch nicht die Text-Eigenschaft auszuwerten.

So könnte das dann aussehen:
Private Sub txtDatum_AfterUpdate()
    Dim strSQL As String

    strSQL = "SELECT qryObjektTerminTest.* " & _
                   "FROM qryObjektTerminTest " & _
                  "WHERE qryObjektTerminTest.ObjT_Datum=" & Format(Me.txtDatum, "\#yyyy\/mm\/dd\#") & " " & _
                  "ORDER BY qryObjektTerminTest.ObjT_Anfang;"
    Me!lstObjektTermine.RowSource = strSQL
End Sub


PS:
Wenn du das Listenfeld auf eine Parameterabfrage mit Bezug auf das Formularfeld einstellst, so brauchst du es bei Änderung des Datums nur zu aktualisieren.
Titel: Re: Listenfeld filtern mit Textfeld Datum
Beitrag von: silentwolf am Juli 15, 2016, 06:54:53
Hallo Maggie,

vielen Dank für Deine Hilfe! Werd ich dann gleich probieren.


Schönen Tag noch!

Albert