在 Access 数据库中使用特殊字符时出现错误消息

本文列出了在所有 Access 版本中处理数据库对象名称或字段名称时应避免使用的特殊字符。

原始 KB 编号: 826763

注意

本文适用于 Microsoft Access 数据库 (.mdb) 文件或 Microsoft Access 数据库 (.accdb) 文件,以及 Microsoft Access 项目 (.adp) 文件。

症状

在 Access 中使用特殊字符时,会遇到以下其中一个问题。

问题 1

在表字段的名称中使用下列特殊字符之一:

  • 重音符 (`)
  • 感叹号 (!)
  • 句点 (.)
  • 方括号 ([])
  • 先导空格
  • 不可打印的字符

在这种情况下,你会收到以下错误消息:

字段名称无效。
请确保名称不包含句点 (.)、感叹号 (!)、方括号 ([])、先导空格或不可打印的字符(如回车)。 如果名称是从另一个应用程序粘贴的,请尝试按 ESC 并再次键入名称。

如果在表名称中使用这些特殊字符,则会收到以下错误消息:

输入的对象名称“TableName”不符合 Microsoft Office Access 对象命名规则。

问题 2

创建了查询表达式。 查询表达式的字段中包含特殊字符。 取决于具体的特殊字符,你可能会收到以下错误消息:

  • 如果字段名称包含空格字符、问号 (?) 或 @ 符号,则会收到以下错误消息:

    输入的表达式包含无效语法。
    你可能输入了一个没有运算符的操作数

  • 如果字段名称包含引号 (") 或撇号 ('),则会收到以下错误消息:

    输入的表达式具有无效字符串。
    字符串最多可以有 2048 个字符,包括左引号和右引号。

  • 如果字段名称包含数字符号 (#),则会收到以下错误消息:

    输入的表达式的日期值无效。

  • 如果字段名称包含百分号 (%)、波形符 (~)、分号 (;) 或方括号 ([]),则会收到以下错误消息:

    输入的表达式包含无效语法。
    例如,缺少运算符或操作数,输入了无效字符或逗号,或者输入的文本未用引号 (") 括起。

  • 如果字段名称包含大括号 ({}),则会收到以下错误消息:

    查询表达式“ObjectName”中的 GUID 格式不正确

  • 如果字段名称包含方括号 ([]) 或圆括号 (()),则会收到以下错误消息:

    输入的表达式缺少右圆括号、方括号 (]) 或垂直条 (|)。

问题 3

你有一个包含查询表达式的查询。 查询表达式中的字段包含特殊字符。 运行查询时,系统提示输入参数值。 通常,使用以下特殊字符时会出现此问题:

  • 大于符号 (>)
  • 大于符号 (<)
  • 句点 (.)
  • 星号 (*)
  • 冒号 (:)
  • 脱字号 (^)
  • 加号 (+)
  • 反斜杠 (\)
  • 等号 (=)
  • 与号 (&)
  • 正斜杠 (/)

解决方法

若要解决此问题,请不要使用特殊字符。 如果必须在查询表达式中使用特殊字符,请用方括号 ([]) 将特殊字符括起来。 例如,如果要使用大于的符号 (>) ,请使用 [>]。

更多信息

Microsoft Access 并不限制在数据库对象名称或数据库字段名称中使用数字符号 (#)、句点 (.) 或引号 (") 等特殊字符。 但是,如果使用特殊字符,可能会遇到意外错误。 因此,Microsoft 建议不要在 Access 数据库或数据库项目中的数据库对象名称中使用特殊字符。 本文介绍了必须避免使用的特殊字符,因为这些特殊字符存在已知问题。

使用 Access 或其他应用程序(例如 Microsoft Visual Basic 应用程序或 Active Server Pages (ASP) 应用程序)时,必须避免使用以下特殊字符:

名称 符号
空格键
撇号 '
引号 "
撇号 '
@ 符号 @
重音符 `
数字符号 #
Percent %
大于号 >
小于号 <
感叹号 !
Period .
方括号 [ ]
星号 *
美元符号 $
分号 ;
冒号 :
问号 ?
脱字号 ^
大括号 { }
加号 +
连字符 -
等号 =
波形符 ~
反斜杠 |

Access 命名约定

Microsoft 建议不要在函数名称、变量名称、字段名称或数据库对象(如表和窗体)的名称中使用句点 (.)、感叹号 (!)、重音符 (`)、方括号 ([ ])、空格 ( ) 或引号 (")。

如果在 Access 中使用以下特殊字符,则会出现已知问题。 以下情况描述了何时不得使用特殊字符:

  • 将数据库对象导出为其他文件格式(例如 Microsoft Excel 文件格式、HTML 文件格式或文本文件格式)时,不要在数据库对象名称或字段名称中使用数字符号 (#) 或句点 (.)。
  • 在 Access 中使用超链接时,超链接会存储为修改后的“备注”字段,并以数字符号 (#) 作为分隔符。 因此,数字符号在 Access 中被视为保留字。 创建超链接时不要使用数字符号。
  • 将文本文件导入 Access 并且该文本文件包含制表符或其他特殊字符时,将转换特殊字符,然后这些特殊字符会以方框形式显示。 因此,尝试使用导入的表时,会收到意外的错误。 导入 Access 时,不得在源表中使用特殊字符。
  • 使用 ASP 表单在 Access 数据库中添加或修改数据时,不得在表单中使用百分号 (%)、加号 (+) 或脱字号 (^)。 这些特殊字符可能无法在 Access 数据库中正确转换。
  • 使用的语言采用全角字符时,不要在数据库对象的名称或控件名称中使用全角字符。 例如,使用的语言采用全角字符时不得使用全角圆括号。如果对象或控件的事件过程中存在代码,可能会导致编译错误。