如果我的术语错误,请道歉。我正在尝试构建一个表单,用户从下拉列表中选择字段,然后将搜索文本输入到文本框中。然后,表格应在表格中搜索与组合框中指定的字段中的文本匹配的记录。
然而,我目前所拥有的不起作用。我知道错误在哪里但无法修复它。
目前的代码是:
Private Sub btn_Search_Click()
Dim strSearchTerm As String
Dim strComboField As String
strComboField = Me!cmb_src
strSearchTerm = "SELECT Models.ID, Models.[Model Name], Models.[Model Brand], Models.[Model Category] " _
& "FROM Models " _
& "Where Fields(strComboField) LIKE '*" & Me.txtSearch & "*' " _
& "ORDER BY Models.[Model Name]; "
Me.sub_ModelList.Form.RecordSource = strSearchTerm
Me.sub_ModelList.Form.Requery
End Sub
我认为错误在行
& "Where Fields(strComboField) LIKE '*" & Me.txtSearch & "*' " _
使用字段名称[Model Name]替换Fields(strComboField)可以解决问题。
任何帮助非常感谢
由于
答案 0 :(得分:2)
不应该是:
strSearchTerm = "SELECT Models.ID, Models.[Model Name], Models.[Model Brand], Models.[Model Category] " _
& "FROM Models " _
& "Where [" & strComboField & "] LIKE '*" & Me.txtSearch & "*' " _
& "ORDER BY Models.[Model Name]; "
答案 1 :(得分:0)
尝试使用它:
ViewControllerA
或者只使用WHERE创建基本查询:
"Where [Model Name] LIKE '*" & Me.txtSearch & "*' " _
并通过单击“搜索”按钮重新查询表单,其余的VBA代码不需要
更新:抱歉,错过了选择搜索字段的要点。在这种情况下,WHERE应该是
Where [Model Name] LIKE '* & Forms![frm_YourForm]![cmb_src] & *'
在
"Where [" & strComboField & "] LIKE '*" & Me.txtSearch & "*' "
不需要额外的Requery,更改Recodsource会自动重新查询表单