ACCESS 抽出条件でデータ型が一致しません、の対処法

抽出条件でデータ型が一致しません、の対処法

ACCESSでクエリを作成している際、「抽出条件でデータ型が一致しません」と表示されたことはないでしょうか。
このエラーはメッセージの通り、データ型の指定が誤っていることが原因です。

Excelなどでは特に気にすることがないかもしれませんが、ACCESSではデータ型は非常に重要です。

今回は、抽出条件でデータ型が一致しませんと表示された場合の対処法をご紹介します。


こんにちは。
はこにわガジェット (@hakoniwagadget) です。

ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは使いこなすために少しスキルが必要なものの、うまく活用すればExcelよりも業務の効率化が図れます。
この記事ではACCESSの基本的な使い方をご紹介していきます。

抽出条件でデータ型が一致しません、の原因

ACCESSを使っていると以下のようなエラーが出たことはないでしょうか。

主に、クエリを作成してデータシートビューで見ようとした際や、クエリを起動した際に表示されるメッセージです。

「抽出条件でデータ型が一致しません」のエラーが出るのは、そのメッセージの通り、テーブルの該当フィールドに設定されたデータ型と、抽出条件に設定したデータ型が異なっており、抽出ができない場合です。

例えば、

  • テーブルの該当フィールドには日付型データが入力されているのに、抽出条件はテキスト型
  • テーブルの該当フィールドには数値型データが入力されているのに、抽出条件はテキスト型
  • テーブルにはYes/No型データが入力されているのに、抽出条件はテキスト型

などです。

ACCESSでは基本的にデータの抽出を行う際は、抽出に用いるフィールドのデータ型と、抽出条件に設定するデータ型を合わせる必要があります。
以下、詳しくご紹介しましょう。

日付型データに対して、抽出条件はテキスト型

最初は、日付型データに対して、抽出条件をテキスト型で設定してしまった場合です。

サンプルデータを準備しました。
処理日というフィールドは、日付型のデータが入っています。

このフィールドに対して、2021年4月1日以降のデータを抽出したいときに、抽出条件を

と書いてしまうと、実行時に抽出条件でデータ型が一致しません、のエラーが出ます。

これは、何が誤っているかというと日付型のデータの指定方法です。
日付の数値の前後を「”」(ダブルクォーテーション)で囲っていますが、ダブルクォーテーションはデータ型がテキストの場合のみに利用できます。
そのため、処理日という日付型のデータを抽出する条件として、テキスト(文字列)を指定しているので抽出条件でデータ型が一致しない、となるのです。

正しくは、「#」を使って以下のように記載します。

これで抽出が行われるようになります。
データ型によって囲む記号が異なりますので、ご注意ください。

数値型データに対して、抽出条件はテキスト型

次は、数値型のデータに対して、抽出条件をテキスト型で指定するケースです。

上記の例では、小計という数値型のフィールドに対して、

という抽出条件を設定しています。

こちらも、条件を「”」で囲ってしまうとテキスト型になっているので、実行するとエラーが表示されます。
小計フィールドは数値型データですので、抽出条件も数値型にしましょう。

数値型は特に何かで値を囲む必要がないため、正しくは、

と記載することで、結果を得ることが可能です。

Yes/No型データに対して、抽出条件はテキスト型

最後は、Yes/No型データのフィールドに対して、抽出条件はテキスト型を指定してしまうパターンです。

上記の例の「削除」フィールドはYes/No型に設定されています。
Yes/No型のフィールドの抽出条件は「True」「False」で指定します。

一見すると抽出条件を「True」にしているのでよさそうに見えますが、「”」を使ってしまうとテキストとして認識されてしまうので、抽出条件が適切に動作しません。

正しくは

とだけ記述すればよいのです。

これらのように、「抽出条件でデータ型が一致しません」と言われる場合は、クエリの抽出条件が対象のフィールドのデータ型と異なっているケースがほとんどですので注意してみてください。

以上、抽出条件でデータ型が一致しません、の対処法をご紹介しました。


ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。

そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。

ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。

サービス一覧

最後までお読みいただき、ありがとうございました。