所以我創建了一個函數,允許用戶使用SQL語句從excel文件中收集數據。下面是函數:如果SQL語句不好,如何在Excel中錯誤地處理OLEDBB連接?
Public Function query_excel_file(ByVal filepath As String, ByVal sql_statement As String) As DataTable
On Error Resume Next
Dim m_sConn1 As String = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & filepath & ";" & _
"Extended Properties=""Excel 12.0;HDR=Yes;IMEX=1"";"
Dim conn1 As New System.Data.OleDb.OleDbConnection(m_sConn1)
Dim da As New System.Data.OleDb.OleDbDataAdapter(sql_statement, conn1)
Dim dt As DataTable = New DataTable
If da Is Nothing Then
Return Nothing
Exit Function
End If
da.Fill(dt)
conn1.Close()
Return dt
End Function
現在,這個功能工作完全正常,如果sql_statement是一個有效的SQL語句,但是如果它不是,那麼我得到這樣一個錯誤:
我完全意識到這個錯誤來自一個錯誤的sql語句。我的問題不是如何解決sql語句,而是爲了處理錯誤,以便錯誤對話框不會彈出或崩潰程序。
我已經試過
我已經嘗試添加上面顯示的條款:
If da Is Nothing Then
Return Nothing
Exit Function
End If
但錯誤仍然會出現。我試着看看我的變量da的屬性,它是一個System.Data.OleDb.OleDbDataAdapter,以查看是否有任何屬性要引用一個錯誤,但也沒有運氣。
我也曾嘗試使用簡單的嘗試捕捉結束嘗試,並在錯誤繼續下一步,但仍然出現的對話框。
Try Catch是要走的路,Try Catch錯誤處理程序的嘗試是什麼? – Steve
我試圖從開始是將整個功能完成以及剛剛高亮部分在錯誤發生,但問題仍然即使有 –
取消選中「當這個異常類型拋出箱破發」出現。這應該允許你的try-catch來處理錯誤。 – TnTinMn