我想修改数据库中的记录,但是提示我的连接记录类型不支持update,我试过用
rs.open str,conn,3,3代替Set rs = conn.Execute(str),但是系统报:时实错误91,对象变量或with块变量未设置,我不知道为何,请高手帮我看看!如何修改!!最好代码!!!谢谢!!
'修改数据库记录
Private Sub Modification(ByVal itemno As String)
Dim conn As ADODB.Connection '定义ADO链接conn
Dim rs As ADODB.Recordset '定义ADO记录集rs
Dim str As StringIf CheckInput = True Then '检查输入是否合乎要求Set conn = New ADODB.Connection '初始化conn,否则会出错
conn.Open "driver={Microsoft Access Driver (*.mdb)};pwd='';dbq=d:\shcandle\shcandle"str = "select * from candle where ItemNo = '" & itemno & "'"Set rs = conn.Execute(str)rs("Description") = Text_Description.Text
。。


rs("PicLink") = Text_PicLink.Text
rs.Updaters.Close
conn.Close
Unload Me

解决方案 »

  1.   

    换成 rst.Open Trim$(str), conn,  adOpenKeyset, adLockOptimistic就没问题了。
      

  2.   

    将Set rs = conn.Execute(str)换成set rs = new ADODB.Recordset 
    rs.open trim(str), conn, adOpenKeyset, adLockBatchOptimistic, 1建立楼主要定义变量时最好不要用函数名。str()这个函数是将number转换成string.
      

  3.   

    还是不行啊!我试过了,用rs.open trim(str), conn, adOpenKeyset, adLockBatchOptimistic, 但是还是运行不了,
    提示为:时实错误91,对象变量或with块变量未设置请大家帮忙给我看看,可能问题处在哪里?是哪里没有设置好吗?着急!!!!
      

  4.   

    conn.Open "driver={Microsoft Access Driver (*.mdb)};pwd='';dbq=d:\shcandle\shcandle"
    这里出错
    应该是具体的数据库,不支持 *.mdb
      

  5.   

    conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\shcandle\shcandle"
      

  6.   

    数据库连接错误:    Dim Conn as ADODB.Connection
      Dim StrConnect As String
        StrConnect = "Provider=Microsoft.Jet.OLEDB.4.0; " _
            & "Data Source=" & App.Path & "\dbName.mdb;Persist " _
            & "Security Info=False;Jet OLEDB:Database Password=abc"
        Set Conn = New ADODB.Connection
        Conn.Open StrConnect
      

  7.   

    对,一开始你的ConnL连接数据库就有问题,Dim conn As ADODB.Connection '定义ADO链接conn
    Dim rs As ADODB.Recordset '定义ADO记录集rs
    Dim str As String
    dim DatabasePath as string
    If CheckInput = True Then '检查输入是否合乎要求
    DatabasePath ="d:\shcandle\shcandle.MDB"
    Set conn = New ADODB.Connection '初始化conn,否则会出错
    '密码为空
    conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DatabasePath  &";Persist Security Info=False"str = "select * from candle where ItemNo = '" & itemno & "'"rst.Open Trim$(str), conn,  adOpenKeyset, adLockOptimisticrs("Description") = Text_Description.Text
    。。


    rs("PicLink") = Text_PicLink.Text
    rs.Updaters.Close
    conn.Close
    Unload Me
      

  8.   

    我按照上述的办法都试过了,但是程序还是编译不通过,提示还是:时实错误91,对象变量或with块变量未设置。我快要晕倒了,请大家再帮我看看问题在哪里?是不是要加一个撒控件啊?如果可能是否提供一个相似的例子,我下载下来看看后做一比较!!!我用的双VB6,数据库是accsee 97
      

  9.   

    建议将数据库升级为ACCESS 2000。(数据库名称:shcandle.mdb ?)。
    运行VB,选择“工程\引用”命令,引用“Microsoft AetiveX Date 2.x Library”。将以下代码贴到按钮事件中试试:Private Sub cmdUpdate_Click()
        Dim conn As ADODB.Connection 
        Dim rs As ADODB.Recordset
        Dim Str As String    Set conn = New ADODB.Connection
        Str = "Provider=Microsoft.Jet.OLEDB.4.0; " _
            & "Data Source = d:\shcandle\shcandle.mdb;Persist " _
            & "Security Info=False;Jet OLEDB:Database Password=abc"
        Set Conn = New ADODB.Connection
        Conn.Open Str    Str = "Select * From candle Where ItemNo = '" & itemno & "'"
        Set rs = New ADODB.Recordset
        rs.Open Str, Conn, adOpenKeyset, adLockOptimistic    If rs.RecordCount = 0 Then
            MsgBox "没有相关数据"
            Exit Sub
        End if
        rs!Description = Trim(Text_Description.Text)
        ......
        rs!PicLink = Text_PicLink.Text
        rs.Update    rs.Close
        conn.Close
    End sub
      

  10.   

    '修改数据库记录
    Private Sub Modification(ByVal itemno As String)
    Dim conn As ADODB.Connection '定义ADO链接conn
    Dim rs As ADODB.Recordset '定义ADO记录集rs
    Dim strSQL As StringIf CheckInput = True Then '检查输入是否合乎要求Set conn = New ADODB.Connection '初始化conn,否则会出错
    conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\shcandle\shcandle"strSQL = "select * from candle where ItemNo = '" & itemno & "'"Set rs = New ADODB.Recordset '建立对象rs.Open strSQL, conn
    'Set rs = conn.Execute(str) '这样得到的行集合是不能更新的rs.Fields("Description") = Text_Description.Text
    。。


    rs.Fields("PicLink") = Text_PicLink.Text
    rs.Updaters.Close
    conn.Close
    Unload Me