|
▼あおぎん さん、VBWASURETA さん:
こんにちは。
>レポート用のワークテーブルを用意して
VBWASURETA さんご提案の方法です。
以前使っていた、そのままのものですので
あおぎんさんの環境に合わせて適宜変更して下さい。
Private Sub cmdReportOpen_Click()
Const Label_Cnt = 12
Dim strSQL As String
Dim RCount As Long
Dim i As Long
Dim DB As DAO.Database
DoCmd.RunCommand acCmdSaveRecord
Set DB = CurrentDb
strSQL = "DELETE FROM W_ラベル"
DB.Execute strSQL, dbFailOnError
strSQL = "INSERT INTO W_ラベル(顧客ID, 氏名, 郵便番号, 住所1, 住所2 ) " _
& "SELECT 顧客ID, 氏名, 郵便番号, 住所1, 住所2 " _
& "FROM T_顧客マスタ " _
& "WHERE 選択FLG = True"
DB.Execute strSQL, dbFailOnError
RCount = DCount("*", "W_ラベル")
For i = RCount Mod Label_Cnt + 1 To Label_Cnt
strSQL = "INSERT INTO W_ラベル( 顧客ID) " _
& "VALUES(" & RCount + i & ");"
DB.Execute strSQL, dbFailOnError
Next i
DB.Close
DoCmd.OpenReport "R_ラベル", acViewPreview
End Sub
T_顧客マスタ の選択FLG というフィールドが True の人だけ
ワークテーブル W_ラベル にレコードを追加し、
その後余白分のレコードを追加してレポートを開いております。
レポートのレコードソースは W_ラベルに指定、
W_ラベルの郵便番号、住所等の既定値に
常用ラベルのデータを入れておくと打ち出される仕様です。
Const句の所は
> ラベルシートは20カットを使用しているので
という事で20を指定すれば行けるかと思われます。
汎用的なコードでなく、
実用に合わせるのにちょっと手間が掛かると思いますが
何かご参考になれば幸いです。
|
|