- 締切済み
フォームから2つのテーブルにデータを書き込みたい
Accessで T_aテーブルとT_bテーブルがありそれぞれのフィールドが以下のようになっているとします。 T_a:フィールド名 データ型 ID オートナンバー型 商品番号 テキスト型 主キー T_b:フィールド名 データ型 ID オートナンバー型 主キー 商品番号 テキスト型 このときフォームから入力したデータをそれぞれのテーブルの商品番号に追加したいのですがどのようにすればよいのでしょうか。 よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- CHRONOS_0
- ベストアンサー率54% (457/838)
まずT_aテーブル 商品番号が主キーであればそれだけでレコードを特定できるわけですから オートナンバー型のIDは不要です 次にT_bテーブル T_aテーブルを参照しているものであるなら T_aに登録後でなければT_bへの登録は出来ません T_aのレコード追加イベントで追加クエリを走らせることになります でも、自動的にレコードの追加をしてもいいものなんですか?
ということであれば、 追加クエリを二つ作って、ボタンを押したときに両方実行させればよいと思います。 フォームは非連結のものでよいと思います。
これは、完全な丸投げですな。 ですから、入力された商品番号を次々と登録するサンプルコードのみを示します。 Private Sub コマンド0_Click() Dim StopNow As Boolean Dim strGoodsNumber As String Do strGoodsNumber = InputBox("商品番号を入力して下さい") StopNow = CBool(Len(strGoodsNumber) = 0) If Not StopNow Then If XXXXX("*", "T_a", "商品番号='" & strGoodsNumber & "'") = 0 Then XXXXXX "INSERT INTO T_a (商品番号) VALUES ('" & strGoodsNumber & "');" XXXXXX "INSERT INTO T_b (商品番号) VALUES ('" & strGoodsNumber & "');" Else MsgBox "'" & strGoodsNumber & "' は、既に登録されています。" End If End If Loop Until StopNow End Sub 少なくとも、自分なりのコードを書いて躓いている箇所を提示して質問されたがいいです。 でないと、回答が質問者の求めるものかどうか判らんですよ。 回答ってものは、コードのレベルじゃないです。 ニーズとの相性が一番肝心ですからね・・・。 なお、この場合、 INSERT文を実行する関数が主なテーマです。 まあ、ここまで示唆するのがギリギリです。 しかし、この示唆もニーズとあっているか判ったもんじゃないですよね。 上記サンプルを参考にされて、自分なりのコードを書かれたし。
お礼
大変失礼いたしました。 Accessは、初心者でコードはよく知りません。 クエリやフォーム作成時の設定でできると思っていました。 ありがとうございます。 参考にさせていただきます。(勉強させていただきます。)