我记得使用这样的查询之前为我工作。但现在它给了我一个编译错误。访问查询不起作用?
我想只得到第二个字段的前3个字符。
select field1, left(field2, 3) from table1;
我在做什么错?
我记得使用这样的查询之前为我工作。但现在它给了我一个编译错误。访问查询不起作用?
我想只得到第二个字段的前3个字符。
select field1, left(field2, 3) from table1;
我在做什么错?
您的SQL语句没有任何问题。在字段名称周围的括号内,在语句结尾的分号,field2
以内的字符少于3个---这些在这里都不是问题。
您的数据库或您的机器和/或其Access安装有问题。通常我会怀疑引用问题,因为你的错误是一个典型的症状。但是,在评论中,您表示引用是可以的。
创建一个新的空数据库并将table1
导入它。在新数据库中尝试您的查询。如果它在那里工作,你知道这个问题仅限于原始数据库。如果查询在新数据库中不起作用,请将数据库复制到安装了Access的另一台计算机并在此处尝试。如果它在另一台机器上运行,但不是你的机器,...我希望有一些方法可以在不重新安装Office的情况下修复原始机器。
旧数据库中的东西是错误的。它在一个新的数据库中工作。 – tksy 2009-09-15 08:05:27
尝试把字段名在方括号
select field1, Left([field2], 3) from table1;
它仍然给编译错误。在查询表达式左([field2],3) 我不明白的是它早期工作正常 – tksy 2009-09-14 12:53:52
如果它在以前工作,检查您的数据库连接和表结构,以确保一切都保持完好。 – 2009-09-14 12:57:42
我看不出有什么不对您的SQL,只要你的表名和列名是否正确。根据您的SQL编辑器或代码,您可能需要从语句中删除分号。
如果表格/列的不正确,他们会得到不同的错误,例如'没有给出一个或多个必需参数的值。'我的钱在破碎的参考文献上。 – onedaywhen 2009-09-14 14:52:54
请参阅此链接:
http://www.techonthenet.com/access/questions/compile_error.php
它说,你可以用离开的时候得到一个编译错误(),如果你有一个破碎的参考。它还说如何解决它。
嗯,但我似乎没有丢失任何引用 – tksy 2009-09-14 13:46:52
如果您在键盘上按Ctrl-G并在即时窗口中输入“?Left(”123Text“,3)”并在按下ENTER后会发生什么?如果您得到相同的编译错误,那么您的数据库中有缺少的引用或编译错误。
要解决此问题,在VBE窗口中,转至DEBUG菜单并选择第一个选项COMPILE [project name]。您可能会收到编译错误的通知,它会引导您解决您需要解决的问题。
什么数据类型是field2,并且当字段中少于三个字符时,LEFT会引发错误? – 2009-09-14 12:44:05
它的文本类型虽然它有数字 – tksy 2009-09-14 12:52:32
编译错误说的是什么? – MusiGenesis 2009-09-14 12:55:10