'VB/VBA中实现数据库中的文件存取

原创 2006年05月19日 13:00:00

'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:/test.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=//xz/c$/Inetpub/zj/zj/zj.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:/test.doc"
    End With
   
    '关闭对象
    iStm.Close
End If

    iRe.Close
End Sub

 

在VB6里怎样调用VBA里的函数?

比如在Excel的VB编辑器里自己写了一个函数叫“somefunc”,然后我想在一个VB的程序里定义一个Excel.Application对象打开那个Excel文件,然后调用somefunc函数。如何...
  • zhu2695
  • zhu2695
  • 2013年11月26日 23:30
  • 1736

[VB] VB实现一个窗体的增删改查的demo

日常开发中,经常会针对默写数据表进行增删改查。 每次都要单独处理,费时费力,考虑通过一个窗体进行封装。(借鉴当时接触的某家公司的套路) 外围在调用时,传入sql字符串,展示字符串,然后 被调用窗体...
  • fonjames
  • fonjames
  • 2016年06月27日 13:18
  • 3130

vb获取、创建数据库及包含表和字段名

Option Explicit Dim isConnect As Boolean '判断数据库是否连接成功 Dim ConADODB As New ADODB.Connection '用于连接MA...
  • hws1058648831a
  • hws1058648831a
  • 2013年06月08日 11:30
  • 1553

VB/VBA中实现数据库与文件的存取

编程完成数据库与文件的数据相互存取 'VB/VBA中实现数据库中的文件存取 '示例数据库为ACCESS数据库,用SQL数据库的话,只需要改连接字符串 ' '*******************...
  • lijil168
  • lijil168
  • 2013年10月04日 18:19
  • 1507

VBA窗体转VB方法

[求助] 求教VBE窗体导入VB的方法和导入后的使用方法  [复制链接]     ctincob 2 主题 8 帖子 0 鲜花 ...
  • hotqin888
  • hotqin888
  • 2016年04月09日 18:58
  • 1709

在VB风格的语法中输出转义字符

     今天在用VS.Net 2003的Macro IDE写一个自动生成代码的宏的时候,意外发现VB中的转义字符和C风格的转义字符是不一样的.惭愧惭愧,因为以前没有这方面的应用,所以根本没...
  • geniusleft
  • geniusleft
  • 2004年11月29日 17:33
  • 3554

VB数据库中EOF和BOF的认识与用法

在这些天敲写和调试学生信息管理系统的时候,经常会用到EOF(Endof File)和BOF(Before of File),稍加不注意查询我们的数据库就会出错,那么这俩到底是何方神圣,是怎么用的,之间...
  • wlccomeon
  • wlccomeon
  • 2012年08月15日 00:13
  • 11387

只向ADODB.Recordset写数据,不更新数据库

Option Explicit Dim Rs As New ADODB.Recordset '比如给第3列增加内容3 Private Sub Command1_Click() ...
  • cncco
  • cncco
  • 2017年03月09日 15:34
  • 464

VB中文件操作的两种方式

文本文件的操作  此种方式是以行为单位进行读取的基本单位,主要应用的方法和函数有Open,Close,Line Input,FreeFile,EOF等。下面先简述其功能然后结合代...
  • guyehanxinlei
  • guyehanxinlei
  • 2007年06月02日 13:44
  • 713

VB中的POINTAPI

今天在用VB写一个小程序,需要获取鼠标的当前位置,该怎么写呢? 看看vb中的一个函数的声明: Private Sub Form_DragDrop(Source As Control, X As Sin...
  • codecaptive
  • codecaptive
  • 2013年11月21日 13:03
  • 773
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:'VB/VBA中实现数据库中的文件存取
举报原因:
原因补充:

(最多只允许输入30个字)