##質問内容
伝票管理のシステムを作成しているのですが、メインの伝票入力フォームの詳細にサブフォームがありそこで商品をいくつか追加できるようにしたいです。
##概要
・サブフォームには、
(伝票番号)、行番号、商品番号、商品名、単価、数量、合計金額
の項目があります。
・実際に入力するのは、商品番号と数量だけで、商品名、単価、合計金額は番号を入力すれば自動で入るようになっています。
・商品番号のテキストボックスの隣には、参照ボタンがあり押すと商品マスタが開きます。
・開いたマスタのレコードをクリックするとレコードの背景色が変わり選択状態になります。
(複数選択できるようにしてあります。)
・複数のレコードを選択した後に、マスタのフッターにある「選択」というボタンを押すと、伝票入力フォームのサブフォームに選択したレコードが一気に表示されているようにしたいです。
##補足
ちなみに伝票入力フォームのヘッダーにある、顧客番号を参照するコードはコチラです
(顧客番号はひとつだけしか選択しないです。)
VBA
1'---------------------------- 2'選択ボタンを押したとき 3'---------------------------- 4 5Private Sub Button_Select_Click() 6 7 Dim DB As DAO.Database 8 Dim RST As DAO.Recordset 9 Dim RS As DAO.Recordset 10 11 Set DB = CurrentDb 12 Set RST = DB.OpenRecordset("T_WSlip", dbOpenDynaset) 13 Set RS = DB.OpenRecordset("T_Customer", dbOpenDynaset) 14 15 With RS 16 .FindFirst "F_SelectFlag = True" 17 18 With RST 19 .Edit 20 .Fields("F_CustomerCode") = RS!F_CustomerCode 21 22 .Update 23 End With 24 25 .Close 26 End With 27 28 Forms!F_WSlipInput.Refresh 29 30End Sub
##追記
VBA
1'---------------------------- 2'選択ボタンクリック時 3'---------------------------- 4 5Private Sub Button_Select_Click() 6 7 Dim DB As DAO.Database 8 Dim RST As DAO.Recordset 9 Dim RS As DAO.Recordset 10 Dim RSS As DAO.Recordset 11 12 Set DB = CurrentDb 13 Set RS = DB.OpenRecordset("T_Product", dbOpenDynaset) 14 Set RSS = DB.OpenRecordset("T_WSlip", dbOpenDynaset) 15 Set RST = DB.OpenRecordset("T_WSlipDetail", dbOpenDynaset) 16 17 With RS 18 19 .FindFirst "F_SelectFlag = True" 20 21 Do Until RS.NoMatch 22 23 With RST 24 25 .AddNew 26 .Fields("F_SlipCode") = RSS!F_SlipCode 27 .Fields("F_ProductCode") = RS!F_ProductCode 28 .Fields("F_Qty") = 1 29 30 End With 31 32 RS.FindNext "F_SelectFlag = True" 33 Loop 34 35 .Close 36 37 End With 38 39 Forms!F_WSlipInput.Refresh 40 41 DoCmd.Close acForm, Me.Name 42 43End Sub
<商品テーブル T_Product>
フィールド名 | データ型 | 備考 |
---|---|---|
F_ProductCode | テキスト型 | 商品コード(主キー) |
F_ProductName | テキスト型 | 商品名 |
F_Cost | 通貨型 | 単価 |
F_AddDate | 日付/時刻型 | 追加日 |
F_UpdateDate | 日付/時刻型 | 更新日 |
F_DeleteFlag | Yes/No型 | 削除フラグ |
F_SelectFlag | Yes/No型 | 選択フラグ |
<商品テーブル T_WProduct>
フィールド名 | データ型 | 備考 |
---|---|---|
F_ProductCode | テキスト型 | 商品コード(主キー) |
F_ProductName | テキスト型 | 商品名 |
F_Cost | 通貨型 | 単価 |
<入力用伝票詳細テーブル T_WSlipDetail>
フィールド名 | データ型 | 備考 |
---|---|---|
F_SlipCode | テキスト型 | 伝票コード(主キー) |
F_LineNum | 数値型 | 行番号(主キー) |
F_ProductCode | テキスト型 | 行商品コード |
F_Cost | 通貨型 | 単価 |
F_Qty | 数値型 | 数量 |
<入力用伝票テーブル T_WSlip>
フィールド名 | データ型 | 備考 |
---|---|---|
F_SlipCode | テキスト型 | 伝票コード (主キー) |
F_StaffCode | テキスト型 | 担当者コード |
F_CustomerCode | テキスト型 | 顧客コード |
F_ApplyCode | テキスト型 | 適用コード |
F_ProcessDate | 日付/時刻型 | 処理日 |
F_ApplyValue | 数値型 | 割引地 |
この画像のサブフォームはT_WProductをソースにしています。
わかる方いましたらお願いいたします。
不明な点があればコメントください。
回答3件
あなたの回答
tips
プレビュー