MS Access Filter by ComboBox selection 基于列名
MS Access Filter by ComboBox selection based on Column names
我有点卡在这里。我有以下代码:
` Private Sub Command88_Click()
Dim filterString As String
Dim startDate As String
Dim endDate As String
startDate = txtStartDate
endDate = txtEndDate
selectedfield = CboxSelectField.Value
filterString = "[HW End of Support] BETWEEN #" & Format(startDate, "MM-DD-YYYY") & "# And #" & Format(endDate, "MM-DD-YYYY") & "#"
Me.Filter = filterString
Me.FilterOn = True
End Sub`
只要要过滤的列的值保持硬编码,过滤器就可以正常运行,即 [HW End of Support]
但我有一个名为 CboxSelectField
的组合框,它有 4 个不同的列名和我需要根据从组合框中选择的列过滤数据?
如果我将 [HW End of Support]
替换为包含组合框选择值的 selectedField
变量,则代码会中断并且不会过滤。
请帮忙!
试试:
filterString = "[" & selectedfield & "] BETWEEN #" & Format(startDate, "MM-DD-YYYY") & "# And #" & Format(endDate, "MM-DD-YYYY") & "#"
这将输出字段名称 "My Field":
[My Field] BETWEEN #04-25-2018# And #04-25-2018#
您的扩展表达式将 return:
[My Field] BETWEEN #04-25-2018# And #04-25-2018#
这个有效:
filterString = "" & "[" & selectedField & "]" & " BETWEEN #" & Format(startDate, "MM-DD-YYYY") & "# And #" & Format(endDate, "MM-DD-YYYY") & "#"
您似乎还没有定义 "selectedfield"
- 您应该将其定义为 string
,然后将其设置为 "[" & CboxSelectField.Value & "]"
以使其按照您的方式工作目前正在尝试。
所以你的编码应该是这样的:
Private Sub Command88_Click()
Dim startDate As String, endDate As String
Dim selectedfield As String, filterString As String
startDate = txtStartDate
endDate = txtEndDate
selectedfield = "[" & CboxSelectField.Value & "]"
filterString = selectedfield & " BETWEEN #" & _
Format(startDate, "MM-DD-YYYY") & "# And #" & _
Format(endDate, "MM-DD-YYYY") & "#"
Me.Filter = filterString
Me.FilterOn = True
End Sub
我有点卡在这里。我有以下代码:
` Private Sub Command88_Click()
Dim filterString As String
Dim startDate As String
Dim endDate As String
startDate = txtStartDate
endDate = txtEndDate
selectedfield = CboxSelectField.Value
filterString = "[HW End of Support] BETWEEN #" & Format(startDate, "MM-DD-YYYY") & "# And #" & Format(endDate, "MM-DD-YYYY") & "#"
Me.Filter = filterString
Me.FilterOn = True
End Sub`
只要要过滤的列的值保持硬编码,过滤器就可以正常运行,即 [HW End of Support]
但我有一个名为 CboxSelectField
的组合框,它有 4 个不同的列名和我需要根据从组合框中选择的列过滤数据?
如果我将 [HW End of Support]
替换为包含组合框选择值的 selectedField
变量,则代码会中断并且不会过滤。
请帮忙!
试试:
filterString = "[" & selectedfield & "] BETWEEN #" & Format(startDate, "MM-DD-YYYY") & "# And #" & Format(endDate, "MM-DD-YYYY") & "#"
这将输出字段名称 "My Field":
[My Field] BETWEEN #04-25-2018# And #04-25-2018#
您的扩展表达式将 return:
[My Field] BETWEEN #04-25-2018# And #04-25-2018#
这个有效:
filterString = "" & "[" & selectedField & "]" & " BETWEEN #" & Format(startDate, "MM-DD-YYYY") & "# And #" & Format(endDate, "MM-DD-YYYY") & "#"
您似乎还没有定义 "selectedfield"
- 您应该将其定义为 string
,然后将其设置为 "[" & CboxSelectField.Value & "]"
以使其按照您的方式工作目前正在尝试。
所以你的编码应该是这样的:
Private Sub Command88_Click()
Dim startDate As String, endDate As String
Dim selectedfield As String, filterString As String
startDate = txtStartDate
endDate = txtEndDate
selectedfield = "[" & CboxSelectField.Value & "]"
filterString = selectedfield & " BETWEEN #" & _
Format(startDate, "MM-DD-YYYY") & "# And #" & _
Format(endDate, "MM-DD-YYYY") & "#"
Me.Filter = filterString
Me.FilterOn = True
End Sub