• 締切済み

フォームから2つのテーブルにデータを書き込みたい

Accessで T_aテーブルとT_bテーブルがありそれぞれのフィールドが以下のようになっているとします。 T_a:フィールド名 データ型    ID  オートナンバー型    商品番号 テキスト型 主キー T_b:フィールド名 データ型    ID  オートナンバー型 主キー    商品番号 テキスト型 このときフォームから入力したデータをそれぞれのテーブルの商品番号に追加したいのですがどのようにすればよいのでしょうか。  よろしくお願いいたします。

みんなの回答

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.3

まずT_aテーブル 商品番号が主キーであればそれだけでレコードを特定できるわけですから オートナンバー型のIDは不要です 次にT_bテーブル T_aテーブルを参照しているものであるなら T_aに登録後でなければT_bへの登録は出来ません T_aのレコード追加イベントで追加クエリを走らせることになります でも、自動的にレコードの追加をしてもいいものなんですか?

noname#60992
noname#60992
回答No.2

ということであれば、 追加クエリを二つ作って、ボタンを押したときに両方実行させればよいと思います。 フォームは非連結のものでよいと思います。

noname#140971
noname#140971
回答No.1

これは、完全な丸投げですな。 ですから、入力された商品番号を次々と登録するサンプルコードのみを示します。 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文を実行する関数が主なテーマです。 まあ、ここまで示唆するのがギリギリです。 しかし、この示唆もニーズとあっているか判ったもんじゃないですよね。 上記サンプルを参考にされて、自分なりのコードを書かれたし。

LACOMS
質問者

お礼

大変失礼いたしました。 Accessは、初心者でコードはよく知りません。 クエリやフォーム作成時の設定でできると思っていました。 ありがとうございます。 参考にさせていただきます。(勉強させていただきます。)

関連するQ&A