dポイントプレゼントキャンペーン実施中!

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

A 回答 (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

Range("A2").CopyFromRecordset rs

rs.Close
conn.Close

Set rs = Nothing
Set conn = Nothing


End Sub
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/07/11 14:05

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



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文を自動編集したり、
ツール - マクロ - マクロ - オプションで
ショートカットを作ると使い勝手が良くなると思います。
また、ワークシートにボタンや画像を配置しそれをクリックすると
データ抽出なんかもできます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/07/12 18:29

ツール - 参照設定で


Microsoft ActiveX Data Objects 2.X Library  (2.1 ~ 2.8)
を参照して下さい。

> 参照設定がグレーアウトになってできませんでした。
なぜ出来なかったのか分かりませんが
新規ワークシートに先に参照設定することは出来ませんか。
    • good
    • 0
この回答へのお礼

ありがとうございます。
できました。
何回も回答ありがとうございました。

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

お礼日時:2007/07/12 15:23

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


すいません。

十分です。

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

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

もし、エラーが出たらエラー内容を教えてください。

この回答への補足

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

補足日時:2007/07/12 13:31
    • good
    • 0
この回答へのお礼

何度もありがとうございます。

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

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

VisualBasicEditor

実行

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

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

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

お礼日時:2007/07/12 13:25

smorgas030さんのレベルが分からないのですが



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

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

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

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

以上、よろしくお願いします。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
(2)(3)は大丈夫です。できます。

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

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

お礼日時:2007/07/11 22:01

NO1です。



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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!