Mrfivejunior Geschrieben 30. Januar 2008 Teilen Geschrieben 30. Januar 2008 Hallo zusammen, ich habe wiedermal ein Problem. Ich habe einen Filter kreiert, der sich durch die Eingabe in mehrere Textfelder auf einem Formular zusammenbauen lässt. Wenn ich nun aber den Filter anwenden möchte kommt die Fehlermeldung: Laufzeitfehler 3464: Datentypen in Kriterienausdruck unverträglich. Mein code ist: Option Compare Database Private Sub Filter2_setzen() Dim DatVon As Date Dim DatBis As Date Dim Filterbedingung2 As String If Not IsNull(Me!Bearbeiter) Then If Filterbedingung2 <> "" Then Filterbedingung2 = Filterbedingung2 & " AND " End If Filterbedingung2 = Filterbedingung2 & "Bearbeiter = " _ & Chr(34) & Me!Bearbeiter & Chr(34) End If If Not IsNull(Me!DatVon) Then If Filterbedingung2 <> "" Then Filterbedingung2 = Filterbedingung2 & " AND " End If Filterbedingung2 = Filterbedingung2 & "eingangsdatum >= " _ & Chr(34) & Me!DatVon & Chr(34) End If If Not IsNull(Me!DatBis) Then If Filterbedingung2 <> "" Then Filterbedingung2 = Filterbedingung2 & " AND " End If Filterbedingung2 = Filterbedingung2 & "eingangsdatum <= " _ & Chr(34) & Me!DatBis & Chr(34) End If Me.Filter = Filterbedingung2 Me.FilterOn = True End Sub Private Sub Bearbeiter_AfterUpdate() Call Filter2_setzen End Sub Private Sub DatVon_AfterUpdate() Call Filter2_setzen End Sub Private Sub DatBis_AfterUpdate() Call Filter2_setzen End Sub Ich denk mal man muss die Textfelder als Datum deklarieren. Aber ich hab da keine Ahnung wie des funktioniert. Ich bin im VBA ein rechter Anfänger. Der Filter soll durch die beiden Textfelder DatVon bzw. DatBis mehrerer Daten(Datums) vergleichen. Das Steuerelement ist in der Tabelle als Datum/Uhrzeit definiert. Tobias Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Reinhold Geschrieben 31. Januar 2008 Teilen Geschrieben 31. Januar 2008 If Not IsNull(Me!DatVon) Then If Filterbedingung2 <> "" Then Filterbedingung2 = Filterbedingung2 & " AND " End If Filterbedingung2 = Filterbedingung2 & "eingangsdatum >= " _ & "#" & Me!DatVon & "#" End If If Not IsNull(Me!DatBis) Then If Filterbedingung2 <> "" Then Filterbedingung2 = Filterbedingung2 & " AND " End If Filterbedingung2 = Filterbedingung2 & "eingangsdatum <= " _ & "#" & Me!DatBis & "#" End If Das liest sich wie Access, aber wer weiß das schon ... Probiers mal wie oben mit "#" statt Chr(34). Achtung ungetestet, Reinhold Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Mrfivejunior Geschrieben 31. Januar 2008 Autor Teilen Geschrieben 31. Januar 2008 Hallo Reinhold, ich habs ausprobiert aber an dem liegt es glaub ich nicht. Es kommt nämlich immernoch der gleiche Fehler. P.S.: ja ich verwende Access.....sorry, dass ichs nicht erwähnt hab Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 31. Januar 2008 Teilen Geschrieben 31. Januar 2008 ich denke du muss Me!DatVon sowie Me!DatBis SQL-gerecht formatieren, bevor du sie übergibst: und lustig, hier habe ich die funktion schon mal gepostet http://forum.fachinformatiker.de/datenbanken/93980-ungueltige-sql-anweisung-accessform.html Public Function CSqlDate(DateToC As Date) As String CSqlDate = "#" & Year(DateToC) & "/" & Month(DateToC) & "/" & Day(DateToC) & "#" End Function das ist super - ich such nach der lösung für ein fide-problem und finde meine eigene lösung von vor 1 1/2 jahren im fide-forum s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Mrfivejunior Geschrieben 1. Februar 2008 Autor Teilen Geschrieben 1. Februar 2008 Hallo zusammen, Danke für eure Hilfe. Hab mein Problem schon gelöst. Hab nun folgenden Code verwendet: Dim Filterbedingung2 As String If Not IsNull(Me!Bearbeiter) Then If Filterbedingung2 <> "" Then Filterbedingung2 = Filterbedingung2 & " AND " End If Filterbedingung2 = Filterbedingung2 & "Bearbeiter = " _ & Chr(34) & Me!Bearbeiter & Chr(34) End If If IsDate(Me!DatVon) Then If Filterbedingung2 <> "" Then Filterbedingung2 = Filterbedingung2 & " AND " End If Filterbedingung2 = Filterbedingung2 & "eingangsdatum >= " & Format(Me!DatVon, "\#yyyy\-mm\-dd\ hh:nn:ss#") End If If IsDate(Me!DatBis) Then If Filterbedingung2 <> "" Then Filterbedingung2 = Filterbedingung2 & " AND " End If Filterbedingung2 = Filterbedingung2 & "eingangsdatum <= " & Format(Me!DatBis, "\#yyyy\-mm\-dd\ hh:nn:ss#") End If Gruß Tobias Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.