我记得我之前使用过像这样的查询。但现在它给我一个编译错误。
我试图只获得第二个字段的前3个字符。
select field1, left(field2, 3) from table1;
我做错了什么?
答案 0 :(得分:3)
请看这个链接:
http://www.techonthenet.com/access/questions/compile_error.php
它表示如果你的引用被破坏,你在使用Left()时会遇到编译错误。它还说明了如何修复它。
答案 1 :(得分:1)
如果您按下键盘上的Ctrl-G并在即时窗口中键入“?Left(”123Text“,3)”并按Enter键,Access中会发生什么?如果您得到相同的编译错误,那么您的数据库中缺少引用或编译错误。
要解决此问题,在VBE窗口中,转到DEBUG菜单并选择第一个选项COMPILE [项目名称]。您可能会收到编译错误的通知,它应该指导您解决需要修复的问题。
答案 2 :(得分:0)
尝试将字段名称放在方括号中
select field1, Left([field2], 3) from table1;
答案 3 :(得分:0)
只要您的表名和列名正确,我就没有看到您的SQL有任何问题。根据您的SQL编辑器或代码,您可能需要从语句中删除分号。
答案 4 :(得分:0)
您的SQL语句没有任何问题。字段名称周围的括号,语句末尾的分号,field2
中少于3个字符---这些都不是问题。
您的数据库或计算机和/或其Access安装有问题。通常我会怀疑引用问题,因为您的错误是一个典型的症状。但是,在评论中,您表示引用正常。
创建一个新的空数据库并将table1
导入其中。在新数据库中尝试查询。如果它在那里工作,你知道问题仅限于原始数据库。如果查询在新数据库中不起作用,请将数据库复制到另一台安装了Access的计算机并在那里进行尝试。如果它适用于另一台机器,但不适用于你的机器......我希望有一些方法可以在不重新安装Office的情况下修复原始机器。