PDA

Vollständige Version anzeigen : Datum zwischen?


horse79
18.10.2001, 07:29
Hallo,

ich habe ein Formular in dem steht ein Datumsfeld (z.B. 01.12.2001). Im Uform stehen 2 Datumsfelder. (z.B. "Von" mit Inhalt 15.11.2001 und "bis" mit Inhalt 20.12.2001). Jetzt sollen im Uform aber nur diejenigen Datensätze angezeigt werden, bei denen der Inhalt des Datumsfeldes im Hauptformular innerhalb der "von" - "bis" Felder liegt.

Wie mach ich denn sowas?

Danke

Hondo
18.10.2001, 08:11
Hallo,

Set rs = db.OpenRecordset("SELECT * FROM Quelle WHERE ((DasDatum) Between " & DatumSQL(Datum1) & " And " & DatumSQL(Datum2) & " ) ORDER BY DasDatum;", dbOpenSnapshot)

Die Funktion DatumSQL ist in einem Modul und lautet:

Public Function DatumSQL(dat As String) As String
Dim tt As String
Dim mm As String
Dim jj As String
If Len(dat) <> 10 Then Exit Function
tt = left(dat, 2)
mm = Mid(dat, 4, 2)
jj = Right(dat, 4)
DatumSQL = "#" & mm & "/" & tt & "/" & jj & "#"
End Function

Für die Übernahme der Werte aus dem HF mußt du noch Me.Parent davorstellen.
Gruß Andreas

horse79
18.10.2001, 08:18
wo bau ich die Zeile
set rs=db.open....
ein?

erwin
18.10.2001, 09:17
am besten gar nirgends ;)
entweder setzt du im HF BeimAnzeigen (Form_Current) einen Filter für dein UFo, oder du definierst für's UFo eine abfrage, welche sich auf die beiden Felder des HF's bezieht (wobei ich aber idR. Formularbezüge in Abfragen vermeide).

per Filter geht's so:

Me!UFoControlName.Form.Filter = "UFoVonDatum <= #" & format(Me!HFDatum,"yyyy-mm-dd") & "# AND ...
Me!UFoControlName.Form.FilterOn = True

HTH erwin...

horse79
18.10.2001, 10:04
Danke erstmal,

ich hab leider nen Syntaxfehler:
Me!Unterformular.Form.Filter = "mglEinsatzvon >= #" & Format(Me!ZeitraumVon, "yyyy-mm-dd") & "# AND <= #" & Format(Me!ZeitraumBis, "yyyy-mm-dd") & "#"

Wo liegt da mein Problem?

erwin
18.10.2001, 10:09
da fehlt ja der Feldname zwischen dem AND... und dem ...<= #" & Format!...

so long erwin...

horse79
18.10.2001, 10:18
natürlich!

so klappt das.

Danke Erwin