设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1343|回复: 2
打印 上一主题 下一主题

[表] olezi字段问题

[复制链接]
跳转到指定楼层
1#
发表于 2003-6-28 05:23:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
你好;
      请问你一个问题。请一定要帮助我
我买了一本vb数据库的教程,书里自带的光盘里面有一个例子是用data控件连接一个带OLE字段的access数据表。
   我要问的问题是:我用access 2000 打开了这个数据表,看到OLE字段上显示的全是长二进制数据这几个字,请问这个图片是怎么存上去的。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2003-6-28 07:24:00 | 只看该作者
http://access911.net/index.asp?board=4&mode=3&recordid=74FAB51E13DC

关于图片关系处理的所有文章

http://access911.net/index.asp?board=4&mode=3&recordid=71FAB51E16DC
3#
 楼主| 发表于 2003-6-28 18:31:00 | 只看该作者
没看懂我就是想问一下文件怎么以二进制形式包存在access数据表中的ole字段里。必须用vba吗?看不懂呀。帮帮我

Option Compare Database
Option Explicit  

Public Function GetFromFile(strTable As String, strField As String, strFilter As String, objFileName As String) As Boolean

'============================================================
' 过程函数名: CommModule.GetFromFile 类型:Function
' 参数:
'     strTable (String)  :准备保存图形数据的表名称
'     strField (String)  :准备保存图形数据的字段名称
'     strFilter (String)  :打开表的过滤字符串,用于定位并确保被打开的表的数据的唯一性
'     objFileName (String) :准备输入到表里边的图象文件名称
' 返回:如果保存成功,返回True,如果失败,返回False
'-------------------------------------------------------------
' 说明:把图象文件的数据保存到表里边
'-------------------------------------------------------------
' 修订历史:
'=============================================================
Dim recset   As ADODB.Recordset, FileData() As Byte, FileNo As Long, FileSize As Long, strSQL As String

  strSQL = "Select " & strField & " From " & strTable & " Where " & strFilter & ";"
  Set recset = New ADODB.Recordset
  recset.Open strSQL, CurrentProject.Connection, adOpenDynamic, adLockOptimistic
  GetFromFile = True
  If recset(strField).Type <> DB_OLE Or Not IsFileName(objFileName) Then
    GetFromFile = False     '如果字段不是OLE字段,或者文件不存在,返回错误
    GoTo EndGetFromFile
  End If
  If recset.EOF Then       '如果记录不存在,返回错误
    GetFromFile = False
    GoTo EndGetFromFile
  End If
  FileSize = GetFileSize(objFileName) '如果被打开的文件大小为零,返回错误
  If FileSize <= 0 Then
    GetFromFile = False
    GoTo EndGetFromFile
  End If
  ReDim FileData(FileSize)      '重新初始化数组
  FileNo = FreeFile          '获取一个空闲的文件号
  Open objFileName For Binary As #FileNo '打开文件
  Get #FileNo, , FileData()      '读取文件内容到数组
  Close #FileNo            '关闭文件
  recset(strField).value = FileData() '保存数据
  recset.Update            '更新数据
  Erase FileData           '释放内存
EndGetFromfile:
  recset.Close            '关闭RecordSet
  Set recset = Nothing        '释放内存
End Function

Public Function SaveToFile(strTable As String, strField As String, strFilter As String, strFileName As String) As Boolean
'============================================================
' 过程函数名: CommModule.SaveToFile 类型:Function
' 参数:
'     strTable (String)  :保存图形数据的表名称
'     strField (String)  :保存图形数据的字段名称
'     strFilter (String)  :打开表的过滤字符串,用于定位并确保被打开的表的纪录的唯一性
'     strFileName (String) :准备保存的图象的文件名称
' 返回:如果保存成功,返回True,如果失败,返回False
'-------------------------------------------------------------
' 说明:把由GetFromFile函数保存到表中OLE字段的数据还原到文件
'-------------------------------------------------------------
' 修订历史:
'=============================================================
Dim recset   As ADODB.Recordset, FileData() As Byte, FileNo As Long, FileSize As Long, strSQL As String

  strSQL = "Select " & strField & " From " & strTable & " Where " & strFilter & ";"
  Set recset = New ADODB.Recordset
  recset.Open strSQL, CurrentProject.Connection, adOpenDynamic, adLockOptimistic
  SaveToFile = True
  If recset(strField).Type <> DB_OLE Then
    SaveToFile = False     '如果字段不是OLE字段,返回错误
    GoTo EndSaveToFile
  End If
  If recset.EOF Then       '如果记录不存在,返回错误
    SaveToFile = False
    GoTo EndSaveToFile
  End If
  FileNo = FreeFile
  Open strFileName For Binary As #FileNo
  ReDim FileData(recset(strField).ActualSize) '重新初始化数组
  FileDa
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-12 01:13 , Processed in 0.077259 second(s), 26 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表