@@@用excel做票据打印的问题,请高手解答

vivaxie 2004-11-17 11:15:23
当用以下这段程序打印票据时,每打印一张票据,就会在内存中产生一个
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
...全文
200 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
vivaxie 2004-11-20
  • 打赏
  • 举报
回复
没人能解决吗?
wuxudong82 2004-11-17
  • 打赏
  • 举报
回复
帮你顶
lang_csdn 2004-11-17
  • 打赏
  • 举报
回复
关注!
vivaxie 2004-11-17
  • 打赏
  • 举报
回复
在这里添加set好象也不行
xlBook.Save
xlsheet.PrintOut
xlApp.Quit
Set xlsheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
vivaxie 2004-11-17
  • 打赏
  • 举报
回复
有人能解决吗?
VBA高手们帮忙啊

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧