Access データベースで特殊文字を使用するとエラーメッセージが表示される

注意

Office 365 用リソース は、 エンタープライズ向け Microsoft 365 アプリに名前変更されています。 この変更の詳細については、 このブログの投稿を参照してください。

元の KB 番号:  826763

注意

この記事は、Microsoft Office 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) アプリケーションなどの他のアプリケーションを使用して作業する場合は、次の特殊文字を使用しないようにする必要があります。

スペース
アポストロフィ '
クォーテーションマーク "
アポストロフィ '
アットマーク @
アクサングラーブ `
番号記号 #
パーセント %
不等号 (より大きい) >
不等号 (より小) <
感嘆符 !
ピリオド .
囲ん [ ]
アスタリスク *
ドル記号 $
区切る ;
コロン :
クエスチョンマーク ?
脱字 ^
かっこ { }
正符号 +
ハイフン -
等号 =
チルダ ~
) |

アクセスの命名規則

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

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

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