0
我寫了一個用於將數據插入到mysql-DB中的vba代碼,並且爲了節省時間我認爲只需要一個連接到數據庫就可以執行多個「插入」,但我很擔心關於插入命令中的可能錯誤,以便在發生錯誤時,我希望一次執行一次查詢。excel-vba嵌套錯誤處理
這使得可以執行命令沒有錯誤,但是,如果有錯誤,它會再次,我需要處理它。
要做到這一點,我認爲下面的代碼,但尋找類似的東西,我沒有找到任何東西......也許這是一個壞主意?有一個更好的方法嗎?
這是我的想法:
For i = 1 To 100
'...do something
'First error handling activation
On Error GoTo ErrHandle1
'Reset SQL String
SQLStr = ""
'Loop for making SQL string for multiple INSERT
For ii = 1 To 50
'...example instructions:
SQLStr = SQLStr & "INSERT INTO myTab (myField) VALUES ('" & ii/i & "'); "
Next ii
'Execute all insert at one time
rs.Open SQLStr, Cn, adOpenStatic
GoNext:
On Error GoTo 0
Next i
Exit Sub
'primary error handling
ErrHandle1:
'No instrutions here
'I use resume only to reset error
Resume Handle1
Handle1:
'I try again INSERT loop with a connection to DB for every query
'Second error handling activation
On Error GoTo ErrHandle2
For ii = 1 To 50
'String for only one INSERT
SQLStr = "INSERT INTO myTab (myField) VALUES ('" & ii/i & "'); "
'Single query execution
rs.Open SQLStr, Cn, adOpenStatic
Next ii
'Back to base code
GoTo GoNext
'secondary error handling
ErrHandle2:
MsgBox Err & " - " & Error(Err)
Resume Next
對不起,但這段代碼沒有做我想做的事:在替代循環中的錯誤沒有處理 – genespos 2015-04-01 14:34:55