- PR -

SQLサーバーのビューをExcelに出力する方法

1
投稿者投稿内容
みかん
常連さん
会議室デビュー日: 2003/12/13
投稿数: 42
投稿日時: 2006-07-23 13:41
環境:Excel2002、SQLサーバー2000
SQLサーバーのビューをExcelに出力する方法で質問があります。

PC側にODBCの設定をせずに
Excelのコマンドボタンをクリックしたときに
SQLサーバーに接続したいのですがどのようにしたら
よろしいのでしょうか。

インターネットで検索し、
VBAでMicrosoft Jet 4.0 OLE DBやOpendatabaseメソッドを
利用したコードがあったのですが、ODBCの設定が不要であるという
記載がなかったので上記のような質問させていただきました。

ご存知の方、お手数ですが回答を頂けると助かります。


[ メッセージ編集済み 編集者: みかん 編集日時 2006-07-23 13:43 ]
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2006-07-23 13:45
VBA で ADO 使って query を書いてやれば一発ですが?

もちろん ODBC の設定は不要です。
みかん
常連さん
会議室デビュー日: 2003/12/13
投稿数: 42
投稿日時: 2006-07-23 18:46
ご回答いただきありがとうございます。
なんとか以下のようにすることで
データを取得することができました。

Option Explicit
Sub DBconnect()

'接続先に送る接続情報
Dim connect As ADODB.Connection

'接続情報の内容
Dim strConnect As String

'SQL文
Dim strSQL As String

'取得したレコードセットを保存
Dim dbRset As New ADODB.Recordset

'ワークシートの指定
Worksheets("Sheet3").Activate

' 接続を確立する
Set connect = New ADODB.Connection
strConnect = "Provider=SQLOLEDB;Data Source=AAAAAA;"
strConnect = strConnect & "Initial Catalog=Northwind;"
strConnect = strConnect & "User ID=sa;"
strConnect = strConnect & "Password=sa;"
connect.Open strConnect

MsgBox ("接続しました")

' テーブル名,条件を指定してレコードセットを取得する
strSQL = "select * from dbo.categories"
dbRset.Open strSQL, connect, adOpenKeyset, adLockReadOnly
Rows("2:65536").ClearContents

' レコードセットの内容をコピーして貼り付け
Range("A2").CopyFromRecordset dbRset

' レコードセット、データベースを閉じる
dbRset.Close
Set dbRset = Nothing
connect.Close
Set connect = Nothing

End Sub


みかん
常連さん
会議室デビュー日: 2003/12/13
投稿数: 42
投稿日時: 2006-07-23 23:53
うまくいったと思ったのですが、
他のPCで実行したところ以下のようなエラーが
出てしまいました。

実行時エラー
'-2147467259(80004005)':
[DBNMPNTW]ConnectionOpen(CreateFile()).

以下の行で止まってました。
connect.Open strConnect

DBNMPNTWで調べたのですが
SQLサーバーの設定を変える必要があるとのことで
少々困っています。
何かほかに手段がないものでしょうか。
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2006-07-24 00:06
Client の MDAC の version は?

2.6 未満の場合、更新する必要があります。

Universal Data Access 関連ダウンロード

ちなみに最新はこちら

Microsoft Data Access Components (MDAC) 2.8 SP1
みかん
常連さん
会議室デビュー日: 2003/12/13
投稿数: 42
投稿日時: 2006-07-25 15:49
ありがとうございます。
解決いたしました。
1

スキルアップ/キャリアアップ(JOB@IT)