Steve Schapel
miscellany at mvps.org
Fri Nov 23 14:48:04 CST 2007
David,
If the [Date] and [Time] fields in the table are a Date/Time data type,
and if the criteria controls on the form are formatted with a valid date
and/or time format, then I don't think you would need the CDate and
DateValue functions as you have used them. I would expect (without
having tested) that this would work:
"WHERE (EntryLogSets.Date + EntryLogSets.Time) Between (#" &
[Forms]![BSVR]![BsvrStartDate] & "# + #" &
[Forms]![BSVR]![BSVRStartTime] & "#) And (#" &
[Forms]![BSVR]![BsvrEndDate] "# + #" & [Forms]![BSVR]![BSVREndTime] & "#)"
I always wrap date and time criteria in CLng or CDbl to handle
international problem, so I would do it like this:
"WHERE (EntryLogSets.Date + EntryLogSets.Time) Between (" &
CLng([Forms]![BSVR]![BsvrStartDate]) +
CDbl([Forms]![BSVR]![BSVRStartTime]) & ") And (" &
CLng([Forms]![BSVR]![BsvrEndDate]) + CDbl([Forms]![BSVR]![BSVREndTime])
& ")"
Regards
Steve
David Emerson wrote:
> Thanks to everyone who replied.
>
> The final solution was twofold. First change the query:
>
> DoCmd.RunSQL "INSERT INTO ShipmentDetailForBSVRperiod SELECT
> ShipmentDetail.* " & _
> "FROM ShipmentDetail INNER JOIN EntryLogSets ON
> ShipmentDetail.CargoID = EntryLogSets.CargoID " & _
> "WHERE (CDate(DateValue(EntryLogSets.Date) +
> TimeValue(EntryLogSets.Time))>=
> CDate(DateValue([Forms]![BSVR]![BsvrStartDate]) +
> TimeValue([Forms]![BSVR]![BSVRStartTime]))) " & _
> "And CDate(DateValue(EntryLogSets.Date) +
> TimeValue(EntryLogSets.Time))<=
> CDate(DateValue([Forms]![BSVR]![BsvrEndDate]) +
> TimeValue([Forms]![BSVR]![BSVREndTime]))"
>
>
> Secondly, tidy up the data to remove invalid entries in the time field.
>