2016-08-28 4 views
0
Sub Main() 
StartTime = Now() 
TDate = CDate(Format(Now(), "MM/DD/YYYY")) 
My = Environ("Username") 
Set db = CurrentDb 
Set rs = db.OpenRecordset("Emp", dbOpenDynaset) 
Criteria = "ID = '" & My & "' And From_Date >= '" & TDate & "' And To_Date <= '" & StartTime & "' " 
rs.FindFirst Criteria 
If rs.NoMatch Then 
MsgBox "Record not found" 
else 
MsgBox "Record found" 
end if 

Bitte helfen Sie, diesen Code auszuführen, wie ich ersten Datensatz zwischen Startdatum & Enddatum finden möchte.Mehrere Bedingung in FindFirst-Anweisung

Antwort

0

Für ein Datum, das Sie ein „#“ als umschließende Zeichen verwendet werden soll:

Criteria = "ID = '" & My & "' And From_Date >= #" & TDate & "# And To_Date <= #" & StartTime & "# " 
0

Sie mischen das Datum und Uhrzeitformat:

Sub Main() 

    ' Dim StartTime As Date 
    ' Dim TDate As Date 

    StartTime = Now 
    TDate = DateValue(StartTime) 
    My = Environ("Username") 

    Set db = CurrentDb 
    Set rs = db.OpenRecordset("Emp", dbOpenDynaset) 
    Criteria = "ID = '" & My & "' And From_Date >= #" & Format(TDate, "yyyy\/mm\/dd") & "# And To_Date <= #" & Format(StartTime, "yyyy\/mm\/dd") & "#'" 
    rs.FindFirst Criteria 
    If rs.NoMatch Then 
     MsgBox "Record not found" 
    Else 
     MsgBox "Record found" 
    End If 

End Sub 

Allerdings könnte es zu reduzieren:

Sub Main() 

    My = Environ("Username") 

    Set db = CurrentDb 
    Set rs = db.OpenRecordset("Emp", dbOpenDynaset) 
    Criteria = "ID = '" & My & "' And From_Date >= Date() And To_Date <= Now()" 
    rs.FindFirst Criteria 
    If rs.NoMatch Then 
     MsgBox "Record not found" 
    Else 
     MsgBox "Record found" 
    End If 

End Sub