ADODB.Connectionのオブジェクトを開放するとEXCEL VBAがフリーズします。
フリーズするのは下記★印のタイミングになります。
解決方法がわからず困っているため、ご教示いただけますでしょうか。
'変数 Dim oraCon As New ADODB.Connection Dim oraCmd As New ADODB.Command Dim rs As New ADODB.Recordset Dim constr As String オープン constr = "Provider=OraOLEDB.Oracle" constr = constr & ";Data Source=" & ThisWorkbook.Sheets("設定").Cells(2, 3).Value constr = constr & ";User ID=" & ThisWorkbook.Sheets("設定").Cells(3, 3).Value constr = constr & ";Password=" & ThisWorkbook.Sheets("設定").Cells(4, 3).Value oraCon.ConnectionString = constr oraCon.Open 'SQL実行 rs.Open strSql, oraCon, CursorType:=adOpenStatic '静的カーソル 'クローズ rs.Close Set rs = Nothing Set oraCmd = Nothing
★Set oraCon = Nothing
"Set oraCon = Nothing"をするまえに、"oraCon.Close"してみては
rs.Open の前に
rs.CursorLocation=adUseClient
を入れるとどうなりますか?
ご回答いただき、ありがとうございます。
>"Set oraCon = Nothing"をするまえに、"oraCon.Close"してみては
解決しませんでした。
>rs.CursorLocation=adUseClient
解決しませんでした。
Nothingをする前のoraCon.Stateを教えてください
>Nothingをする前のoraCon.Stateを教えてください
下記のロジックを追加しているため、adStateClosedになります。
>"Set oraCon = Nothing"をするまえに、"oraCon.Close"してみては
追加前はadStateOpenでした。
oraCon.Stateは正常そうなので、色々試してみるしかないと思います。
読み込むDataSourceを変えてみたり、新規Excelファイルにコードをコピペして試すとか。
とりあえずSQL実行をコメントアウトしてみることも。
試してみてください。
回答1件
あなたの回答
tips
プレビュー