addnew 为啥不能插入新记录
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
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