|
こんにちは。投稿の件こちらの事情でご迷惑をお掛けし申し訳ありません。
引き続きご教授頂ければ幸いです。宜しくお願い致します。
>全ての命令の終わりで良いです。サンプルソースで言うなら
>end sub の前。
これでやってみましたが、駄目でした。せっかくご教授頂きましたが、私の根本
的なコードの作りや考え方が悪いのかなと思いその後、色々な参考書等を読み漁
り、DBの構成等、やりたい事(させたい事)を再度整理してみました。
で以下のように考え、コードを再び作成してみましたが、やはりおっしゃる通り
応用編であり、初心者の私には今一歩知識が足りません。
度々のお願いですが、何卒ご教授をお願い致します。
やりたい事
注文伝票(F_伝票)の入力を行う(サブフォームは現在なし)DBで、いつも決まった
注文(例えば、ある取引先は、1回の注文時にA商品とB商品とC商品を決まって注文
し合わせてその時に違う商品も追加注文する)を効率良く入力したい。
1、F_伝票入力上にあるコンボックス(txtキー)から選択された商品グループ番号を基にT_商品マスタの内容をF_伝票入力に表示させる。(毎回決まった注文に対応)
txtキーのプロパティ値集合ソースには、
SELECT T_商品マスタ.商品グループ番号, T_商品マスタ.商品コード, T_商品マスタ.商品名 FROM T_商品マスタ ORDER BY T_商品マスタ.商品グループ番号, T_商品マスタ.商品コード;
と設定してあります。
2、1でF_伝票入力に表示させた後、毎回決まった注文商品の後に続けて直接手入
力(追加注文に対応)
3、登録ボタンをクリックし、F_伝票入力の内容をT_伝票入力に反映したい。
コードを以下のように記述しました。1、については表示する事が出来ました。3については登録ボタンが考慮されておらず1、で表示と同時に即、T_伝票入力に反映
してしまっています。2については、直接入力すると何故かT_商品マスタにデータが追加されてしまいます。この2と3の部分について(手入力で追加した分の正しい反映方法、登録ボタンの処理の記述タイミング、方法)を教えて頂きたく投稿させ
て頂きます。
長々と申し訳ありませんが、どうか宜しくお願いします。
Private Sub txtキー_AfterUpdate()
Dim db As DAO.Database
Dim db2 As DAO.Database
Dim rs As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim mySQL As String
Set db = CurrentDb()
Set db2 = CurrentDb()
mySQL = "SELECT * FROM T_商品マスタ " _
& "WHERE 商品グループ番号 = '" & Me!txtキー & "'"
Set rs = db.OpenRecordset(mySQL)
Set rs2 = db2.OpenRecordset("t_伝票入力", dbOpenTable)
Set Me.Recordset = rs
Me!商品コード.ControlSource = "商品コード"
Me!商品名.ControlSource = "商品名"
rs.MoveFirst
Do Until rs.EOF
With rs2
.AddNew
rs2!商品コード = rs!商品コード
rs2!商品名 = rs!商品名
.Update
End With
rs.MoveNext
Loop
Set rs = Nothing
Set db = Nothing
End Sub
|
|