|
あるフォームのボタンを押したらフォーム内のリストボックスの
選択されている明細が「印刷用テーブル」に書き込まれ、
直後にその印刷用テーブルを使ったレポートを印刷するプログラムを作成
しました。しかし、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
|
|