• ベストアンサー

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

  • クエリー出力からEXCELに吐き出す方法

    ACCESS2000を使用しているのですが、 クエリー出力したデータをEXCELに出力させたいのですが、 簡単にできる方法は知りませんか。

  • AccessのレポートからのExcel出力

    当方、Access初級者です。 Access2000ですが、作成したクエリからレポートを表示させ、Excel出力をしたところ列の並びがレポートに表示されている順と変わってしまいます。 クエリの抽出結果からExcel出力すると問題ありません。 レポートはウイザードを使用して作成し、クエリの項目全てがクエリの項目順に表形式に並んでいる簡単なものです。 Excel出力は、「ツール」→「Office Links」→「Excelに出力」で行っております。 原因と解決方法をご教授下さい。

  • Access2000クエリーをExcelに出力するとExcel95で作ってしまいます。

     Access2000でクエリーをExcelに出力するとファイルをExcel95バージョンで作ってしまいます。Excel2000で作ったファイルを開くとき、その出力されたファイルのデータを参照するように組むと、「ファイルが読み込めません」とメッセージが出て参照してくれません。 Access2000でクエリーをExcel2000で出力させる方法はあるのでしょうか?

  • Access(クエリ)→Excel出力

    アンケート調査の結果を集計しています。 初心者なりになんとか条件等追加してクエリを100個近く作りました。 これから報告書(グラフ等使おうと思うのでExcelを考えています)としてまとめようと思うのですが,いちいちクエリを開いてExcelに貼付するのはかなり手間と時間がかかります。 できれば,新規のExcelファイルに,(可能なら同一のシートに)各集計結果を一括で出力できないものでしょうか? 色々と検索してみたのですが,何もかも初めてに近いのでさっぱりでお手上げ状態です。 解決方法をご教授いただけないでしょうか,よろしくお願いいたします。

  • AccessでExcelに出力

    クエリで抽出したデータをエクセルに出力すると、左上から(セルA1)から詰めて表示されますが、たとえばAの行に任意の文、データはBの行から表示させる方法はあるでしょうか。 また、出力するデータを自分で作成した表にはめ込む、もしくははめ込んだ状態で出力させるということは可能でしょうか? よろしくお願いします。

  • Access複数のクエリをExcelの1シートに出力

    お世話になります。 Accessのクエリ結果をVBAでExcelへ出力をしたいと思っています。 内容としては例えば、「Q_aaa」「Q_bbb」「Q_ccc」というクエリの結果をExcel に出力したいのですが、別々のシートではなく、ひとつのシートにまず「Q_aaa」 を出力し、その次の行から「Q_bbb」を、またその次に「Q_ccc」を…という動き をさせたい思っています。 なお、それぞれのクエリ結果のレコード数は決まっていません。 サンプルコード、参考サイト、もしくは考え方でもお教え頂ければ幸いです。 宜しくお願い致します。

  • エクセルのマクロでアクセスのクエリ結果をコピーしたい

    アクセスのクエリ結果をエクセルで編集しているのですが、エクセル側から マクロを登録したボタンをクリックすると、クエリ結果がエクセルにコピー されるようにしたいのです。 アクセスは中身を変更してはいけないということなので、エクセルから自動で コピーできる方法があれば、と思い質問しました。 アクセスは、最初に検索用のフォームに条件を入力して、結果を違うフォームに 表示させています。 現在は結果が出たところでデータベースウィンドウを表示させ、該当するクエリ を開いてそれをエクセルにコピー&ペーストしています。クエリ結果を表示させた フォームをコピー&ペーストすると、セルに色がついてしまうし、データの並びが 違うのでひと手間多くしています。 また、検索に使うクエリは条件によって変わるようで、2種類あります。 (アクセスはよく判らないので、あやふやな説明しかできないのですが、すみません) 今後はこの作業を、パソコンに詳しくない他の人がするというので、 できるだけ作業を簡単にしたいのです。 使っているアプリケーションは、エクセル97とアクセス97です。 ご存知のかた、よろしくお願いします。

  • ACCESSのクエリーからエクセル出力

    ACCESSのクエリーからエクセル出力する方法を探しています。 フォームのボタン押下⇒保存先選択画面表示⇒エクセル出力 という手順を考えていますが、 テーブルをそのまま(保存先も直書き)出力するサンプルは見つかるのですが上記のようなものは見つけられません。 どこかいいサイト、もしくはサンプルなどありませんでしょうか?

  • SQLServer2005 クエリ結果のファイル出力について

    SQLServer2005のストアドプロシジャーにて、 クエリの結果をファイルに出力したいのですが、 どのようにすればよろしいでしょうか? xp_cmdshellでSQLCMDを呼び出す以外に方法はありますか?

  • Access Excel出力する保存先を指定したいのですが?

    Access初心者です。2003です。 7000ほどのデータを70ほどの抽出条件ごとにエクセルにしています。 抽出条件毎にクエリを複数作成し、各クエリが抽出したデータをマクロでエクセルに出力させています。このマクロをクエリ分作成し、別のマクロでその複数マクロをいっせいに実行させています。マクロには「コマンドの実行」で「Excelに出力」を使用しています。このアクションを使用するとマイドキュメントにエクセルが保存されてしまいます。(たまにディスクトップになります。) この保存先を指定したいのです。ダイアログではなく、設定した任意のフォルダにいっせいに収まるようにです。 「出力」アクションだと保存先のダイアログが出てくれますが、クエリの数が多いので手作業が増えてしまいます。「コマンドの実行」のExcel出力ですと手作業が無いのですが、マイドキュメントに保存されてしまいます。 私がツールを作成し、Accessを知らない人間がフォーム画面で使用するのでなるべく自動化したいと考えています。 へたくそな文ですが、どなたか助けてください。