2016-04-04 47 views
0

私はVBAが新しく、ExcelファイルからSQL Serverデータベースへの接続を開くスクリプトを書く上でいくつかの指針が必要です。私はhttps://msdn.microsoft.com/en-us/library/office/gg264383.aspxでVBA言語リファレンスを参照していますが、これがどのように行われたかに関する情報は見つかりません。以下は私が漂ったマクロ有効Excelファイルからこすりするために管理しているものです:DB接続のExcel VBAスクリプト

Sub CopyData() 
    Dim sSQL As String 
    Dim rs As ADODB.Recordset 
    Dim cn As ADODB.Connection 
    Set cn = New ADODB.Connection 
    cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=[Server Name];Initial Catalog=[Catalog];" 
    End With 
End Sub 

私はスクリプトを実行すると、私はエラー「定義されていないユーザー定義型」を受け取ります。そしてラインDim rs AS ADODB.Recordsetが強調表示されます。だからここで私の理解は、ADODB.Recordsetはまだクラスとして定義されていないが、これは組み込みクラスだと思った?これは組み込みクラスではないと仮定すると、このクラスが定義されているソースコードのどこにも見つけることができません。ここでの最終目標は、Excelファイルへの入力に基づいてSQLクエリを実行し、クエリの結果を隣接する列に出力することです。だから私の質問:

1)私はどこでデータベース接続オブジェクトのMicrosoftドキュメントを見つけることができますか? 2)おそらくもっとSQLの質問ですが、接続文字列をどのようにフォーマットする必要がありますか?

+1

としてMicrosoft ActiveXデータは、2.8オブジェクトライブラリを追加します。 "Microsoft"で始まるものの1つである必要があります。 – PKatona

+1

https://msdn.microsoft.com/en-us/library/ms677497(v=vs.85).aspx –

+0

はい、Timは正しいリンクを持っています。 – PKatona

答えて

1
Dim con As ADODB.Connection 
Dim rec As ADODB.Recordset 
Set con = New ADODB.Connection 
Set rec = New ADODB.Recordset 
rec.CursorLocation = adUseClient 
con.Open ("Provider=SQLOLEDB;Data Source=ip;Initial Catalog=dbname;user ID=userid; password=password;") 
Query = "SELECT unique_Id FROM data group by unique_Id;" 
rec.Open Query, con 
Do While rec.EOF() = False 
    'do events 
rec.MoveNext 
Loop 

は、私がどのライブラリわからないんだけど、あなたはツール/参考資料に行くことによって、ライブラリを追加する必要が参考

関連する問題