(Access VBA)フォーム内のパラメーターを全部処理したい! 詳しい方、ご教授ください。 現在、作成用のフォームに顧客番号を1つ入れるテキストボックス(Forms![請求書作成].[顧客番号入力] )から請求書を作成するVBAを組んでます。 ただ、顧客が100件以上おりまして、一回に1件入力→請求書作成、というフローだと かなり大変のためせめてフォーム内に10個くらいテキストボックスを作って、そこに入っている顧客番号をボタン押下で10件請求書を作るようにしたいのです。 Forms![請求書作成].[顧客番号入力] 1 Forms![請求書作成].[顧客番号入力] 2 Forms![請求書作成].[顧客番号入力] 3 … ボタン押下→10件の請求書が作成、という形が理想です。(1回の機会に作成する請求書が10件程度のため10個テキストボックスがあればいいかなと思ってます) 下記のコードだと当然Forms![請求書作成].[顧客番号入力]の1個しか読み取ってないのでダメなのですが、これを10個作ったテキストボックスを読み取るようにすればどうしたらよいでしょうか? (VBAコード) ※文字数の関係で細かい宣言とかは省いてますがこれで動いております) 'エクセルオブジェクトを作成します Set objExcel = CreateObject("Excel.Application") objExcel.Visible = False openFileName = "C:\Users\〇〇\OneDrive\デスクトップ\請求関係\" 'C:\Users\〇〇\OneDrive\デスクトップ c_name = "請求書フォーマット.xlsx" 'openFleName とc_nameをつなげることで、絶対パスとしてファイルオープンする。 objExcel.Workbooks.Open openFileName & c_name Set xlWB = objExcel.Workbooks.Open(openFileName & c_name) Dim rs As Recordset sql = "SELECT * " & _ "FROM 東京 WHERE 顧客番号 = '" & Forms![請求書作成].[顧客番号入力] & "'" Set rs = CurrentDb.OpenRecordset(sql) If rs.RecordCount = 0 Then MsgBox ("その顧客番号は存在しません") Application.Echo True Set rs = Nothing xlWB.Close Set xlWB = Nothing Set objExcel = Nothing Exit Sub End If Do Until rs.EOF objExcel.Worksheets(1).Cells(3, 2) = rs![郵便番号] objExcel.Worksheets(1).Cells(4, 1) = rs![需要場所1] objExcel.Worksheets(1).Cells(5, 1) = rs![需要場所2] objExcel.Worksheets(1).Cells(8, 6) = rs![契約者名] objExcel.Worksheets(1).Cells(23, 16) = rs![契約プラン] objExcel.Worksheets(1).Cells(24, 16) = rs![顧客番号] xlWB.SaveAs "C:\Users\〇〇\OneDrive\デスクトップ\請求書\" & objExcel.Worksheets(1).Cells(25, 16) & objExcel.Worksheets(1).Cells(8, 6) & ".xlsx" xlWB.Close rs.MoveNext Loop Set rs = Nothing Set xlWB = Nothing objExcel.Quit Set objExcel = Nothing Application.Echo True MsgBox ("作成完了") End
Microsoft Access