addnew 为什么不能插入新记录

addnew 为何不能插入新记录Dim Cn As New ADODB.ConnectionDim Rs As New ADODB.RecordsetDim cmd As New

addnew 为何不能插入新记录
    Dim Cn As New ADODB.Connection
    Dim Rs As New ADODB.Recordset
    Dim cmd As New ADODB.Command
    Dim strr As String, I As Integer, CNT As Integer
    strr = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=E:\WorkProject\VBProject\AccessOP\05.mdb"
    
    Cn.ConnectionString = strr
    Cn.ConnectionTimeout = 30
    Cn.CursorLocation = adUseClient
    Cn.Open strr
    Nowms ("打开时间:")
    CNT = 0
    For I = 1 To RNDREC
        strr = Text1.Text & CStr(I) & Chr(Int((90 - 65 + 1) * Rnd + 65))
        Rs.Open "select   * from table1 where COM='" & strr & "'", Cn, adOpenStatic, adLockBatchOptimistic
        If Rs.RecordCount = 0 Then
            'Rs.AddNew
            'Rs.Fields(0).Value = strr
            'Rs.Fields(1).Value = Left(strr, 2)
            'Rs.Fields(2).Value = Right(strr, 2)
            'Rs.Fields(3).Value = Mid(strr, 1, 5)
            'Rs.Update
         cmd.ActiveConnection = Cn
         cmd.CommandText = "insert into table1(com,t1,t2,t3) values('" & strr _
                      & "' , '" & Left(strr, 2) & "' , '" & Right(strr, 2) & "' , '" & Mid(strr, 1, 5) & "')"
         cmd.CommandType = adCmdText
         cmd.Execute
            
            CNT = CNT + 1
        End If
        Rs.Close
    Next

我用VB6.0和access2007开发平台。
现在发现如果用rs.addnew方法不能实现记录插入,而采用cmd.execute方法后却可以。请教高手们其中的原因?

[解决办法]
 Rs.Open "select * from table1 where COM='" & strr & "'", Cn, adOpenDynamic, adLockOptimistic