@@@用excel做票据打印的问题,请高手解答
当用以下这段程序打印票据时,每打印一张票据,就会在内存中产生一个
EXCEL.EXE 文件,占用大约11M的内存,请问如何修改,才能在打印一张或者一定量的票据后
,将EXCEL.EXE 程序在内存中“除掉”呢,是否可以用vb编码杀掉以前的进程呢?
Private Sub CmdPrint_Click()
Dim i As Integer '当前月份
Dim j As Integer 'EXCEL表格行变量
On Error GoTo ErrMsg
i = InputBox("请输入当前月份", "数据输入")
If MsgBox("请将纸放入打印机,准备打印销售单", vbInformation + vbOKCancel, "销售提示") = vbOK Then
'On Error Resume Next
Me.Data1.Recordset.MoveFirst
While Not Me.Data1.Recordset.EOF
Dim xlApp As Excel.Application
Set xlApp = New Excel.Application
Dim strSource, strDestination As String
strSource = App.Path & "\print.xls"
If (Data1.Recordset.Fields(i + 3).Value - Data1.Recordset.Fields(i + 2).Value) = 0 Then
Else
If Not Me.Data1.Recordset.EOF Then
With Me.Data1.Recordset
strDestination = App.Path & "\Temp.xls"
FileCopy strSource, strDestination
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = False
Set xlBook = xlApp.Workbooks.Open(strDestination)
Set xlsheet = xlBook.Worksheets(3)
xlsheet.Cells(6, 1) = "LPG"
xlsheet.Cells(6, 2) = "立方米"
xlsheet.Cells(6, 3) = .Fields(i + 3).Value - .Fields(i + 2)
xlsheet.Cells(6, 4) = "9"
xlsheet.Cells(6, 5) = 9 * xlsheet.Cells(6, 3)
xlsheet.Cells(7, 2) = "表底数: " & .Fields(i + 2).Value & " " & "抄见数: " & .Fields(i + 3)
End With
xlBook.Save
xlsheet.PrintOut
xlApp.Quit
End If
End If
Me.Data1.Recordset.MoveNext
Wend
End If
Exit Sub
ErrMsg:
MsgBox "请输入正确的月份!", vbInformation, "系统提示"
End Sub