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 打交道,建议顺手收藏这些链接,都是我觉得还挺靠谱的参考:

代码逻辑其实挺简单,图片框控件从头到尾扫一遍,粘到 Excel 的表格上,响应也快。如果你控件名对不上,可以改下代码里的YourFormNameYourPictureBoxControl。别忘了保存模块再试,不然你会以为“又只能运行一次”了哦。