VBVBA中实现数据库中的文件存取

    技术2022-05-11  86

    ' VB/VBA中实现数据库中的文件存取 ' 示例数据库为ACCESS数据库,用SQL数据库的话,只需要改连接字符串 '' ************************************************************************* ' ** ' ** 使用 ADODB.Stream 保存/读取文件到数据库 ' ** 引用 Microsoft ActiveX Data Objects 2.5 Library 及以上版本 ' ** ' ** ----- 数据库连接字符串模板 --------------------------------------- ' ** ACCESS数据库 ' ** iConcStr = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False" & _ ' **     ";Data Source=数据库名" ' ** ' ** SQL数据库 ' ** iConcStr = "Provider=SQLOLEDB.1;Persist Security Info=True;" & _ ' **     "User ID=用户名;Password=密码;Initial Catalog=数据库名;Data Source=SQL服务器名" ' ** ' ************************************************************************* '' 保存文件到数据库中 Sub  s_SaveFile()     Dim  iStm  As  ADODB.Stream     Dim  iRe  As  ADODB.Recordset     Dim  iConcStr  As   String          ' ACCESS数据库的连接字符串     iConcStr  =   " Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False "   &  _         " ;Data Source=F:My Documents客户资料1.mdb "          ' SQL数据库的连接字符串     iConcStr  =   " Provider=SQLOLEDB.1;Persist Security Info=True; "   &  _         " User ID=用户名;Password=密码;Initial Catalog=数据库名;Data Source=SQL服务器名 "      ' 读取文件到内容      Set  iStm  =   New  ADODB.Stream     With  iStm        .Type  =  adTypeBinary     ' 二进制模式,如果是用text/ntext字段保存纯文本数据,则改用 adTypeText         .Open        .LoadFromFile  " c: est.doc "      End   With          ' 打开保存文件的表      Set  iRe  =   New  ADODB.Recordset     With  iRe        .Open  " " , iConc, adOpenKeyset, adLockOptimistic        .AddNew          ' 新增一条记录         .Fields( " 保存文件内容的字段 " =  iStm.Read        .Update     End   With          ' 完成后关闭对象     iRe.Close    iStm.Close End Sub ' 从数据库中读取数据,保存成文件 Sub  s_ReadFile()     Dim  iStm  As  ADODB.Stream     Dim  iRe  As  ADODB.Recordset     Dim  iConc  As   String          ' 数据库连接字符串     iConc  =   " Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False "   &  _         " ;Data Source=/xzc$Inetpubzjzjzj.mdb "          ' 打开表      Set  iRe  =   New  ADODB.Recordset    iRe.Open  " tb_img " , iConc, adOpenKeyset, adLockReadOnly    iRe.Filter  =   " id=64 "      if  iRe( " img " ).ActualSize > 0   Then          ' 保存到文件          Set  iStm  =   New  ADODB.Stream         With  iStm            .Mode  =  adModeReadWrite            .Type  =  adTypeBinary  ' 二进制模式,如果是用text/ntext字段保存纯文本数据,则改用 adTypeText             .Open            .Write iRe( " img " )            .SaveToFile  " c: est.doc "          End   With              ' 关闭对象         iStm.Close     End   If     iRe.Close End Sub  

    最新回复(0)