ACCESS 抽出条件でデータ型が一致しません、の対処法
ACCESSでクエリを作成している際、「抽出条件でデータ型が一致しません」と表示されたことはないでしょうか。
このエラーはメッセージの通り、データ型の指定が誤っていることが原因です。
Excelなどでは特に気にすることがないかもしれませんが、ACCESSではデータ型は非常に重要です。
今回は、抽出条件でデータ型が一致しませんと表示された場合の対処法をご紹介します。
こんにちは。
はこにわガジェット (@hakoniwagadget) です。
ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは使いこなすために少しスキルが必要なものの、うまく活用すればExcelよりも業務の効率化が図れます。
この記事ではACCESSの基本的な使い方をご紹介していきます。
抽出条件でデータ型が一致しません、の原因
ACCESSを使っていると以下のようなエラーが出たことはないでしょうか。
主に、クエリを作成してデータシートビューで見ようとした際や、クエリを起動した際に表示されるメッセージです。
「抽出条件でデータ型が一致しません」のエラーが出るのは、そのメッセージの通り、テーブルの該当フィールドに設定されたデータ型と、抽出条件に設定したデータ型が異なっており、抽出ができない場合です。
例えば、
- テーブルの該当フィールドには日付型データが入力されているのに、抽出条件はテキスト型
- テーブルの該当フィールドには数値型データが入力されているのに、抽出条件はテキスト型
- テーブルにはYes/No型データが入力されているのに、抽出条件はテキスト型
などです。
ACCESSでは基本的にデータの抽出を行う際は、抽出に用いるフィールドのデータ型と、抽出条件に設定するデータ型を合わせる必要があります。
以下、詳しくご紹介しましょう。
日付型データに対して、抽出条件はテキスト型
最初は、日付型データに対して、抽出条件をテキスト型で設定してしまった場合です。
サンプルデータを準備しました。
処理日というフィールドは、日付型のデータが入っています。
このフィールドに対して、2021年4月1日以降のデータを抽出したいときに、抽出条件を
>"2021/04/01"
と書いてしまうと、実行時に抽出条件でデータ型が一致しません、のエラーが出ます。
これは、何が誤っているかというと日付型のデータの指定方法です。
日付の数値の前後を「”」(ダブルクォーテーション)で囲っていますが、ダブルクォーテーションはデータ型がテキストの場合のみに利用できます。
そのため、処理日という日付型のデータを抽出する条件として、テキスト(文字列)を指定しているので抽出条件でデータ型が一致しない、となるのです。
正しくは、「#」を使って以下のように記載します。
>#2021/04/01#
これで抽出が行われるようになります。
データ型によって囲む記号が異なりますので、ご注意ください。
数値型データに対して、抽出条件はテキスト型
次は、数値型のデータに対して、抽出条件をテキスト型で指定するケースです。
上記の例では、小計という数値型のフィールドに対して、
>"1000"
という抽出条件を設定しています。
こちらも、条件を「”」で囲ってしまうとテキスト型になっているので、実行するとエラーが表示されます。
小計フィールドは数値型データですので、抽出条件も数値型にしましょう。
数値型は特に何かで値を囲む必要がないため、正しくは、
>1000
と記載することで、結果を得ることが可能です。
Yes/No型データに対して、抽出条件はテキスト型
最後は、Yes/No型データのフィールドに対して、抽出条件はテキスト型を指定してしまうパターンです。
上記の例の「削除」フィールドはYes/No型に設定されています。
Yes/No型のフィールドの抽出条件は「True」「False」で指定します。
一見すると抽出条件を「True」にしているのでよさそうに見えますが、「”」を使ってしまうとテキストとして認識されてしまうので、抽出条件が適切に動作しません。
正しくは
True
とだけ記述すればよいのです。
これらのように、「抽出条件でデータ型が一致しません」と言われる場合は、クエリの抽出条件が対象のフィールドのデータ型と異なっているケースがほとんどですので注意してみてください。
以上、抽出条件でデータ型が一致しません、の対処法をご紹介しました。
ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。
そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。
ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。
最後までお読みいただき、ありがとうございました。