> 50個ずつと端数のデータも作りたい場合は
> どのようにしたらできますでしょうか?
質問の添付画像にある「(2)こうしたい」の状態ですよね
他のやり方があるかもしれませんがとりあえず
作成の標準モジュールで出た画面に以下のコードをコピペしてください
テストクエリ(変更しなければ)というクエリ(適当な選択クエリでも)を作成してから実行してください。
テーブルやフィールド名は実際のテーブル名やフィールド名に変更してください。
testやテストクエリは好きな名前にしてください。
Public Function test()
Dim db As Database, rs1 As Recordset
Dim i As Long
Dim mySQL As String
Set db = CurrentDb
Set rs1 = db.OpenRecordset("テーブル", dbOpenTable)
mySQL = ""
rs1.MoveFirst
Do Until rs1.EOF
For i = 1 To Int(rs1![数量] / 50)
mySQL = mySQL & "SELECT 商品名, 50 AS 数量, 納期 FROM " & rs1.Name & _
" WHERE (商品名)='" & rs1![商品名] & "';" & _
vbCrLf & "UNION ALL" & vbCrLf
Next
If rs1![数量] Mod 50 > 0 Then
mySQL = mySQL & "SELECT 商品名, " & rs1![数量] Mod 50 & " AS 数量, 納期 FROM " & rs1.Name & _
" WHERE (商品名)='" & rs1![商品名] & "';" & _
vbCrLf & "UNION ALL" & vbCrLf
End If
rs1.MoveNext
Loop
mySQL = Left(mySQL, Len(mySQL) - 11)
CurrentDb.QueryDefs("テストクエリ").SQL = mySQL
DoCmd.OpenQuery "テストクエリ"
Set rs1 = Nothing
Set db = Nothing
End Function
補足
ご回答ありがとうございます! 試してみます! 追加の質問で大変恐縮なのですが、 50個ずつと端数のデータも作りたい場合は どのようにしたらできますでしょうか? お手数おかけして申し訳ございません!