Hallo,
ich habe folgendes Problem.
Ich habe eine Datenbank, in welcher Rehabilitationspläne für Patienten einer Einrichtung erstellt werden können, welche den Patienten pro Woche als Wochenplan ausgehändigt werden. Soweit so gut.
Aus diesen Daten werden ebenfalls die Informationen für die Mitarbeiter der Einrichtung gezogen, da diese natürlich wissen müssen, mit welchen Patienten(gruppen) sie wann und wo Rehabilitationsmaßnahmen abzuhalten haben.
Ich habe die Beispieldatenbank im Anhang mal auf das wesentliche reduziert.
Nach dem einloggen (Passwort = Passwort) gelangt man über den Button "Planübersicht" zum eigentlichen Problemformular, in welchem über die Kombifelder Kalenderjahr > Kalenderwoche > Wochentag das Listenfeld mit den Planungen des Tages gefüllt wird, welche man auswählen kann und dadurch ein Unterformular öffnet. Und genau hier liegt mein Problem, denn beim klicken auf die Planung im Listenfeld bekomme ich die Fehlermeldung
Filter Function Error
3075 - Syntaxfehler (fehlender Operator) in Abfrageausdruck '[KalenderJahr]=2014 AND [KW]= 8 AND [WT]=2 AND [lngZeitVon]=14:51:00'
Die Kombifelder werden via VBA gefüllt. Die Uhrzeit ist in den Tabellen und Abfragen auf 24h eingestellt, weshalb mich die Angae der vollen Uhrzeit in der Fehlermeldung verwundert.
Ich hoffe, ich habe alles ausführlich genug beschrieben, so dass mir jemand helfen kann, denn ich verzweifle nun schon über eine Woche an diesem Problem.
Besten Dank im Vorraus.
Hallo,
2 Dinge sind mir adhoc aufgefallen.
1. in der Abfrage für das Unterformular ist KW ein String, du solltest mit cdbl(Format(...)) arbeiten in der Abfrage.
2. In der Tabelle und im Form steht die Zeit formatiert ohne Sekunden. Beim Formatieren sind dann aufeinmal die Sekunden da.
Datum/Zeit Felder allgemein sind in Hochkommatas einzuschließen.
Gruß Andreas
Hallo,
das Tabellenfeld "lngZeitVon" ist vom Datentyp Datum/Uhrzeit . Insofern ist das Kriterium in der Where-Condition für das Feld mit diesem Datentyp zu generieren:
If Not IsNull(Me!cblStunden) Then
strFilter = strFilter & " AND [lngZeitVon] = " & [color=red]Format(Me!cblStunden, "\#hh:nn:ss\#")[/color]
End IfZitatDie Uhrzeit ist in den Tabellen und Abfragen auf 24h eingestellt
Das ist lediglich eine Ausgabeformat-Angabe und hat mit dem Tabellen-Datentyp nichts zu tun.
Vielen Dank für die sehr schnellen Antworten.
Der Ansatz von DF6GL hat auch die Lösung gebracht.
Bezüglich der Angaben von Hondo werde ich mich heute Abend noch einmal belesen, denn mit "cdbl(Format(...))" habe ich noch nie gearbeitet, bzw. sogar noch nie irgendwo gehört, oder gelesen. :-[
Ich werde das Thema nun als gelöst markieren.
Vielen Dank!
Hallo,
cdbl() ist lediglich eine Funktion, die einen (geeigneten) Wert in den Datentyp "Double" umwandelt. Ein Datentyp "Datum/Uhrzeit" wird intern ebenfalls als "Double" gehandelt, so dass bei solchen Vergleichen wieder datentyp-bezogene Übereinstimmung herrscht.