ACC2002: 服务器错误 134 错误消息时您尝试升迁数据库

文章翻译 文章翻译
文章编号: 282390 - 查看本文应用于的产品
本文已归档。它按“原样”提供,并且不再更新。
重要提示: 本文包含有关修改注册表的信息。在修改注册表之前,请务必对其进行备份,并确保您了解如何还原注册表发生问题。有关如何备份、 还原,和编辑注册表单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
256986在 Microsoft Windows 注册表的说明
中等: 要求基本的宏、 编码,和互操作技能。

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

展开全部 | 关闭全部

本文内容

症状

当您试图升迁您的数据库时,您可能会收到与以下类似的错误消息:
服务器错误 134: 该变量命名为 @ 表单......已经声明了。变量名必须是唯一一个查询批处理或存储的过程内部的。

服务器错误 170: 行 7: 附近有语法错误)。

原因

如果您的数据库中的查询包含通过前 30 个字符匹配的参数,则会发生此行为。例如对于下列查询将产生错误消息:
   PARAMETERS [123456789012345678901234567890start] DateTime,    [123456789012345678901234567890end] DateTime;
   SELECT item, date
   FROM Table1
   WHERE date Between [123456789012345678901234567890start] And    [123456789012345678901234567890end];
				
此查询包含两个参数来彼此匹配通过前 30 个字符的注释:
  • [123456789012345678901234567890start] DateTime
  • [123456789012345678901234567890end] DateTime

解决方案

若要解决此问题,更改参数名在前 30 个字符不同的方式。例如您的查询包含以下两个参数
  • [123456789012345678901234567890start] DateTime
  • [123456789012345678901234567890end] DateTime
您可以更改参数如下:
  • [] start123456789012345678901234567890日期时间
  • [] end123456789012345678901234567890日期时间
请注意升迁向导接受只有在前 30 的字符,因此所得到的 SQL 查询包含以下参数:
  • (@ start1234567890123456789012345)日期时间
  • (@ end123456789012345678901234567)日期时间

状态

Microsoft 已经确认这是在本文开头列出的 Microsoft 产品中的问题。

更多信息

警告: 如果注册表编辑器使用不当可能会导致严重的问题,可能会要求您重新安装操作系统。Microsoft 不能保证可以解决问题所产生的错误地使用注册表编辑器。使用注册表编辑器需要您自担风险。

重现问题的步骤

  1. 启动注册表编辑器 (Regedit.exe)。
  2. 打开以下注册表项,请执行以下操作:
    HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Access\Wizards\Preferences\Upsizer\Quiet
  3. 此注册表项的值设置为 ,然后关闭注册表编辑器。
  4. 启动 Microsoft Access,然后创建一个新的数据库 Db1.mdb。
  5. 在 $ Db1.mdb 中创建一个新的表:
       Table: Table1
       ----------------------
       Field Name: ID
       Data Type:  Text
       PrimaryKey: Yes
    
       Field Name: Date
       Data Type:  Date/Time
    
       Field Name: Item
       Data Type:  Text
    					
  6. 在数据库窗口中单击 查询,,然后双击 创建新查询设计视图中
  7. 单击 关闭,然后单击 查询设计 工具栏上的 SQL
  8. 在 SQL 编辑器中输入以下查询:
       PARAMETERS [123456789012345678901234567890start] DateTime,    [123456789012345678901234567890end] DateTime;
       SELECT item, date
       FROM Table1
       WHERE date Between [123456789012345678901234567890start] And    [123456789012345678901234567890end];
    					
  9. 将查询另存为 qryLongParameters,然后关闭 SQL 编辑器中。
  10. 工具 菜单上指向 数据库实用工具,然后单击 升迁向导
  11. 升迁您的数据库,以 SQL Server。

    您收到类似于本文"症状"一节中列出的错误信息。

参考

有关升迁您的数据库在 帮助 菜单上单击 Microsoft Access 帮助,请在 Office 助手或应答向导中键入 升迁,然后单击 搜索 以查看返回的主题。

属性

文章编号: 282390 - 最后修改: 2013年10月21日 - 修订: 4.2
这篇文章中的信息适用于:
  • Microsoft Access 2002 标准版
关键字:?
kbnosurvey kbarchive kbmt kbbug kbnofix KB282390 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 282390
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