2016-12-14 12 views
0

SQLクエリをExcelにコピーするために、VBAでマクロを作成または採用しようとしています。 私はそれを接続して実行しています。私はSQLで手動で実行すると、これはSQLのエラーコードです:VBAマクロを使用してSQLエラーコードをExcelにコピーする

Msg 3701, Level 11, State 5, Line 1 
Cannot drop the table '#MSP_History3', because it does not exist or you do not have permission. 

(8661 row(s) affected) 
Msg 3701, Level 11, State 5, Line 1 
Cannot drop the table '#MSP1', because it does not exist or you do not have permission. 

(8661 row(s) affected) 
Msg 3701, Level 11, State 5, Line 1 
Cannot drop the table '#MSP_PBP', because it does not exist or you do not have permission. 

(8661 row(s) affected) 
Msg 3701, Level 11, State 5, Line 1 
Cannot drop the table 'dbo.MSP_History', because it does not exist or you do not have permission. 
Msg 262, Level 14, State 1, Line 1 
CREATE TABLE permission denied in database 'master'. 

はない偉大なクエリのように見えますが、何を私に興味は影響を受けた行の数です。ここで

は私よりも多くの業者がA1でテーブル結果を貼り付けるために働く別のクエリを使用していたことをVBAコードの後半部分である:

'Open the connection. 
cn.Open strConn 
' 
'Set and Execute SQL Command 
Set cmd1.ActiveConnection = cn 
cmd1.CommandText = SQLquery 
cmd1.CommandType = adCmdText 
cmd1.Execute 

'Open Recordset 
Set rs1.ActiveConnection = cn 
rs1.Open cmd1 

'Paste Column Headers into Spreadsheet 
    For Col = 0 To rs1.Fields.Count - 1 
    Range("A1").Offset(0, Col).Value = rs1.Fields(Col).Name 
    Next 

'Copy Data to Excel 
ActiveSheet.Range("A2").CopyFromRecordset rs1 
Cells.Select 
Cells.EntireColumn.AutoFit 

このコードは、適切に実行するために動作しますSQLクエリ。エラーメッセージをコピーする方法はありますか?

私がExcelのセルA1で望むのは理想的には "8661"です。

ありがとうございます!

編集:現在、「cmd1.Execute」行を実行時にVBAでのエラーメッセージは次のとおりです。

Run-time error '-2147217900 (80040e14)': Automation error 

答えて

0

たぶん、あなたは、このコードを試すことができます...それは、メッセージボックスにエラーが表示されます。

Option Explicit 

Public Sub Connect() 

On Error GoTo InvalidValue: 

Dim myCn As MyServer 
Set myCn = New MyServer 

Dim rs As ADODB.Recordset 
Set rs = New ADODB.Recordset 

rs.Open "Select * from myTable", myCn.GetConnection 

Range("A1").CopyFromRecordset rs 

rs.Close 
myCn.Shutdown 

Set rs = Nothing 
Set myCn = Nothing 

Exit Sub 

InvalidValue: 

MsgBox Err.Number & " " & Err.Description 

End Sub 
+0

ありがとうございます! エラーコードは、SQLエラーコードの2行目を示しています。 "-2147217865テーブルが存在しないか、権限がないため、テーブル '#MSP_History3'を削除できません。 残りの部分を取得する方法や次の行についてのアイデアはありますか?影響を受ける行の数が私が探しているものです。 –

+0

あなたの歓迎!それはあなたのために便利だったのでうれしい!そのクエリを実行するのに十分な権限がないようです...他のユーザーとログインしようとしましたか? –

+0

私は分かりません...私はあなたをもっと助けることはできません...私はこのコードを一度見つけたので、あなたにとって役に立つと思いました... –

関連する問題