ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

質問者:smorgas030 SSMSEを使ったクエリ結果をエクセルで出力したい
困り度:
  • すぐに回答を!
SSMSE(SQLServerManagementStudioExpress)を使用してクエリを作成し、問題なく結果が出ました。そのデータをエクセルなどで出力する方法はあるのでしょうか。現在はコピペでやっています。宜しくお願いいたします。
質問投稿日時:07/07/11 11:31
質問番号:3157841
この質問に対する回答は締め切られました。
最新から表示回答順に表示良回答のみ表示

回答

 

回答者:chibita_papa > ちなみにフィールド名(列名?)も一緒に出力することは可能でしょうか。

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文を自動編集したり、
ツール − マクロ − マクロ − オプションで
ショートカットを作ると使い勝手が良くなると思います。
また、ワークシートにボタンや画像を配置しそれをクリックすると
データ抽出なんかもできます。
種類:回答
どんな人:経験者
自信:自信あり
回答日時:07/07/12 16:37
回答番号:No.6
この回答へのお礼ありがとうございます。
フィールド名も出力できました。
ショートカットもできました。
クエリを変更した場合は、VBの中身を都度変更すればいいのですね。
ありがとうございました。

回答

 

回答者:chibita_papa ツール − 参照設定で
Microsoft ActiveX Data Objects 2.X Library  (2.1 〜 2.8)
を参照して下さい。

> 参照設定がグレーアウトになってできませんでした。
なぜ出来なかったのか分かりませんが
新規ワークシートに先に参照設定することは出来ませんか。
種類:回答
どんな人:経験者
自信:自信あり
回答日時:07/07/12 14:33
回答番号:No.5
この回答へのお礼ありがとうございます。
できました。
何回も回答ありがとうございました。

ちなみにフィールド名(列名?)も一緒に出力することは可能でしょうか。

回答

 

回答者:chibita_papa >エクセル立ち上げて、ツールのマクロからVisualBasicEditorを立ち上げて、いただいたコードをここで使うのかなくらいのレベルです。
すいません。

十分です。

Sub aaa() から End Sub までをコピペし
(2)(3)を編集し
実行してみてください。

シートに A2以下に抽出データがあるはずです

もし、エラーが出たらエラー内容を教えてください。
種類:アドバイス
どんな人:経験者
自信:自信あり
回答日時:07/07/12 08:22
回答番号:No.4
この回答への補足”ユーザ定義型は定義されていません”でググったら、
ツールの参照設定を変更するみたいなことがあったので、
やろうとしたら、参照設定がグレーアウトになってできませんでした。
この回答へのお礼何度もありがとうございます。

>Sub aaa() から End Sub までをコピペし
>(2)(3)を編集し
>実行してみてください。

実行したらエラーが出ました。
こんな感じです。
実行のしかたにも自信がないので書いておきます。

VisualBasicEditor

実行

Sub/ユーザフォームの実行

”コンパイルエラー
ユーザ定義型は定義されていません”

のエラーメッセージが出ます。
よろしければご指示ください。

回答

 

回答者:chibita_papa smorgas030さんのレベルが分からないのですが

(1)VBAは分かりますか。
ここでNOと言われるとちょっと困るのですが・・・

(2)Const connstr = "Provider=sqloledb;" & _
"Data Source=サーバー名;Initial Catalog=データベース名;User Id=ユーザー名;Password=パスワード; "

smorgas030さんのデータベースの環境に編集する事が出来ますか。

(3)strSQL = "SSMSE(SQLServerManagementStudioExpress)を使用して作成したクエリ"
これを、SSMSEからコピペし編集することが出来ますか。

以上、よろしくお願いします。
種類:補足要求
どんな人:経験者
自信:自信あり
回答日時:07/07/11 15:56
回答番号:No.3
この回答へのお礼回答ありがとうございます。
(2)(3)は大丈夫です。できます。

(1)はほとんどわかりません。
エクセル立ち上げて、ツールのマクロからVisualBasicEditorを立ち上げて、いただいたコードをここで使うのかなくらいのレベルです。
すいません。

あきらめたほうがよかったでしょうか。

回答

 

回答者:chibita_papa NO1です。

言い忘れましたが
参照設定で、
Microsoft ActiveX Data Objects 2.X Library
を参照して下さい。
種類:アドバイス
どんな人:経験者
自信:自信あり
回答日時:07/07/11 13:13
回答番号:No.2
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

良回答20pt

回答者:chibita_papa これで試してみてください。

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
種類:回答
どんな人:経験者
自信:自信あり
回答日時:07/07/11 13:10
回答番号:No.1
この回答へのお礼早速の回答ありがとうございます。
教えてください。
こちらのコードをどうしたらいいでのしょうか。
初心者なのであまりわかっていなくてすいません。
最新から表示回答順に表示良回答のみ表示