|
▼neptune さん:
こんにちは
>情報なしでは考える事も出来ませんから。
すみません。お手数をお掛けしております。
>><テーブル>
>>T_商品マスタには商品グループ番号、商品コード、商品名
>>T_伝票入力には商品コード、商品名
>>となっており
>><フォーム>
>>F_伝票入力には商品コード、商品名(T_伝票入力を基に作成しました)
>ここで質問
>・商品コードのコントロールはComboBox?
いいえ。テキストボックスです。
>・商品名 のコントロールはTextBox?
はい。テキストボックスです。
>この2つのコントロールはいずれも非連結?
最初はT_伝票入力と連結しておりましたが、現在は何れも非連結になっています。
>・他にコントロールは?
フォームヘッダーの部分に、非連結のコンボックスでtxtキーというものがあります。↓の内容です。
>>1、F_伝票入力上にあるコンボックス(txtキー)から選択された商品グループ番号を基にT_商品マスタの内容を
>>F_伝票入力に表示させる。(毎回決まった注文に対応)
>・comboboxのコントロール名がtxtキー
そうなんです。書籍のサンプルを参考にしている為、このような名前になってます
>>1、については表示する事が出来ました。
>・どのようにして?
フォームヘッダーにある非連結のコンボックスであるtxtキーで商品グループ番号を選択して。
>>3については登録ボタンが考慮されておらず1、で表示と同時に即、T_伝票入力に反映してしまっています。
>非連結ならそのような事はありえないと思いますが?連結している????
すいません。連結にしておりました。非連結にして試してみましたが、コードの記述にそもそも登録ボタンの処理を入れていない為、即、T_伝票入力に反映しております。最終的にはフォームフッターにある登録ボタンの処理を入れたいと考えております。
>で、最初に帰って、私なりに整理してみると以下のようになります。
>使用するテーブルとその構造は以下。但し、データ型の情報が欠如している
>>T_商品マスタには商品グループ番号、商品コード、商品名
>>T_伝票入力には商品コード、商品名
はい。テーブルは、現在そのようになっております。
>form 非連結上に、combobox 1個、textbox 1個、commandbutton 1個を配置、
form 非連結上にcombobox×1(フォームヘッダーの部分に商品グループ番号を選択するコンボックス)
txtbox×2(フォーム詳細の部分に商品コードと商品名)
commandbutton×1(フォームフッターの部分に登録ボタン)
>combobox コントロール名(txtキー):商品グループ番号フィールドのデータを全て表示
このコンボックスは、フォームヘッダーにあり、コンボツクをクリックすると商品グループ番号と商品コード、商品名の一覧を表示しています。txtキーのプロパティの値集合ソースには、
SELECT T_商品マスタ.商品グループ番号, T_商品マスタ.商品コード, T_商品マスタ.商品名 FROM T_商品マスタ ORDER BY T_商品マスタ.商品グループ番号, T_商品マスタ.商品コード;
と設定してあります。これはうまく動いております。
>textbox コントロール名(不明):手入力
フォーム詳細にあり、商品コード(非連結)、商品名(非連結)の2つ。フォームヘッダーにあるコンボックスで選択した商品グループ番号に対応した商品コード、商品名を表示しております。
フォームヘッダーにあるコンボックを使わず、手入力する事も想定しております。現在は、フォームヘッダーにあるコンボックス(txtキー)から商品グループ番号を選択してフォーム詳細にある商品コード、商品名に自動的に表示した後、続けて次のレコード欄に手入力で商品コード、商品名を入力すると、何故かT_商品マスタにデータが登録されてしまっております。
これが何故かわかりません。
>commandbutton コントロール名(商品マスタ全て読込)
> 商品マスタ全て読込をクリックする事で、T_伝票入力にcombobox とtextbox のデータを追加したい。
フォームフッターにある登録ボタンをクリックすると、フォームヘッダーにあるコンボックス(txtキー)から選択し、フォーム詳細上に表示さた商品コード、商品名と合わせてフォーム詳細上で手入力(追加)した商品名、商品コードをT_伝票入力にデータが反映するようにしたい。(現在は出来ていません)
フォームフッターにある登録ボタンをクリックする事により、フォームヘッダーにあるコンボックスから選択したデータと追加入力したデータを合わせてT_伝票入力に格納したいのです。
つまりフォームヘッダーにあるコンボックスから定型注文分を選択し、フォーム詳細に表示して、続けて追加注文を手入力(F_伝票入力上に表示されているデータ)登録ボタンでT_伝票入力に格納したい。という事なのですが。。。
こんな感じの説明でご理解頂けますでしょうか?
つたない説明で申し訳ないです。
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
|
|