| 
    
     |  | あるフォームのボタンを押したらフォーム内のリストボックスの 選択されている明細が「印刷用テーブル」に書き込まれ、
 直後にその印刷用テーブルを使ったレポートを印刷するプログラムを作成
 しました。しかし、1回目は上手く動作するのですが、2回目以降に
 フォーム内の明細を選択してボタンを押すと、前回印刷した明細が
 出てきてしまいます。
 「印刷用テーブル」はボタンを押した際にデータを全削除しているにも
 かかわらず動作していないように見えます。
 ソースを載せますのでご教授いただければ幸いです。
 
 sub BtnClick()
 Dim varItm As Variant
 Dim CnAcc As New ADODB.Connection
 Dim RsAcc As New ADODB.Recordset
 Dim SQL As String
 Const D_SQL As String = "DELETE * FROM 印刷用テーブル"
 
 CnAcc.ConnectionString = CurrentProject.Connection
 
 '** 印刷用テーブル データ削除
 Set RsAcc = CnAcc.Execute(D_SQL, , adCmdText)
 
 RsAcc.Open "印刷用テーブル", CnAcc, adOpenKeyset, adLockOptimistic, adCmdTableDirect
 
 For Each varItm In Me.lstMain.ItemsSelected
 RsAcc.AddNew
 RsAcc("A").Value = Me.lstMain.Column(1, varItm)
 RsAcc("B").Value = Me.lstMain.Column(2, varItm)
 RsAcc("C").Value = Me.lstMain.Column(3, varItm)
 RsAcc("D").Value = Me.lstMain.Column(4, varItm)
 RsAcc.Update
 
 DoEvents
 Next varItm
 
 RsAcc.Close
 CnAcc.Close
 Set RsAcc = Nothing
 Set CnAcc = Nothing
 
 DoCmd.Requery "lstmain"
 DoCmd.OpenReport "データ発行", acViewNormal
 
 end sub
 
 
 |  |