ACCESS 2003 导出的图片老是只能成功一次?这个问题我以前也碰到过,主要是 VBA 代码里少了个关键的引用——要记得在Selection
前加上xlApp
。说白了就是你得明确告诉程序“这是 Excel 的事儿”。嗯,说干就干,直接上 VBA 代码,把 ACCESS 里图片批量扔进 Excel,干净利落。
ACCESS 2003 的 VBA 模块里,操作 Excel 其实还蛮方便。打开 VBA 编辑器(Alt + F11
),新建一个模块,把下面这段代码粘进去:
Sub ExportImagesToExcel()
Dim xlApp As Excel.Application
Dim xlWB As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim picObj As Object
Dim i As Integer
Set xlApp = New Excel.Application
xlApp.Visible = True
Set xlWB = xlApp.Workbooks.Add()
Set xlSheet = xlWB.Sheets(1)
For i = 1 To Forms!YourFormName!YourPictureBoxControl.Count
Set picObj = Forms!YourFormName!YourPictureBoxControl(i)
picObj.CopyPicture Appearance:=acScreen, Format:=acBitmap
xlSheet.Pictures.Paste Destination:=xlSheet.Range("A1").Offset(i, 0)
Next i
Set xlSheet = Nothing
Set xlWB = Nothing
Set xlApp = Nothing
End Sub
核心点其实就是:引用 Excel 对象要清楚、图片复制粘贴得规整。你可以建个按钮,点一下就自动导出,一张不漏。适合做报告、备份,或者和 Excel 玩联动的时候用。
如果你平时经常和 ACCESS 打交道,建议顺手收藏这些链接,都是我觉得还挺靠谱的参考:
- 从 Access 导出图片到 Excel
- ACCESS,EXCEL,VBA
- Access VBA 对象参考手册
- Excel VBA 与 Access 整合详解
- VBA 编程实现 Access 2003 图像读写操作
代码逻辑其实挺简单,图片框控件从头到尾扫一遍,粘到 Excel 的表格上,响应也快。如果你控件名对不上,可以改下代码里的YourFormName
和YourPictureBoxControl
。别忘了保存模块再试,不然你会以为“又只能运行一次”了哦。