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 では、数値記号 (#)、ピリオド (.)、引用符 (") などの特殊文字をデータベース オブジェクト名またはデータベース フィールド名に使用することは制限されません。 ただし、特殊文字を使用すると、予期しないエラーが発生する可能性があります。 そのため、Access データベースまたはデータベース プロジェクトでは、データベース オブジェクト名に特殊文字を使用しないことをお勧めします。 この記事では、これらの特殊文字に関する既知の問題が原因で回避する必要がある特殊文字について説明します。

Access または Microsoft Visual Basic アプリケーションや Active Server Pages (ASP) アプリケーションなどの他のアプリケーションで作業する場合は、次の特殊文字を避ける必要があります。

名前 記号
スペース
アポストロフィ '
二重引用符 "
アポストロフィ '
アット マーク @
アクサン グラーブ `
数値記号 #
パーセント %
より大記号 >
より小記号 <
感嘆符 !
Period .
角かっこ [ ]
アスタリスク *
ドル記号 $
セミコロン ;
コロン :
疑問符 ?
キャレット ^
中かっこ { }
正符号 +
ハイフン -
等号 =
チルダ ~
円記号 |

Access の命名規則

関数の名前、変数の名前、フィールドの名前、テーブルやフォームなどのデータベース オブジェクトの名前の中には、ピリオド (.)、感嘆符 (!)、アクサン グラーブ (')、角かっこ ([])、スペース ()、または引用符 (") を使用しないことをお勧めします。

Access で次の特殊文字を使用すると、既知の問題が発生します。 次のシナリオでは、特殊文字を使用してはならない場合について説明します。

  • データベース オブジェクトを他のファイル形式 (Microsoft Excel ファイル形式、HTML ファイル形式、テキスト ファイル形式など) にエクスポートする場合は、データベース オブジェクト名またはフィールド名に数値記号 (#) またはピリオド (.) を使用しないでください。
  • Access でハイパーリンクを使用すると、ハイパーリンクは変更されたメモ フィールドとして保存され、数字記号 (#) は区切り記号として格納されます。 そのため、数値記号は Access の予約語と見なされます。 ハイパーリンクを作成するときは、数値記号を使用しないでください。
  • Access にテキスト ファイルをインポートし、そのテキスト ファイルにタブまたはその他の特殊文字が含まれている場合、特殊文字が変換され、特殊文字がボックスとして表示されます。 そのため、インポートされたテーブルを使用しようとすると、予期しないエラーが発生します。 Access にインポートするときは、ソース テーブル内の特殊文字を使用しないでください。
  • ASP フォームを使用して Access データベースのデータを追加または変更する場合、フォーム内でパーセント記号 (%)、正符号 (+)、キャレット (^) を使用しないでください。 これらの特殊文字は、Access データベースで正しく変換されない場合があります。
  • 全角言語を使用する場合は、データベース オブジェクトの名前またはコントロールの名前に全角文字を使用しないでください。 たとえば、全角言語を使用する場合は、全角かっこを使用しないでください。オブジェクトまたはコントロールのイベント プロシージャにコードがある場合、コンパイル エラーが発生する可能性があります。