ms access vba error 3021 no current record
问题描述:
我使用MS Access VBA从iSeries表导入。有时IBM表可以是空的,这没关系。但是,如果发生这种情况,我会收到VBA错误3021 - 是否需要更改我的代码,或者我是否可以抑制错误消息。这里是我的代码:ms access vba error 3021 no current record
Set rs = New ADODB.Recordset
rs.Open sSQL, cn, adOpenDynamic, adLockOptimistic
'Open recordset to local table
Set rsL = New ADODB.Recordset
rsL.Open sTBL, CurrentProject.Connection, adOpenDynamic, adLockOptimistic
rs.MoveFirst
Debug.Print "AS400"
Do Until rs.EOF
Debug.Print rs.Fields("DROP"), rs.Fields("STDATE"), rs.Fields("ENDATE")
rsL.AddNew
rsL.Fields("DROP") = rs.Fields("DROP")
rsL.Fields("STDATE") = rs.Fields("STDATE")
rsL.Fields("ENDATE") = rs.Fields("ENDATE")
rsL.Update
rs.MoveNext
Loop
'Test to check if above code actually worked
rsL.MoveFirst
Debug.Print "Local"
Do Until rsL.EOF
Debug.Print rsL.Fields("DROP"), rsL.Fields("STDATE"), rsL.Fields("ENDATE")
rsL.MoveNext
Loop
'Clear memory
Set rs = Nothing
Set rsL = Nothing
Set cn = Nothing
答
解决了这个问题 - 只是改变了代码以下:
'rs.MoveFirst
Debug.Print "AS400"
Do Until rs.EOF
rs.MoveFirst
注意不要打开一个记录之后需要'rs.MoveFirst' - 它总是在第一个记录(如果有的话)或EOF(如果没有)。 – Andre
好的 - 谢谢你的提示 – Michael