vba - 使用列表框 Microsoft Access 多选
问题描述
我正在尝试使用列表框过滤拆分表单,但我不断收到错误“3075”。
我使用了调试工具,我得到了:
strSearch = "52185A, 515674B"
任务 =“从 tOrder 中选择 * ([OrderID] in (52185A,515674B))”
我很确定我错过了一些引文,但我似乎无法弄清楚在哪里。它们都是短文本格式。
Option Compare Database
Private Sub cmdSearch_Click()
Dim varltem As Variant
Dim strSearch As String
Dim Task As String
For Each varltem In Me!LstMatricule.ItemsSelected
strSearch = strSearch & "," & Me!LstMatricule.ItemData(varltem)
Next varltem
If Len(strSearch) = 0 Then
Task = "select * from tOrder"
Else
strSearch = Right(strSearch, Len(strSearch) - 1)
Task = "select * from tOrder where ((OrderID] in (" & strSearch & "))"
End If
DoCmd.ApplyFilter Task
End Sub
解决方案
strSearch = strSearch & ",'" & Me!LstMatricule.ItemData(varltem) & "'"
很难看到,但基本上我在每个 varItem 周围添加了单引号。您希望结果如下所示:
strSearch = "'52185A', '515674B'"
我个人会这样做:
strSearch = strSearch & IIf(Len(strSearch) = 0, "", ",") & "'" & Me!LstMatricule.ItemData(varltem) & "'"
如果您要添加超过 2-3 个 ID,则计算成本会稍高一些,但比稍后在开头删除起始逗号更干净。
推荐阅读
- docker - 根据 http 请求启动/扩展容器化应用程序
- debian - Dovecot 从 postfix 压缩现有的 maildir 邮件
- kdb - kdb 中的垂直输出
- r - 根据闪亮应用中的 if 条件在同一动态 tabPanel 中导航
- here-api - 批量地理编码器是否已接近使用寿命?
- pytorch - 当训练损失减少时,验证损失增加和准确度保持为零的原因可能是什么?
- kivy - Kivy:RecycleView 未更新
- node.js - 具有数据库访问权限的单元测试 HTTP Post 请求
- php - 如何从 laravel 中的数组中获取多少条记录
- javascript - 打开第二个选项卡级别时,嵌套的 MaterialUI 选项卡会引发错误