Win10
ACCESS2010
先日、ご教授いただいた者です。
ありがとうございました。
未熟な為、方法が分かりません。
もしできるのであれば方法をご教授願います。
表形式の[フォーム1]と[フォーム2]があります。
<現状>
フォーム2の「挿入」ボタンで1項目ずつ挿入しておりますが
フォーム2上に「一括挿入」というボタンを設け、
登録項目を一括で挿入したいと思っていますが可能でしょうか?
可能の場合は教えてください。宜しくお願い致します。
サンプルをアップロード致しました。
[フォーム2]の
「リンゴ」「120円」
「ブドウ」「800円」
「カキ」「120円」
「ミカン」「30円」
を[フォーム1]に一括挿入したい
現在の記述は(1項目毎の挿入)
Forms![フォーム1].SetFocus
DoCmd.GoToRecord acActiveDataObject, , acNewRec
Forms![フォーム1]!項目 = Forms![フォーム2]!項目
Forms![フォーム1]!金額 = Forms![フォーム2]!金額
としています。
ファイルを見ました。
フォーム1のレコードソースは「クエリ1」です。
フォーム2のレコードソースは「テーブル2」です。
「フォーム2」のデータを一括で「フォーム2」に追加したいということは、
言い換えれば、「テーブル2」のデータを「クエリ1」(テーブル1と同じもの)に追加するということです。
追加クエリという機能がありますので、それを使えば簡単に一括追加できます。
「テーブル2」から「テーブル1」にデータを追加する追加クエリを作成してください。
一括ボタンのクリック時にその追加クエリを実行するコードを記述すればいいでしょう。
追加クエリを実行後に、フォーム1を再クエリするれば、追加データが表示されます。
hatena 様
ありがとうございます。
追加クエリを使わない方法はないでしょうか?
サンプルは簡素化しておりまして実際は複雑になっており
作り直しができない状態です。
コードではできないのでしょうか?
申し訳ありません。
どのように複雑なのでしょうか。
フォーム2のデータをフォーム1にそのまま追加するだけではないのですか。
データを追加するだけなら、追加クエリが一番簡単です。追加クエリをコードで実行して再クエリです。
コード例
追加クエリを作成したくないなら、コードにSQLを直接記述することも可能です。
一応、追加クエリ(SQL)を使わない別案も出しておきます。
追加クエリの方がシンプルですし、処理も高速です。
hatena 様
ありがとうございます。
3通りとも確認し思っていた通りに動作しました。
追加クエリを使用することに致しました。
お手数をお掛け致しました。
勉強になりました。