MS Access查询文本字段与文本条件匹配时出现数据类型不匹配错误
MS Access存储查询派生列数据类型匹配错误问题
我在MS Access中创建了存储查询stored_query,其中派生列derived_column(实际对应完整查询里的project_desc)通过嵌套Replace函数从短文本字段[some_table].[some_short_text_column]生成,具体SQL逻辑如下:
SELECT [other_columns], Replace(Replace([some_table].[some_short_text_column], "search1", "replacement1"), "search2", "replacement2") AS derived_column, [more_columns] FROM (some_table_join_action)
原短文本字段是数据库中255字符的short text类型,生成的derived_column值均为文本类型(例如Administration、Salaries),且通过代码确认其数据类型为DataTypeEnum.dbText。
但执行以下查询时,弹出错误提示:Data type mismatch in criteria expression
SELECT * FROM [stored_query] WHERE [derived_column] = "123456"
我尝试了多种修改方式,均未解决问题:
- 移除字段名的方括号
- 移除条件值的引号
- 使用#格式的日期作为条件(尝试测试)
- 用
Replace函数包裹条件,例如:
SELECT * FROM [stored_query] WHERE [derived_column] = Replace("123456", "garbage_in", "garbage_out")
此外,在存储查询的数据表视图中使用该列的下拉过滤器时,数据表会被清空,过滤选项消失,且“清除[列名]过滤器”选项呈灰色不可用状态。
请问这是我的操作疏漏,还是Access本身的特性问题?
内容的提问来源于stack exchange,提问作者Aufgeschissener Kunde
相关产品推荐
相关产品推荐

