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 Database
    
    Sub 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.RefreshDatabaseWindow
    
    End 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>中的项。

属性

文章编号: 239565 - 最后修改: 2013年10月21日 - 修订: 1.0
这篇文章中的信息适用于:
  • Microsoft Access 2000 标准版
关键字:?
kbnosurvey kbarchive kbmt kbbug kberrmsg kbpending KB239565 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 239565
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com