以前リストボックスで複数選択しそれをレポートで印刷することをご教示いただきました
リストボックスで複数選択しそれをテーブルに格納したい
Private Sub 請求書_Click()
Dim stFilter As String
Dim varItm As Variant
With Me.listSupplier
For Each varItm In .ItemsSelected
stFilter = stFilter & "," & .ItemData(varItm)
Next
End With
If stFilter = "" Then
MsgBox "本店を選択してください。"
Else
'
stFilter = "本部 In(" & Mid(stFilter, 2) & ")And 日付 =" & Me!依頼日
DoCmd.OpenReport "L販社本部", acViewPreview, , stFilter
End If
End Sub
既存のテーブルに追加したいということなら印刷するコード部分(DoCmd.OpenReport)を追加クエリを実行するコードに書き換えればいいでしょう。
追加元と追加先のテーブルのフィールド構成が同じ場合のコード例
hatena様いつもありがとうございます。申し訳ございません。説明不足でした。リストボックスは非連結です。
追加元テーブルはございません。よろしくお願いします。
追加元テーブルがないなら全部やり直しましょう。正規化から始めないと砂上の楼閣です。
複数選択したものをどのようにテーブルに格納しますか?
例えば、
というようにやりたいことを具体的かつ丁寧に説明してもらえませんか。
hatena様朝早くからありがとうございます。
やりたいのは新規入力です。いままでコンボボックスで1社づつ入力していたのを複数社を選択して一気に入力したいと思っています。
最初のコードでリストボックスで選択した値を取得している部分は下記のループですので
このカンマ区切りで連結しているコードをレコード追加のコードに変更すればいいでしょう。
レコード追加はDAOかADOを使うのがいいでしょう。
ネット検索するかAIに質問すればサンプルコードが見つかると思いますのでそれを参考にコードを書いてみてください。
それでうまくいかないようならそのコードを提示して質問してください。
参考コード例
リストボックスに会社のリストが表示されているということですよね。
これはどのように表示させていますか?
通常は会社マスタテーブルを値集合ソースにしますよね。
ならば、それが追加元テーブルになると思いますが?
そうですね、治すとボックスのデータとしては次のように作成しております。
SELECT [T販社本部].[本社ID], T販社本部.[本社名] FROM T販社本部 ORDER BY [本社ID];
修正です 治すと=リストです。
最初の回答の追加クエリを実行する方法でも後の回答の方法でも可能だと思います。
追加先のテーブルの構成が不明なのでこれ以上の具体的な回答は無理ですので、
回答をヒントにできるところまでご自身で作成してみてください。
行き詰ったところでまた質問してください。
hatena様素晴らしいです。ありがとうございました。