sk.exe様
ご丁寧な説明、ありがとうございます。
ご教授いただいたクエリで解決しそうな気がします。
開発中のシステムに組み込んでみます。
クエリを読み解く力をレベルアップしていきたいです。
本日、自分なりに色々と調べてdaoを使った下記方法で解決できそうになったのですが、
気がかりな部分があります。
当方のバックデータはSQLServer上にあります。
そのためオートナンバーIDは保存後まで取得できません。
そこでdaoを使って.AddNew → .Update → .Bookmark = .LastModified → 受注IDを取得・格納
このとき.Bookmark=.LastModifiedは複数人で使用している場合、挿入した新規レコードと異なる場合が
ありますでしょうか。一人でテストしている場合には問題なく動いたのですが。
もしこういった使い方が問題ないようであれば、挿入直後に関連する別のテーブルの値を書き換えることが
できるようになり、便利だと思ったのですが。
具体的なコードは下記のとおりです。
dim JID as Long '挿入した受注ID格納用変数
Set daoRS_J = daoDB.OpenRecordset("受注テーブル", dbOpenDynaset, dbSeeChanges)
Set daoRS_EDI = daoDB.OpenRecordset("T_cnvEDIdata", dbOpenSnapshot) ←CSVデータの格納先
(格納時にメニューマスターと照合して
基本単価に更新しています。)
Do Until daoRS_EDI.EOF
daoRS_J.AddNew
daoRS_J!メニューID = daoRS_EDI!メニューID
daoRS_J!単価 = daoRS_EDI!単価
daoRS_J!受注日 = date
daoRS_J.Update
daoRS_J.Bookmark = daoRS_J.LastModified
JID = daoRS_J!受注ID
'マスタ工程が登録されている場合はマスタ工程をコピーする
strSQL_MK = "INSERT INTO 工程テーブル(受注ID, 工程) " _
& "SELECT " & JID & ", 工程 " _
& "FROM 工程サブマスターテーブル " _
& "WHERE メニューID=" & daoRS_EDI!メニューID ’CSV取込み時に照合したマスターIDも事前に格納
DoCmd.SetWarnings False
DoCmd.RunSQL strSQL_MK
DoCmd.SetWarnings True
daoRS_EDI.MoveNext
Loop
追加の質問で申し訳ありませんが、ご教授の程宜しくお願いいたします。