下記のコードを実行すると、
変換エラーのため、0個のフィールドのNullに設定しました。0件のレコードキー違反、0件のレコードでロック違反、327件のレコードで、入力規則違反が発生したためレコードを追加できませんでした。
主キーは、合成キーで、重複はしてません。
IDも主キーで、オートナンバー型です。
テーブルの作成しなおしで実行⇒改善無
テーブルのコピー実行⇒改善無
IDのみの追加を実行⇒同じエラーです。
フィールドの形式は、間違えていないと思います。
どんな原因が、考えられるのでしょうか?
お知恵をお貸しください。
よろしくお願いいたします
INSERT INTO MT_検索テーブル
(
ID,
親番,
売上先,
子番,
支店_営業所,
孫番,
現場名,
府県,
締日,
直近3ヶ月,
油種,
仕入,
売上,
利益,
仕入コード,
仕入先,
単価_ランク_コード,
単価_ランク,
[開始(復活)],
終了,
備考1,
備考2,
担当,
車番①,
車番②,
車番③,
車番④,
車番⑤,
車番⑥,
車番⑦,
車番⑧,
車番⑨,
売上先カナ,
支店_営業所カナ,
現場名カナ,
フラグ,
日付コード,
油種コード,
合成キー,
納入先業者名カナ,
親グループカナ,
更新用フラグ,
締め日,
更新合成キー,
最終編集日,
終了日,
終了チェック
)
SELECT
ID,
親番,
売上先,
子番,
支店_営業所,
孫番,
現場名,
府県,
締日, DateAdd("m",1,[直近3ヶ月]) AS 日時,
油種,
Null AS 仕入C,
Null AS 売上C,
Null AS 利益C,
仕入コード,
仕入先,
単価_ランク_コード,
単価_ランク,
[開始(復活)],
終了,
備考1,
備考2,
担当,
車番①,
車番②,
車番③,
車番④,
車番⑤,
車番⑥,
車番⑦,
車番⑧,
車番⑨,
売上先カナ,
支店_営業所カナ,
現場名カナ,
[フラグ],
日付コード,
油種コード,
[親番] & "-" & [子番] & "-" & [孫番] & "-" & [油種コード] & "-" & [仕入コード] & "-" & Format([日時],"yyyymmdd") AS 合成キー2,
納入先業者名カナ,
親グループカナ,
Year(Date()) & "年" & Month(Date()) & "月" & "レイアウト" AS 更新用,
IIf(Day([日時])=1,DateSerial(Year([日時]),Month([日時])+1,0),DateAdd("m",1,[日時])+1) AS 締め日,
更新合成キー,
最終編集日,
終了日,
終了チェック
FROM MT_検索テーブル
WHERE (((MT_検索テーブル.終了チェック)=False) AND ((MT_検索テーブル.直近3ヶ月) Between DateSerial(Year(Date()),Month(Date())-1,1) And DateSerial(Year(Date()),Month(Date()),0)));
確認ですが、
複数フィールドに主キーを設定しているのですか。
オートナンバーは重複しないので意味がないのでは?
ID(オートナンバー型)を主キーにして、合成キーはインデックス(重複なし)を設定するのが通常の設計だと思います。
また、追加クエリーにはオートナンバー型フィールドは含めないようにすべきだと思います。
hatena様
返信遅れて申し訳ありません。
仰る通り、下記のSQL文で解決しました。
回答ありがとうございました。