2009-09-14 52 views
0

我记得使用这样的查询之前为我工作。但现在它给了我一个编译错误。访问查询不起作用?

我想只得到第二个字段的前3个字符。

select field1, left(field2, 3) from table1; 

我在做什么错?

+1

什么数据类型是field2,并且当字段中少于三个字符时,LEFT会引发错误? – 2009-09-14 12:44:05

+0

它的文本类型虽然它有数字 – tksy 2009-09-14 12:52:32

+0

编译错误说的是什么? – MusiGenesis 2009-09-14 12:55:10

回答

0

您的SQL语句没有任何问题。在字段名称周围的括号内,在语句结尾的分号,field2以内的字符少于3个---这些在这里都不是问题。

您的数据库或您的机器和/或其Access安装有问题。通常我会怀疑引用问题,因为你的错误是一个典型的症状。但是,在评论中,您表示引用是可以的。

创建一个新的空数据库并将table1导入它。在新数据库中尝试您的查询。如果它在那里工作,你知道这个问题仅限于原始数据库。如果查询在新数据库中不起作用,请将数据库复制到安装了Access的另一台计算机并在此处尝试。如果它在另一台机器上运行,但不是你的机器,...我希望有一些方法可以在不重新安装Office的情况下修复原始机器。

+0

旧数据库中的东西是错误的。它在一个新的数据库中工作。 – tksy 2009-09-15 08:05:27

0

尝试把字段名在方括号

select field1, Left([field2], 3) from table1; 
+0

它仍然给编译错误。在查询表达式左([field2],3) 我不明白的是它早期工作正常 – tksy 2009-09-14 12:53:52

+0

如果它在以前工作,检查您的数据库连接和表结构,以确保一切都保持完好。 – 2009-09-14 12:57:42

0

我看不出有什么不对您的SQL,只要你的表名和列名是否正确。根据您的SQL编辑器或代码,您可能需要从语句中删除分号。

+1

如果表格/列的不正确,他们会得到不同的错误,例如'没有给出一个或多个必需参数的值。'我的钱在破碎的参考文献上。 – onedaywhen 2009-09-14 14:52:54

1

如果您在键盘上按Ctrl-G并在即时窗口中输入“?Left(”123Text“,3)”并在按下ENTER后会发生什么?如果您得到相同的编译错误,那么您的数据库中有缺少的引用或编译错误。

要解决此问题,在VBE窗口中,转至DEBUG菜单并选择第一个选项COMPILE [project name]。您可能会收到编译错误的通知,它会引导您解决您需要解决的问题。