現在作成中の見積フォームについて
同じような内容の場合、複写したいと思っています。
(メインフォームに宛名、サブフォームに明細)
検索したところ、帳票内の複写はあったのですが、単票のものがあまり見当たりませんでした。
ベストな方法かどうかわからず、制作前におたずねしたいのですが、
追加クエリでカレントレコードのメイン、サブ共にオートナンバーのID部分以外を追加する。
といった感じで可能でしょうか。
ざっくりした質問で申し訳ありません・・・
現在作成中の見積フォームについて
同じような内容の場合、複写したいと思っています。
(メインフォームに宛名、サブフォームに明細)
検索したところ、帳票内の複写はあったのですが、単票のものがあまり見当たりませんでした。
ベストな方法かどうかわからず、制作前におたずねしたいのですが、
追加クエリでカレントレコードのメイン、サブ共にオートナンバーのID部分以外を追加する。
といった感じで可能でしょうか。
ざっくりした質問で申し訳ありません・・・
追加クエリで対応しようとトライしていましたが、不可能な気がしてきました。
メインとサブがある部分で引っかかってしまいます。
どのような方法があるかご教示いただけると助かります。
それで可能ですよ。
まずは、メインの方を追加してから、サブを追加という順番になります。
メインを追加した後で、オートナンバーのIDの最大値(=追加したレコードのID)を取得して、
サブの外部キーの値にします。
下記のような感じのコードになります。
ありがとうございます!クエリの中身までVBAで記載する勉強にもなりました。
VBAを教えていただいたのですが、accessのクエリで作成してみようと思ったところつまづいてしまいました。
メインはうまく追加できるのですが、サブの追加クエリがエラーで止まってしまいます。
(エラーを飛ばしてメインだけ作成されたりもする)
エラー内容
⇒INSERT INTO ステートメントに、認識できないフィールド'DMamx(・・・・)'があります。名前が正しいことを確認して、再度実行してください。
力不足で申し訳ありません。ご助言宜しくお願いいたします。
コードに一部ミスがありましたので記載しなおします。
また、エラーもDMamxと記載してしまいましたが、DMaxの書き間違いです。スミマセン
[DMax("主キーフィールド", "メイン")]
の部分は、
[
]
で囲まずに、DMax("主キーフィールド", "メイン")
に修正してください。
[
]
で囲むとフィールド名して認識されます。ありがとうございます。今回クエリで作ったもののSQLで、自動でカッコがついてしまっていたのですが、SQL画面で外そうとすると
「INSERT INTOステートメントの構文エラーです」と表示され、保存できませんでした。
教えていただいたVBAで全て書き直したところ下記のエラーが出ます。
INSERT INTO ステートメントに、認識できないフィールド「11」があります。名前が正しいことを確認して、再度実行してください。
ちなみに11というのは maxIDと同じ値になっています。
ちなみにエラーが出るのは「CurrentDb.Execute sSQL, dbFailOnError」の最終行でした。
あー!すみません。コード間違ってました。
DMax は SELECT文の方にいれないとだめでした。
VBA、クエリともバッチリうまくいきました。うれしいです!ありがとうございました。