我想基于comboBox文本值过滤查询中的日期值(文本)。 这就是我所拥有的:
ComboBoxTimePeriod(ID [num],TimePeriod [text])。
在ComboBox中,我选择时间段,例如" 16.10.2017-15.11.2017"。
在查询中,我的日期字段包含单个日期,例如" 20.10.2017" (文本)。
我想要的是编写一个SQL代码,搜索日期在TimePeriod范围内的所有记录。
到目前为止,想法是从TimePeriod中提取SatrtDate和EndDate,如下所示:
Dim strStartDate As String
Dim strEndDate As String
strStartDate = Mid(Me.cboTimePeriod.Text, 1, 10)
strEndDate = Mid(Me.cboTimePeriod.Text, 12, 10)
现在来自TimePeriod" 16.10.2017-15.11.2017"我有StartDate(16.10.2017)和EndDate(15.11.2017)。
我想过滤所有在这两个日期内有日期的记录。 这就是我需要你们的地方。
请注意,这与我上一个问题不同,我在那里搜索了TimePeriodID(Subform filtering based off multiple parameters (Combobox AND Textbox))的记录。
答案 0 :(得分:1)
始终将日期作为日期处理,而不是文本:
Dim StartDate As Date
Dim EndDate As Date
StartDate = DateValue(Split(Me.cboTimePeriod.Value, "-")(0))
EndDate = DateValue(Split(Me.cboTimePeriod.Value, "-")(1))
构建过滤器:
... " Between #" & Format(StartDate, "yyyy\/mm\/dd") & "# And #" & Format(EbdDate, "yyyy\/mm\/dd") & "#"
过滤表单:
Me.Filter = "[Date Field] Between #" & Format(StartDate, "yyyy\/mm\/dd") & "# And #" & Format(EbdDate, "yyyy\/mm\/dd") & "#"
Me.FilterOn = True
确保您的日期字段的数据类型为日期,而不是文字。