【问题标题】:Access query not working?访问查询不起作用?
【发布时间】:2009-09-14 12:39:17
【问题描述】:

我记得以前使用过类似这样的查询。但现在它给了我一个编译错误。

我试图只获取第二个字段的前 3 个字符。

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

我做错了什么?

【问题讨论】:

  • field2 是什么数据类型,当字段中的字符少于三个时,LEFT 会抛出错误吗?
  • 它的文本类型虽然有数字
  • 编译错误到底是什么意思?
  • 编译错误。在查询表达式中 Left([field2], 3)
  • @Murph:LEFT 是一个 Jet-SQL 函数(用于 Access)。

标签: ms-access


【解决方案1】:

查看此链接:

http://www.techonthenet.com/access/questions/compile_error.php

它说如果引用损坏,使用 Left() 时会出现编译错误。它还说明了如何解决它。

【讨论】:

  • 嗯,但我似乎没有遗漏任何参考资料
【解决方案2】:

您的 SQL 语句没有问题。字段名称的括号,语句末尾的分号,field2 中少于 3 个字符 --- 这些都不是问题。

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

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

【讨论】:

  • 旧数据库有问题。它适用于新数据库。
【解决方案3】:

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

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

【讨论】:

    【解决方案4】:

    尝试将字段名称放在方括号中

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

    【讨论】:

    • 同样它仍然给出编译错误。在查询表达式 Left([field2], 3) 中我不明白的是它之前工作正常
    • 如果之前可以正常工作,请检查您的数据库连接和表结构以确保一切都完好无损。
    【解决方案5】:

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

    【讨论】:

    • 如果表格/列不正确,他们会得到一个不同的错误,例如'没有为一个或多个必需参数提供值。'我的钱花在了损坏的参考文献上。
    猜你喜欢
    • 1970-01-01
    • 2014-12-12
    • 1970-01-01
    • 1970-01-01
    • 2020-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多