• ベストアンサー

SSMSEを使ったクエリ結果をエクセルで出力したい

SSMSE(SQLServerManagementStudioExpress)を使用してクエリを作成し、問題なく結果が出ました。そのデータをエクセルなどで出力する方法はあるのでしょうか。現在はコピペでやっています。宜しくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

これで試してみてください。 Sub aaa() Const connstr = "Provider=sqloledb;" & _ "Data Source=サーバー名;Initial Catalog=データベース名;User Id=ユーザー名;Password=パスワード; " Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim strSQL As String 'コピペして下さい strSQL = "SSMSE(SQLServerManagementStudioExpress)を使用して作成したクエリ" conn.Open connstr rs.Open strSQL, conn Range("A2").CopyFromRecordset rs rs.Close conn.Close Set rs = Nothing Set conn = Nothing End Sub

smorgas030
質問者

お礼

早速の回答ありがとうございます。 教えてください。 こちらのコードをどうしたらいいでのしょうか。 初心者なのであまりわかっていなくてすいません。

すると、全ての回答が全文表示されます。

その他の回答 (5)

回答No.6

> ちなみにフィールド名(列名?)も一緒に出力することは可能でしょうか。 Sub aaa() Const connstr = "Provider=sqloledb;" & _ "Data Source=サーバー名;Initial Catalog=データベース名;User Id=ユーザー名;Password=パスワード; " Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim strSQL As String 'コピペして下さい strSQL = "SSMSE(SQLServerManagementStudioExpress)を使用して作成したクエリ" conn.Open connstr rs.Open strSQL, conn If rs.EOF = False Then 'フィールド名を取得 Dim i As Integer For i = 0 To rs.Fields.Count - 1 Cells(1, i + 1) = rs.Fields(i).Name Next i Range("A2").CopyFromRecordset rs End if rs.Close conn.Close Set rs = Nothing Set conn = Nothing End Sub 後は、SQL文を自動編集したり、 ツール - マクロ - マクロ - オプションで ショートカットを作ると使い勝手が良くなると思います。 また、ワークシートにボタンや画像を配置しそれをクリックすると データ抽出なんかもできます。

smorgas030
質問者

お礼

ありがとうございます。 フィールド名も出力できました。 ショートカットもできました。 クエリを変更した場合は、VBの中身を都度変更すればいいのですね。 ありがとうございました。

すると、全ての回答が全文表示されます。
回答No.5

ツール - 参照設定で Microsoft ActiveX Data Objects 2.X Library  (2.1 ~ 2.8) を参照して下さい。 > 参照設定がグレーアウトになってできませんでした。 なぜ出来なかったのか分かりませんが 新規ワークシートに先に参照設定することは出来ませんか。

smorgas030
質問者

お礼

ありがとうございます。 できました。 何回も回答ありがとうございました。 ちなみにフィールド名(列名?)も一緒に出力することは可能でしょうか。

すると、全ての回答が全文表示されます。
回答No.4

>エクセル立ち上げて、ツールのマクロからVisualBasicEditorを立ち上げて、いただいたコードをここで使うのかなくらいのレベルです。 すいません。 十分です。 Sub aaa() から End Sub までをコピペし (2)(3)を編集し 実行してみてください。 シートに A2以下に抽出データがあるはずです もし、エラーが出たらエラー内容を教えてください。

smorgas030
質問者

お礼

何度もありがとうございます。 >Sub aaa() から End Sub までをコピペし >(2)(3)を編集し >実行してみてください。 実行したらエラーが出ました。 こんな感じです。 実行のしかたにも自信がないので書いておきます。 VisualBasicEditor ↓ 実行 ↓ Sub/ユーザフォームの実行 ↓ ”コンパイルエラー ユーザ定義型は定義されていません” のエラーメッセージが出ます。 よろしければご指示ください。

smorgas030
質問者

補足

”ユーザ定義型は定義されていません”でググったら、 ツールの参照設定を変更するみたいなことがあったので、 やろうとしたら、参照設定がグレーアウトになってできませんでした。

すると、全ての回答が全文表示されます。
回答No.3

smorgas030さんのレベルが分からないのですが (1)VBAは分かりますか。 ここでNOと言われるとちょっと困るのですが・・・ (2)Const connstr = "Provider=sqloledb;" & _ "Data Source=サーバー名;Initial Catalog=データベース名;User Id=ユーザー名;Password=パスワード; " を smorgas030さんのデータベースの環境に編集する事が出来ますか。 (3)strSQL = "SSMSE(SQLServerManagementStudioExpress)を使用して作成したクエリ" これを、SSMSEからコピペし編集することが出来ますか。 以上、よろしくお願いします。

smorgas030
質問者

お礼

回答ありがとうございます。 (2)(3)は大丈夫です。できます。 (1)はほとんどわかりません。 エクセル立ち上げて、ツールのマクロからVisualBasicEditorを立ち上げて、いただいたコードをここで使うのかなくらいのレベルです。 すいません。 あきらめたほうがよかったでしょうか。

すると、全ての回答が全文表示されます。
回答No.2

NO1です。 言い忘れましたが 参照設定で、 Microsoft ActiveX Data Objects 2.X Library を参照して下さい。

すると、全ての回答が全文表示されます。

関連するQ&A