2017-06-03 11 views
0

Excelからadodb接続オブジェクトを使用してoracleからデータを読み取ろうとしていますが、「oracle -160000データベースは読み取り専用に設定されています」これを解決する方法を教えてください。Excel VBAで読み取り専用に設定されたOracleデータベースからデータを読み取る

+0

は一例でポストを更新しましたワークシートにデータをダンプしたい場合。 – thx1138v2

答えて

0

レコードセットオープンメソッドのLockTypeパラメータを調べ、adLockReadOnlyを使用します。私はOracleに慣れていない。 adOpenForwardOnlyにCursorTypeパラメータが必要な場合もあります。

例:

Dim lobjADOConnection As ADODB.Connection 
Dim lobjADOData As ADODB.Recordset 
Dim lstrSQL As String 

Set lobjADOConnection = New ADODB.Connection 
lobjADOConnection.Open ... 

Set lobjADOData = New ADODB.Recordset 

lstrSQL = "<your query here>" 

lobjADOData.Open lstrSQL, lobjADOConnection, adOpenForwardOnly, adLockReadOnly '<===here 
If Not lobjADOData.BOF Then 
    lobjADOData.MoveFirst 
    Do While Not lobjADOData.EOF 
     DoEvents 
     . 
     . 
     . 

またはあなただけの

Dim lobjTargetSheet As Worksheet 

Set lobjTargetSheet = ThisWorkbook.Sheets("<SomeSheetName>") 
With lobjTargetSheet 
    .Select 
    .Range("1:" & .UsedRange.Rows.count + 1).Delete xlUp 
    .Range("A1").Select 
    .Range("A1").CopyFromRecordset lobjADOData 
End With 
+0

あなたはそれにいくつかのsytanxを与えることができますか? – user3471254

関連する問題