【发布时间】:2019-12-18 23:07:39
【问题描述】:
我的 MS Access 数据库中有一个名为 COA_Map 的表。我还有一个带有多选列表框的表单。选择值后,vba 将它们转换为字符串并使用该字符串更新文本框。我想在查询中使用文本框字符串作为变量。
这是我的查询:SELECT * FROM COA_Map WHERE (COA_Map.ASL IN ( [Forms]![Multi-Select Search]![TextASL].Text ) );
这将返回空结果。当我将文本框值复制并粘贴到这样的查询中时:
SELECT * FROM COA_Map WHERE (COA_Map.ASL IN ( 2.1,2.3,2.4 ) );
我得到了预期的结果。我尝试了[Forms]![Multi-Select Search]![TextASL].Value 和[Forms]![Multi-Select Search]![TextASL],但出现错误“此表达式输入错误,或者太复杂”
我也尝试使用“OR”子句代替“IN”。我更改了 VBA 以返回此字符串:
构建这个查询:SELECT * FROM COA_Map WHERE COA_Map.ASL = [Forms]![Multi-Select Search]![TextASL] ;
这将返回相同的空结果。当我将文本框值粘贴到这样的查询中时:SELECT * FROM COA_Map WHERE COA_Map.ASL = 2.1 OR COA_Map.ASL = 2.2 OR COA_Map.ASL = 2.3 ;
,我得到了预期的结果。
当在任一版本的查询中只选择一个值时,我会得到预期的结果。
我无法弄清楚为什么从选择了多个值的文本框中读取时查询不会返回结果。
【问题讨论】: