Vba 将combobox的值传递为字段
如果我使用了错误的术语,请道歉。我试图构建一个表单,用户从下拉列表中选择字段,然后在文本框中输入搜索文本。然后表单应该在表中搜索与组合框中指定的字段中的文本匹配的记录 然而,我目前所拥有的并不起作用。我知道错误在哪里,但无法修复 目前的代码是:Vba 将combobox的值传递为字段,vba,ms-access,combobox,Vba,Ms Access,Combobox,如果我使用了错误的术语,请道歉。我试图构建一个表单,用户从下拉列表中选择字段,然后在文本框中输入搜索文本。然后表单应该在表中搜索与组合框中指定的字段中的文本匹配的记录 然而,我目前所拥有的并不起作用。我知道错误在哪里,但无法修复 目前的代码是: Private Sub btn_Search_Click() Dim strSearchTerm As String Dim strComboField As String strComboField = Me!cmb_src strSearchT
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
端接头
我相信这是错误的
& "Where Fields(strComboField) LIKE '*" & Me.txtSearch & "*' " _
因为用字段名[Model name]替换字段(strComboField)可以很好地解决问题
非常感谢您的帮助
谢谢试着用这个:
"Where [Model Name] LIKE '*" & Me.txtSearch & "*' " _
或者创建基本查询,如下所示:
Where [Model Name] LIKE '* & Forms![frm_YourForm]![cmb_src] & *'
然后单击搜索按钮重新查询表单,其余VBA代码不需要
更新:抱歉,没有提到选择要搜索的字段。在这种情况下,应该在哪里
"Where [" & strComboField & "] LIKE '*" & Me.txtSearch & "*' "
之后
不需要额外的重新查询,更改记录源会自动重新查询表单尝试使用以下方法:
"Where [Model Name] LIKE '*" & Me.txtSearch & "*' " _
或者创建基本查询,如下所示:
Where [Model Name] LIKE '* & Forms![frm_YourForm]![cmb_src] & *'
然后单击搜索按钮重新查询表单,其余VBA代码不需要
更新:抱歉,没有提到选择要搜索的字段。在这种情况下,应该在哪里
"Where [" & strComboField & "] LIKE '*" & Me.txtSearch & "*' "
之后
不需要额外的重新查询,更改记录源会自动重新查询表单,是不是:
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]; "
难道不是:
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]; "
请尝试
&“Where-Fields”&strComboField&“LIKE'*'”&Me.txtSearch&“*'”\uuu
。但是,我不确定这是否是您唯一的错误,strComboField
是否获取了一个值,这不是从组合框或列表框中读取的方式谢谢,这不起作用,但正如您所说,可能是因为我从组合框中读取的方式不正确。我看看能不能解决这个问题。给我的错误是(在查询表达式“Fields Model Name LIKE”中缺少运算符0)“。当您使用F8运行代码时,strComboField
是否正确地从用户表单组合框中读取值?它是组合框、列表框还是文本?它是组合框,是的,它似乎正确地读取了组合框的值并将变量设置为该值尝试和“Where Fields[”&strComboField&“]类似”*”&Me.txtSearch&“*”\
尝试和“Where-Fields”&strComboField和“LIKE'*”&Me.txtSearch&“*”“
。但是,我不确定这是您唯一的错误,strComboField
是否获取了一个值,这不是从组合框或列表框中读取的方法谢谢,这不起作用,但正如您所说,可能是因为我从组合框中读取的方式不正确。我将看看是否可以解决这个问题。给我的错误是。”(查询表达式“字段模型名称”中缺少运算符0,如“。当您使用F8运行代码时,strComboField
是否正确地从用户表单组合框中读取值?它是组合框、列表框还是文本?它是组合框,是的,它似乎正确地读取了组合框的值并将变量设置为该值尝试和“Where Fields[”&strComboField&“]类似”*”&Me.txtSearch&“*”“”
我不确定我是否希望这样做?用户应通过组合框将[Model Name]设置为[Model Name]或[Model Brand]或[Model Category]。搜索所基于的文本位于一个名为txtsearch的文本框中。我正在尝试在组合框中指定的字段中搜索我。txtbox。很抱歉,我错过了选择要搜索的字段的要点,第二个答案是正确的。我不确定这是否是我希望发生的事情?[Model Name]应由用户通过组合框设置为[型号名称]或[型号品牌]或[型号类别]。搜索所基于的文本位于名为txtsearch的文本框中。我尝试在组合框中指定的字段中搜索我。txtbox。很抱歉,我错过了选择搜索字段的要点,第二个答案是正确的