rst.fields("数字")=23  
rst.fields("字符串")="str"
那么:
rst.fields("文本")=....该字段为OLE对象类型

解决方案 »

  1.   

    Option Explicit'工程->引用->Microsoft ActiveX Data Object 2.6 Library (后面为版本号)
    Dim cn As New ADODB.Connection, rs As New ADODB.Recordset'保存
    Private Sub Command1_Click()
        Dim stmCon As New Stream
        
        stmCon.Type = adTypeBinary
        stmCon.Open
        stmCon.LoadFromFile "C:\bb.bmp"
            
        If rs.State = adStateOpen Then rs.Close
        cn.Execute "DELETE FROM TABLENAME"
        rs.Open "SELECT * FROM TABLENAME", cn, adOpenDynamic, adLockOptimistic    rs.AddNew
        rs!ID = "12"
        rs!Name = "bb"
        rs.Fields("PHOTO") = stmCon.Read
        rs.Update
       
        stmCon.Close
        Set stmCon = Nothing
    End Sub'打开
    Private Sub Command2_Click()
        Dim stmCon As New Stream
        
        If rs.State = adStateOpen Then rs.Close
        rs.Open "SELECT * FROM TABLENAME", cn, adOpenForwardOnly, adLockReadOnly
        If Not rs.EOF Then
            stmCon.Type = adTypeBinary
            stmCon.Open
            stmCon.Write (rs.Fields("PHOTO").Value)
            stmCon.SaveToFile "C:\aa.bmp", adSaveCreateOverWrite
        End If    Image1.Picture = LoadPicture("C:\aa.bmp")
    End SubPrivate Sub Command3_Click()
        rs.Open "SELECT * FROM TEST", cn, 3, 3
    End SubPrivate Sub Form_Load()
    'On Error GoTo Errhandle
        cn.ConnectionString = "Driver={SQL Server};SERVER=DataServer;DATABASE=zxzx;UID=information;PWD=information*&#"
        'cn.ConnectionString = "DBQ=D:\My Documents\db2.mdb;DefaultDir=" & _
            App.Path & ";Driver={Microsoft Access Driver (*.mdb)};" & _
            "DriverId=25;FIL=MS Access;ImplicitCommitSync=Yes;" & _
            "MaxBufferSize=512;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;" & _
            "Threads=3;UID=ADMIN;UserCommitSync=Yes;PWD=;"
        'cn.ConnectionString = "Driver={MySQL};Option=262144;port=1024;stmt=;Server=192.168.2.126;DataBase=mysql;User=root;Password="
        
        cn.Open
        
        Exit Sub
    Errhandle:
        MsgBox Err.Description, vbExclamation
    End SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    On Error Resume Next
        rs.Close
        Set rs = Nothing
        cn.Close
        Set cn = Nothing
    End Sub这是保存图片的,你把文件改成文本的就可以了!!
      

  2.   

    'http://support.microsoft.com/default.aspx?scid=kb;EN-US;258038'*************************************************************************
    '**
    '** 使用 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
        
        '数据库连接字符串
        iConcStr = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False" & _
            ";Data Source=F:\csdn_vb\database\保存图片\img.mdb"
        Dim iConc As ADODB.Connection
        Set iConc = New ADODB.Connection
        
        iConc.Open iConcStr
        '读取文件到内容
        Set iStm = New ADODB.Stream
        With iStm
            .Type = adTypeBinary    '二进制模式
            .Open
            .LoadFromFile App.Path + "\com.doc"
        End With
        
        '打开保存文件的表
        Set iRe = New ADODB.Recordset
        With iRe
            .Open "select * from img", iConc, 1, 3
            .AddNew         '新增一条记录
            .Fields("photo") = iStm.Read
            .Update
        End With
        
        '完成后关闭对象
        iRe.Close
        iStm.Close
    End SubSub 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=F:\csdn_vb\database\保存图片\img.mdb"
        
        '打开表
        Set iRe = New ADODB.Recordset
        iRe.Open "img", iConc, adOpenKeyset, adLockReadOnly
        iRe.Filter = "id=3"   '比如单击datagrid后找到id=3的纪录
        
        '保存到文件
        Set iStm = New ADODB.Stream
        With iStm
            .Mode = adModeReadWrite
            .Type = adTypeBinary
            .Open
            .Write iRe("photo")
            .SaveToFile "c:\com.doc"
        End With
        
            OLE1.SourceDoc = "c:\\com.doc"
            OLE1.Action = 1    'use the old action method
            OLE1.SizeMode = vbOLESizeAuttoSize    '调节对象大小使其正好充满OLE容器控件    'Picture1.Picture = LoadPicture("c:\tesd.bmp")
        
        '关闭对象
        iRe.Close
        iStm.Close
    End SubPrivate Sub Command1_Click()
    Call s_ReadFile
    End SubPrivate Sub Command2_Click()
    Call s_SaveFile
    End Sub
      

  3.   

    Dim rss As New ADODB.Recordset
    Dim stm As New Stream
    rss.Open "sql.str", objCnn, adOpenKeyset, adLockOptimistic
    Set stm = New ADODB.Stream
        With stm
        .Mode = adModeReadWrite
        .Type = adTypeBinary
        .Open
        .Write rss.Fields("文本")  
        End With此ole对象是word,怎么打开这个stm,
    在access中,可以打开此ole对象
      

  4.   

    这里保存,看我的代码
    .SaveToFile "c:\com.doc"
    End With
    使用ole打开这个文件,经过测试    
    OLE1.SourceDoc = "c:\\com.doc"
    OLE1.Action = 1    'use the old action method
    OLE1.SizeMode = vbOLESizeAuttoSize    '调节对象大小使其正好充满OLE容器控件
      

  5.   

    to 龙卷风:
    但是当word版本与,ole对象的word版本不同时,要求转换格式,无法打开
    "双击包含一个 OLE 对象的控件将会启动创建该对象的应用程序,并允许它被编辑。"--------msdn
    双击类型为ole对象的字段,可以打开它。如何在VB中实现这各操作。
      

  6.   

    直接打开行不行
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    Private Sub Command1_Click()
        ShellExecute Me.hwnd, "open", "c:\com.doc", vbNullString, vbNullString, 3
    End Sub
      

  7.   

    还是需要类型转换,只有在access中,dblclick该字段,能够正确打开,并且能够编辑
      

  8.   

    http://office.9zp.com/dispbbs.asp?boardID=15&ID=2162
      

  9.   

    各位,有没有注意到“在access中,dblclick该字段”后,所运行的程序中,“文件”菜单中,“保存”没有了,取而代之的是“更新”
    我的示例中也是这样
      

  10.   

    大头哥又拿你的Data控件大法出来了,呵呵,
    上回的问题解决了,应该在最后加上OLE1.ReadFromFile,
    爽了我半天,可是今天问题又来了,
    仍然避不开上回遇到的乱码问题,求各位解决以下...
      

  11.   

    //解决乱码问题
    重新UPDATE吧,