Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

如何用最快的速度取出ACCESS表里的图放在某个文件夹里

qixiang  发表于:2010-04-09 16:46:18  
复制

在ACCESS 2000 的表里的图,如何用最快的速度取出放在某个文件夹里,由于图太多,要一个一个去打开后保存到文件夹太慢,要怎么做?谢谢!!!

 

Top
陈福祥 发表于:2010-04-11 21:10:18

我参考 ExcelHome 论坛的“Excel VBA实战精粹”中的片段:数据库ADO的应用里的问题份代码,再在 Access里修改一下后,发给你参考。

此代码对一般的“长二进制图片字段”的读取应该没问题。只是如果有其他格式的字段,就不知道了。因为Access的 OLE 图片字段是个相当复杂的字段。如有的需要用到 PictureData 属性等等的,反正我是对这个东东有点摸不着头脑。

不再多做说明,代码如下,需要要读取图片时,只需要调用些过程就行。我的附件里有个示例数据表及调用例子。

'参数:strTableName: 保存图片的表的名字
'      strPictureFld:图片字段名
'      strNameFld:   图片将保存的名字的字段
'      strPaht:      保存文件的路径
Sub ReadPicture(strTableName As String, strPictureFld As String, strNameFld As String, strPath As String)
     Dim Cnn As New ADODB.Connection
     Dim Rst As New ADODB.Recordset
     Dim strSql As String
    
     Dim BtArr() As Byte     '二进制数组
     Dim myPath As String
     Dim myTable As String
     Dim TmPath As String
     Dim f       '用来给FreeFile函数返回一个文件号

     On Error GoTo ErrMsg
    
     strSql = "Select [" & strPictureFld & "], [" & strNameFld & "]  From  [" & strTableName & "];"
     Set Cnn = CurrentProject.Connection
     Rst.Open strSql, Cnn, adOpenForwardOnly, adLockOptimistic, adCmdText
    
     Do While Not Rst.EOF
        If IsNull(Rst(strPictureFld)) Then
            '无相片,什么也不做
        Else
            TmPath = strPath & "\" & Rst(strNameFld).Value & ".bmp"
            BtArr = Rst(strPictureFld).Value
            f = FreeFile
            Open TmPath For Binary Access Write As #f      '以二进制方式打开文件
            Put #f, , BtArr
            Close #f
        End If
        Rst.MoveNext
     Loop
     Exit Sub
ErrMsg:
     MsgBox Err.Description, , "错误报告"
End Sub

 

点击下载此附件

qixiang 发表于:2010-04-12 09:13:55
那样也不行,我的图片是.bmp格式的图片,不是二进制的,请哪位老师帮帮忙!!!

陈福祥 发表于:2010-04-12 20:31:20

你再试一下这个,今天我在网上看了一些资料,将代码中的方法改了一下,我自己试了一下,好象能用了。不知你能不能用。

点击下载此附件



qixiang 发表于:2010-04-15 08:23:54
还是不行,谢谢陈福祥老师!

颜虎 发表于:2010-05-20 13:41:24
可以用这个工具试试,我把它发到你邮箱,你邮箱是:yqx940127@yahoo.com.cn

总记录:5篇  页次:1/1 9 1 :