这可能是个错误吗?或者我在这里想念smt?
Do While Not somevalue= ""
sorgu = "INSERT INTO somedb VALUES('" & somevalue & "')"
On Error GoTo est
rs.Open sorgu, cnn
j = j + 1
est: Loop
我得到了唯一的密钥错误,但我不想被提示,只想恢复下一行。
发生此错误时 On Error
无效。
我必须使用Do While Loop
才能将其更改为错误。
如何避免被提示输入错误以及为什么On Error
语句此时无效。
答案 0 :(得分:3)
您的示例有几个问题,但要回答您的问题,请将错误处理程序更改为 On Error Resume Next 或添加实际的错误处理程序,检查那里的err.Number并确定操作采取。
Do While Not somevalue= ""
sorgu = "INSERT INTO somedb VALUES('" & somevalue & "')"
On Error GoTo est
rs.Open sorgu, cnn
j = j + 1
Loop
est:
'some error handling code
我还建议将GoTo语句移到Do语句之前。正如您所拥有的那样,每次循环执行时都会不必要地分配On Error重定向。
On Error GoTo est
Do While Not somevalue= ""
sorgu = "INSERT INTO somedb VALUES('" & somevalue & "')"
rs.Open sorgu, cnn
j = j + 1
Loop
est:
If err.Number = (unique key error)
Resume Next
Else
MsgBox "An error occurred while inserting records. Error " & CStr(Err.Number) & ", " & Err.Description