VBA Access中SQL查询引用特殊命名表报错问题求助
问题解决:Access SQL中数字开头表名的语法问题
你猜的没错,这确实是命名规范与SQL语法的问题——在Access的Jet SQL语法里,以数字开头的表名(或字段名)属于「非常规标识符」,必须用方括号[]包裹才能被正确识别。
为什么Stuff能正常运行?
Stuff是以字母开头的表名,符合Access默认的标识符命名规则(首字符为字母/下划线,后续可包含字母、数字、下划线),所以不需要额外包裹就能被SQL解析器正确识别。
修正后的查询语句
你完全可以继续使用1_1_xlsx作为表名,只要给它加上方括号即可:
INSERT INTO TempTable (ClientName) SELECT DISTINCT [1_1_xlsx].ClientName FROM [1_1_xlsx];
额外提示
除了数字开头的情况,以下场景的标识符也需要用方括号包裹:
- 表名/字段名包含空格(比如
Client Info) - 包含特殊字符(比如
Client-Data、#Sales2024) - 与Access保留字重名(比如
Date、Table、Order)
内容的提问来源于stack exchange,提问作者adam
相关产品推荐
相关产品推荐

