Access(アクセス)で追加クエリを実行したとき、「追加クエリですべてのレコードを追加できません」というエラーが出て困った経験はありませんか?
このメッセージの中でも特に多いのが「型変換エラー」です。
この記事では、型変換エラーが発生する原因と、それぞれの具体的な対処法を解説します。
エラーメッセージの全文
追加クエリを実行すると、以下のようなダイアログが表示されます(Access 2016以降共通)。
追加クエリですべてのレコードを追加できません。
型変換エラーのため、〇個のフィールドをNullに設定しました。
〇件のレコードでキー違反、〇件のレコードでロック違反、
〇件のレコードで入力規則違反が発生したため、レコードを追加できませんでした。
このダイアログには4種類のエラーが表示されますが、本記事では「型変換エラー」に絞って解説します。
[はい] を押すと何が起きるか
型変換エラーが発生したフィールドは Null(空白) として追加されます(Microsoft公式サポートより)。
データが欠落してしまうため、Null のまま追加されて困る場合は [いいえ] を選んでデザインビューで修正してください。
型変換エラーとは
型変換エラーは、追加元フィールドと追加先フィールドのデータ型が一致していないときに発生します。
Microsoft公式サポートでは以下のように説明されています(Common errors when you run an append queryより)。
Type conversion failures — You may be trying to append data of one type into a field of another type. For example, appending text into a field whose data type is set to Number will cause the error to appear.
(追加元のデータ型と追加先フィールドの型が異なる場合に発生する。たとえば数値型のフィールドにテキストを追加しようとするとこのエラーが表示される)
型変換エラーの主な原因
原因1:データ型の不一致(最も多い原因)
追加元フィールドと追加先フィールドのデータ型が異なっています。
よくあるデータ型のミスマッチ例を以下にまとめます。
| 追加元のデータ | 追加先フィールドの型 | 結果 |
|---|---|---|
| テキスト(「不明」など) | 数値型 | 型変換エラー |
| テキスト(「2024/01/01」) | 日付/時刻型(US形式以外) | 型変換エラー |
| 数値(123) | テキスト型 | 通常は変換成功 |
| 空白(Null) | Yes/No型 | 型変換エラー |
対処法:
- 追加先テーブルをデザインビューで開く
- 各フィールドの「データ型」を確認する
- 追加元クエリの対応するフィールドのデータ型と一致しているか確認する
- 一致していない場合はどちらかのデータ型を修正する
原因2:数値フィールドに文字列が混入している
数値型フィールドに「Unknown」「N/A」「―(ダッシュ)」などの文字列が入っているケースです。
Excelからインポートしたデータや、手入力のデータに多く見られます。
対処法:
- いったんすべてのフィールドを「テキスト型」のテーブルにインポートする
- その後、
Val()関数やCDbl()関数で数値に変換してから追加クエリを実行する
変換関数の使用例:
Val([数値フィールド]) ' テキストを数値に変換(変換できない文字は0)
CDbl([数値フィールド]) ' Double型に変換
CInt([数値フィールド]) ' Integer型に変換
CDate([日付フィールド]) ' 日付型に変換
CStr([数値フィールド]) ' 数値をテキスト型に変換
原因3:日付のフォーマットが合っていない
Access は日付を US 形式(月/日/年)で処理します。
「2024/01/15」のような年/月/日形式や「15-Jan-2024」のような形式は、そのままでは正常に取り込めないことがあります。
対処法:
- テキスト型フィールドにいったん受け取り、
DateSerial()関数やLeft()/Mid()/Right()で日付を再構築する
DateSerial 使用例(「年/月/日」形式を日付型に変換する場合):
DateSerial(Left([日付テキスト],4), Mid([日付テキスト],6,2), Right([日付テキスト],2))
原因4:フィールドサイズの超過
数値型フィールドの「フィールドサイズ」(整数型・長整数型・単精度型など)よりも大きな数値を追加しようとしているケースです。
対処法:
- 追加先テーブルのデザインビューでフィールドサイズを確認する
- 追加元データの最大値が収まるサイズに変更する(例:整数型 → 長整数型)
原因5:空文字列の許可設定が異なる
テキスト型フィールドの「空文字列の許可」設定が追加元と追加先で異なる場合にも型変換エラーが発生することがあります。
対処法:
- 追加先テーブルをデザインビューで開く
- 対象フィールドを選択し、下段のプロパティで「空文字列の許可」を確認する
- 追加元テーブルと設定を合わせる(どちらも「はい」にするか「いいえ」にする)
原因を特定する手順
型変換エラーの原因が複数ある場合は、以下の手順で切り分けると効率的です。
- エラーテーブルを確認する
ダイアログで [はい] をクリックして追加を実行すると、追加エラーという名前のテーブルが自動作成されることがあります。
このテーブルを開くと、エラーが発生したレコードとその理由が記録されています。 - 選択クエリで確認する
追加クエリをいったん選択クエリに切り替えて(「クエリデザイン」→「選択」)、データシートビューで実際のデータを確認します。
数値フィールドに文字列が含まれていないか、日付フォーマットが正しいかを目視で確認できます。 - フィールドを1つずつ絞り込む
追加するフィールドを1つだけにしたクエリを作成してテストし、エラーが出るフィールドを特定します。
型変換エラー以外のエラーも出ている場合
同じダイアログに「キー違反」「ロック違反」「入力規則違反」が同時に表示されることがあります。
それぞれの意味と確認先は以下のとおりです(Microsoft公式サポートより)。
| エラーの種類 | 主な原因 | [はい] を押した結果 |
|---|---|---|
| 型変換エラー | データ型の不一致 | 該当フィールドがNullになって追加される |
| キー違反 | 主キーの値が重複している | レコードが追加されない |
| ロック違反 | 別のユーザーがテーブルを開いている | レコードが追加されない |
| 入力規則違反 | 入力規則・必須設定に違反している | レコードが追加されない |
キー違反・入力規則違反は [はい] を押しても追加されないため、必ず [いいえ] を選んで設計を見直してください。
まとめ
Accessの追加クエリで型変換エラーが発生する主な原因は、追加元と追加先のデータ型が一致していないことです。
まずは追加先テーブルをデザインビューで開き、各フィールドのデータ型とサイズを確認するのが最初のステップです。
データ型が合っているのにエラーが出る場合は、数値フィールド内の文字列混入や日付フォーマットの問題を疑い、Val() や CDate() などの変換関数を使って対処しましょう。
参考情報源:
- Microsoft Support「Common errors when you run an append query」(Access for Microsoft 365 / Access 2024 / 2021 / 2019 / 2016 対応)
- Microsoft Learn「Can’t append all the records」


コメント