【发布时间】:2021-05-07 01:41:50
【问题描述】:
我有一个表单,上面有一个 ComboBox,它通过 ID 提取记录并显示链接表中的名称。标准在生成的表单组合框向导中查找值。它工作得很好,但每次找到一条记录需要 3-4 分钟。
我一直在尝试对此进行研究,并发现了一些看起来很有用但似乎无法正确使用的东西。
我现在的代码:
Private Sub Combo81_Change()
Dim strText As String
Dim strSelect As String
strText = Nz(Me.Combo81.Text, "")
If Len(strText) > 2 Then
strSelect = "SELECT Name FROM CTable WHERE Name LIKE '*" & strText & "*'; "
Debug.Print strSelect
Me.Combo81.RowSource = strSelect
Me.Combo81.Dropdown
End If
End Sub
我在两个论坛上找到了这段代码,它应该执行以下操作:“关键是没有为组合框定义行源。行源将定义为用户开始输入字母。一旦他们达到 3 个字母,然后组合框的行源将被定义,组合框将被告知下拉。"
当我达到 3 个字母时,会出现一个下拉菜单,但它是空白的,不显示任何结果。
我想当用户输入时,例如“史密斯”只有那些姓史密斯的人才会出现。
我对 Access 和数据库比较陌生,我正在使用 FE/BE 将表链接到共享网络文件夹和用户桌面上的 FE。
有什么建议吗?或者另一种解决方案,即如何更快地使用我的组合框并仍然保持值的唯一性?
【问题讨论】:
-
有时但并非总是如此,在 sql 语句中包含终止符会导致问题。构建查询表达式时,最好不要使用分号 SQL 终止符:“SELECT Name FROM CTable WHERE Name LIKE '” & strText & “'”
-
即使 (="[ID] = " & Str(Nz([Screen].[ActiveControl],0))) on/ 或删除它,我是否应该在更新后离开搜索记录?
-
这能回答你的问题吗? Search as you type with MS Access Combobox
-
Combobox AutoExpand 属性不够用?
-
自动展开 = 是
标签: sql vba ms-access combobox