当我填充所有字段时,我得到错误3021:没有当前记录
-
21-12-2019 - |
题
我有一个表需要通过形式填充一些记录。我正在使用这个代码:
Set rp = CurrentDb.OpenRecordset("table1")
Do
rp.Edit
rp!field2 = Text22
rp.Update
rp.MoveNext
Loop
.
代码填充表并到达文件的末尾时,我得到3021错误。
为什么发生这种情况?
解决方案
试试这个:
Set rp = CurrentDb.OpenRecordset("table1")
Do Until rp.EOF
rp.Edit
rp!Field2 = Text22
rp.Update
rp.MoveNext
Loop
.
另一种方式是使用这样的东西:
CurrentDb.Execute "UPDATE table1 SET field2='" & Text22 & "'", dbFailOnError
. 其他提示
如果您希望将表中的每一行更新到特定值,则使用SQL会更快。
例如:
sSQL= "UPDATE Table1 SET Field2=param"
Set qdf = db.CreateQueryDef("", sSQL)
qdf.Parameters!param = Trim(Me.Text22)
qdf.ReturnsRecords = False
qdf.Execute dbFailOnError
intResult = qdf.RecordsAffected
MsgBox "You updated " & intResult & " records."
.
甚至可以指定参数的类型,例如:
sSQL= "PARAMETERS param Text(150); UPDATE Table1 SET Field2=param"
.
使用要构建SQL字符串的参数是更安全的。
不隶属于 StackOverflow