把CnRes.Update改为CnRes.UpdateBatch试试

解决方案 »

  1.   

    Option Explicit
    Dim Cn As ADODB.Connection
    Dim CnRes As ADODB.RecordsetPrivate Sub Command1_Click(
        Set Cn = New ADODB.Connection    Cn.Open "Provider=SQLOLEDB.1;Password=wqef;Persist Security Info=True;User ID=sa;Initial Catalog=LHJDB;Data Source=wp_sql"
        Set CnRes = New ADODB.Recordset
        CnRes.Open "select * from tc", Cn, "select * from tc", Cn, adOpenStatic, adLockBatchOptimistic
        CnRes.AddNew
        CnRes!Name = "明天"
        CnRes.Update
        CnRes.Close
        Cn.Close
    End Sub
      

  2.   

    CnRes.Open "select * from tc", Cn, adOpenKeySet
      

  3.   

    CnRes.Open "select * from tc", Cn, adOpenKeySet
      

  4.   

    CnRes.CursorType = adOpenKeyset
    CnRes.LockType = adLockOptimistic
    CnRes.Open "tc", pConn, , , adCmdTable
    CnRes.AddNew
      

  5.   

    CnRes.Open "select * from tc", Cn, adOpenKeyset, adLockOptimistic
      

  6.   

    前面打错了
    Option Explicit
    Dim Cn As ADODB.Connection
    Dim CnRes As ADODB.RecordsetPrivate Sub Command1_Click(
        Set Cn = New ADODB.Connection    Cn.Open "Provider=SQLOLEDB.1;Password=wqef;Persist Security Info=True;User ID=sa;Initial Catalog=LHJDB;Data Source=wp_sql"
        Set CnRes = New ADODB.Recordset
        CnRes.Open "select * from tc", Cn, adOpenStatic, adLockBatchOptimistic
        CnRes.AddNew
        CnRes!Name = "明天"
        CnRes.Update
        CnRes.Close
        Cn.Close
    End Sub
      

  7.   

    CnRes.Open  "select * from tc", Cn,adOpenForwardOnly, adLockReadOnly
      

  8.   

    Private Sub Command1_Click()    Cn.ConnectionString = "Provider=SQLOLEDB.1;Password=wqef;Persist Security Info=True;User ID=sa;Initial Catalog=LHJDB;Data Source=wp_sql"
        Cn.Open
        CnRes.Open "select * from tc", Cn, adOpenStatic, adLockBatchOptimistic
        CnRes.AddNew
        CnRes!Name = "明天"
        CnRes.Update
        CnRes.Close
        Cn.Close
    End Sub
      

  9.   

    为什么要用AddNew呢?直接用SQL语句写不是更简单吗?不懂。
    如果是我,这会这么写:    dim strSQL as string
        Dim CNN as object
        set cnn=createobject("adodb.connection")
        With CNN
            .ConnectionString = Provider=SQLOLEDB.1;Password=wqef;Persist Security Info=True;User ID=sa;Initial Catalog=LHJDB;Data Source=wp_sql        .ConnectionTimeout = 30
            .CursorLocation = adUseClient   'aduseclient=3
            strsql="Insert tc(name) values('明天')"
            .open
            .execute strsql
            .close
        End Withis all right,simple?
      

  10.   

    为什么要用AddNew呢?直接用SQL语句写不是更简单吗?不懂。
    如果是我,这会这么写:    dim strSQL as string
        Dim CNN as object
        set cnn=createobject("adodb.connection")
        With CNN
            .ConnectionString = Provider=SQLOLEDB.1;Password=wqef;Persist Security Info=True;User ID=sa;Initial Catalog=LHJDB;Data Source=wp_sql        .ConnectionTimeout = 30
            .CursorLocation = adUseClient   'aduseclient=3
            strsql="Insert tc(name) values('明天')"
            .open
            .execute strsql
            .close
        End Withis all right,simple?____________如果用变量赋值,把Insert tc(name) values('明天') ‘明天’的位置用一个变量AABB代替,并且再增加一个数字型的字段GZ ,也是用变量CCDD赋值,这个Insert语句该怎么写?
      

  11.   

    Option Explicit
    Dim Cn As ADODB.Connection
    Dim CnRes As ADODB.RecordsetPrivate Sub Command1_Click()
        Cn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=test62002;Data Source=dataserver"
        
        Cn.Open
        CnRes.Open "select * from tc", Cn, adOpenStatic, adLockOptimistic
        CnRes.AddNew
        CnRes!Name = "明天"
        CnRes.Update
        CnRes.Close
        Cn.Close
    End SubPrivate Sub Form_Load()
        Set Cn = New ADODB.Connection
        Set CnRes = New ADODB.Recordset
    End Sub
      

  12.   

    方法1:
    CnRes.Open "select * from tc", Cn, adOpenStatic, adLockBatchOptimist
    改成:
    CnRes.Open "select * from tc", Cn, adOpenStatic, adLockOptimistic方法2:
        CnRes.Update
    改成:
        CnRes.Update
        CnRes.UpdateBatch
      

  13.   

    dim dbname as string
    dim rsname as stringdim db as database
    dim rs as recordsetprivate sub command1_click()
        dbname="c:\XXX.mdb"
        rsname=AUTHOR
        set db=dbengine.opendatabase(dbname)
        set rs=db.openrecordset(rsname,dbopendynaset)
        with rs
             .addnew
             .updata
        end with
    end sub
    用动态集创建记录
      

  14.   

    Agree wiht CSDNM,
    既然锁定用了batch,update也得用UpdateBatch
    如果用Update,锁定方式就用adLockOptimistic
      

  15.   

    据说操作SQLServer添加记录用insert比addnew好
      

  16.   

    .addnew array("name"),array("明天")
      

  17.   

    .addnew array("name"),array("明天")
    .update
      

  18.   


        CnRes.Open "select * from tc", Cn, adOpenStatic, adLockBatchOptimistic
    中的adOpenStatic改为: adOpenDynamic
      

  19.   

    你用adLockBatchOptimistic
    更新的时候要用UpdateBatch
      

  20.   

    上面说的都有道理,我再补充一下:
    adLockOptimistic是用于记录集的缓冲,就是可以用addnew追加多个记录,然后用updatebatch一起更新记录.
    你用的是一条记录的更新,建议用adLockOptimistic