ACC2000: 查询表达式 511 字符处截断

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 239565
本文已归档。它按“原样”提供,并且不再更新。
中等: 要求基本的宏、 编码,和互操作技能。

本文只适用于 Microsoft Access 数据库 (.mdb)。

症状
在 Microsoft Access 2000 查询中,当您试图编辑在查询设计网格中,该查询时您可能会收到以下错误消息:
您输入该表达式缺少右括号、 方括号 (]) 或垂直条 (|)。
您然后注意到一个表达式或一个 critera 已被截断。

在保存查询,您也可能会看到以下错误消息:
丢失),] 或在查询表达式 '<expression>中的项。
原因
超过 511 字符长度为一个表达式或查询中的条件。虽然 Access 2000 帮助状态,在查询中的单元格设计网格都有 1024年个字符的限制,在 Access 2000 查询设计界面实际上有 511 个字符的限制。在早期版本的 Microsoft Access 不会发生此问题。
解决方案
若要解决此问题,获得 Microsoft Office 2000 服务发布 1/1a (SR-1/sr-1a)。

若要获取 SR-1/sr-1a,请单击下面文章编号,以查看 Microsoft 知识库中相应的文章:
245025OFF2000: 如何获取和安装 Microsoft Office 2000 服务发布 1/1a (SR-1/sr-1a)
若要临时解决此问题,不要试图编辑一个现有的查询,在设计视图中的表达式,如果您的 SQL 语句中有多个 511 个字符。
如果要使用超过 511 个字符的表达式创建查询,您可以使用 Visual Basic 中 CreateQueryDef 方法为应用程序的过程。下面的示例阐释了如何执行此操作与在"步骤来重现问题"一节中的示例:
  1. 打开示例数据库 Northwind.mdb。
  2. 对象,下单击 模块,然后单击 新建
  3. 在新模块中键入以下代码:
    Option Compare DatabaseSub CreateLongQuery()   Dim db1 As DAO.Database   Dim qdfNew As DAO.QueryDef   Set db1 = CurrentDb   With db1      Set qdfNew = .CreateQueryDef("LongExpQuery", _         "SELECT Employees.EmployeeID, [Employees]![Lastname] & " _         & "[Employees]![Lastname] & [Employees]![Lastname] & " _         & "[Employees]![Lastname] & [Employees]![Lastname] & " _         & "[Employees]![Lastname] & [Employees]![Lastname] & " _         & "[Employees]![Lastname] & [Employees]![Lastname] & " _         & "[Employees]![Lastname] & [Employees]![Lastname] & " _         & "[Employees]![Lastname] & [Employees]![Lastname] & " _         & "[Employees]![Lastname] & [Employees]![Lastname] & " _         & "[Employees]![Lastname] & [Employees]![Lastname] & " _         & "[Employees]![Lastname] & [Employees]![Lastname] & " _         & "[Employees]![Lastname] & [Employees]![Lastname] & " _         & "[Employees]![Lastname] & [Employees]![Lastname] & " _         & "[Employees]![Lastname] AS Expr1 FROM Employees;")      .Close   End With   Application.RefreshDatabaseWindowEnd Sub					
  4. 在立即窗口中键入下面的行,然后按 ENTER 键:
    CreateLongQuery					
在 Access 中,将出现一个新的查询称为 LongExpQuery。

可以运行在此示例中创建查询,但如果有多个 511 个字符,不能通过该界面编辑其表达式。若要将需要超过 511 个字符的表达式的更改与所做更改,您需要再一次使用 CreateLongQuery 过程中创建一个新查询。
状态
Microsoft 已经确认这是在本文开头列出的 Microsoft 产品中的问题。在 Microsoft Office 2000 SR-1/sr-1a,此问题已得到纠正。
更多信息
如果已导入查询,或从早期版本的 Access 转换,它将运行,但您不能在设计视图中编辑它。

重现问题的步骤

  1. 打开示例数据库 Northwind.mdb。
  2. 创建一个新的查询并添加下列字段:
       Field: EmployeeID   Table: Employees					
  3. 下一列字段行中键入以下表达式:
       [Employees]![Lastname] & [Employees]![Lastname] &    [Employees]![Lastname] & [Employees]![Lastname] &    [Employees]![Lastname] & [Employees]![Lastname] &    [Employees]![Lastname] & [Employees]![Lastname] &    [Employees]![Lastname] & [Employees]![Lastname] &    [Employees]![Lastname] & [Employees]![Lastname] &    [Employees]![Lastname] & [Employees]![Lastname] &    [Employees]![Lastname] & [Employees]![Lastname] &    [Employees]![Lastname] & [Employees]![Lastname] &    [Employees]![Lastname] & [Employees]![Lastname] &    [Employees]![Lastname] & [Employees]![Lastname] &    [Employees]![Lastname] & [Employees]![Lastname]					
  4. 查询 菜单上单击 $ 运行

    请注意您将收到以下错误:
    丢失),] 或在查询表达式 '<expression>中的项。
pra 切掉像是被剪切掉了一部分

属性

文章 ID:239565 - 上次审阅时间:10/21/2013 23:53:33 - 修订版本: 1.0

Microsoft Access 2000 标准版

  • kbnosurvey kbarchive kbmt kbbug kberrmsg kbpending KB239565 KbMtzh
反馈