2016-04-01 113 views
-4

まず、他のスレッドを見て、特定のSQL実行のみでこのエラーが発生したため、指定されたすべての回答が役に立たなかった。 select *でデュアルからSQLを実行しようとすると、エラーメッセージが表示されませんでした。以下はVBAマクロの実行時エラー-2147467259(80004005)

enter image description here

私のVBAコード

Set cn = CreateObject("ADODB.Connection") 
Set rs = CreateObject("ADODB.Recordset") 
    StrCon = "Driver={Microsoft ODBC for Oracle}; " & _ 
      "CONNECTSTRING=(DESCRIPTION=" & _ 
      "(ADDRESS=(PROTOCOL=TCP)" & _ 
      "(HOST=dhotname)(PORT=1521))" & _ 
      "(CONNECT_DATA=(SERVICE_NAME=APSQ))); uid=username; pwd=password;" 
cn.Open (StrCon) 
vSQL = "select * from request" 
rs.Open vSQL, cn 
+1

あなたは本当に私たちは、あなたが任意のコードを提供せずに、あなたを助けたいですか? –

+0

この質問には何も、誰にも役立つと思われる回答はありません - VTC。 –

+0

あなたがGoogle "80004005 Microsoft"の場合、手がかりを得るでしょう。場合によっては、データベースが別の「ユーザー」によってロックされるのと同じくらい簡単です。 – BryanT

答えて

-2

である私は私のために働いている、ここに解決策を入れています。他の同様のポストでは、接続上の問題以上のものでしたが、私のシナリオでは、テーブルの列の1つにアクセスしようとしています。私のテーブルでは、私はtimeStampを持っている列を持っていた、それは例外を除いて働いていたその列の書式を削除または使用すると、上記のエラーを引き起こしていた列です。私はこのエラーがもっと説明的であったのだろうかと思う。なぜなら、私のSQLを修正するのではなく、他のものを試す時間を費やすからだ。

解決方法:上記の例を見れば

Set cn = CreateObject("ADODB.Connection") 
Set rs = CreateObject("ADODB.Recordset") 
    StrCon = "Driver={Microsoft ODBC for Oracle}; " & _ 
      "CONNECTSTRING=(DESCRIPTION=" & _ 
      "(ADDRESS=(PROTOCOL=TCP)" & _ 
      "(HOST=dhotname)(PORT=1521))" & _ 
      "(CONNECT_DATA=(SERVICE_NAME=APSQ))); uid=username; pwd=password;" 
cn.Open (StrCon) 
vSQL = "select request_id,user_name from request" 
rs.Open vSQL, cn 

今私は、正確な列名を指定して、ここでの問題は、時間の値を持っていたREC_DT列でした。その値を変換したり、列を削除したりすることができます。値は必要ではないので、私のSQLから削除して機能させました。

enter image description here

関連する問題