Private Sub Command1_Click() Dim rsTemp As ADODB.Recordset Dim rsDes As ADODB.Recordset Dim strDes As String Dim strTemp As String Dim i As Integer dim j as long Set rsTemp = New ADODB.Recordset Set rsDes = New ADODB.Recordset strTemp = "select * from info " strDes = "select * from info2" If rsDes.State = adStateOpen Then rsDes.Close If rsTemp.State = adStateOpen Then rsTemp.Close rsTemp.Open strTemp, cnTemp, adOpenDynamic, adLockOptimistic rsDes.Open strDes, cnDes, adOpenDynamic, adLockOptimistic ' If rsDes.EOF And rsDes.BOF Then rsDes.AddNew 这句不要 for j =1 to rsDes.recordcount For i = 0 To rsTemp.Fields.Count - 1 If Not IsNull(rsTemp(rsTemp(i).Name)) Then rsDes(rsTemp(i).Name) = Trim(rsTemp(rsTemp(i).Name)) End If Next rsDes.Update rsDes.movenext next j MsgBox "sucess!!!!!"End Sub
Set rsTemp = New ADODB.Recordset Set rsDes = New ADODB.Recordset strTemp = "select * from info " strDes = "select * from info2" If rsDes.State = adStateOpen Then rsDes.Close If rsTemp.State = adStateOpen Then rsTemp.Close rsTemp.Open strTemp, cnTemp, adOpenDynamic, adLockOptimistic rsDes.Open strDes, cnDes, adOpenDynamic, adLockOptimisticfor j = 1 to rsTemp.recordcount rsDes.AddNew For i = 0 To rsTemp.Fields.Count - 1 If Not IsNull(rsTemp(rsTemp(i).Name)) Then rsDes(rsTemp(i).Name) = Trim(rsTemp(rsTemp(i).Name)) End If Next rsDes.Update rstemp.movenext next j MsgBox "sucess!!!!!"
for j =1 to rsDes.recordcount 改成 for j = 1 to rsTemp.recordcount
还是不行!有错误! empty now cannot be inserted .row must have at least one column value set
Dim rsTemp As ADODB.Recordset
Dim rsDes As ADODB.Recordset
Dim strDes As String
Dim strTemp As String
Dim i As Integer
dim j as long
Set rsTemp = New ADODB.Recordset
Set rsDes = New ADODB.Recordset
strTemp = "select * from info "
strDes = "select * from info2"
If rsDes.State = adStateOpen Then rsDes.Close
If rsTemp.State = adStateOpen Then rsTemp.Close
rsTemp.Open strTemp, cnTemp, adOpenDynamic, adLockOptimistic
rsDes.Open strDes, cnDes, adOpenDynamic, adLockOptimistic
' If rsDes.EOF And rsDes.BOF Then rsDes.AddNew 这句不要
for j =1 to rsDes.recordcount
For i = 0 To rsTemp.Fields.Count - 1
If Not IsNull(rsTemp(rsTemp(i).Name)) Then
rsDes(rsTemp(i).Name) = Trim(rsTemp(rsTemp(i).Name))
End If
Next
rsDes.Update
rsDes.movenext
next j
MsgBox "sucess!!!!!"End Sub
直接rsDes(i)就行了,要不rsDes(i).Value
改为rsDes.updatebatch
改成 rsDes.AddNew
。info是temp中的表。info2是des中的表.字段都一样。
Set rsDes = New ADODB.Recordset
strTemp = "select * from info "
strDes = "select * from info2"
If rsDes.State = adStateOpen Then rsDes.Close
If rsTemp.State = adStateOpen Then rsTemp.Close
rsTemp.Open strTemp, cnTemp, adOpenDynamic, adLockOptimistic
rsDes.Open strDes, cnDes, adOpenDynamic, adLockOptimisticfor j = 1 to rsTemp.recordcount
rsDes.AddNew For i = 0 To rsTemp.Fields.Count - 1
If Not IsNull(rsTemp(rsTemp(i).Name)) Then
rsDes(rsTemp(i).Name) = Trim(rsTemp(rsTemp(i).Name))
End If
Next
rsDes.Update
rstemp.movenext
next j
MsgBox "sucess!!!!!"
改成
for j = 1 to rsTemp.recordcount
empty now cannot be inserted .row must have at least one
column value set
若是增加用:rsDes.AddNew
若是更改用:rsDes.Edit
最后别忘了rsDes.Update。
另外,直接读rsTemp.recordcount是不行的,
要加上两句
rsTemp.movefirst
rsTmp.movelast
否则rsTemp.recordcount是等于1的。
希望能够解决。
应该用adLockPessimistic
你说的对了!!!
songyangk(小草) :我一直在线
也谢谢所有来这里的人!!!谢谢!!!!我十分感谢!!!
songyangk(小草) :我看不到你!!