2011-11-10 19 views
2

私はSQL DBを照会し、返された値を使用してコンボボックスを作成するコードを書くことを試みてきました。Excel VBA - SQLクエリから配列を取り込む方法

ワークシートに値を返すように質問するとクエリが正常に実行されますが、コンボボックスで使用する配列に格納したいだけです。

は、ここで私は、配列の範囲(「A1」)を交換するかどうかはわかりません

Sub testQuery() 
Dim varConn As String 
Dim SQL As String 
Dim test As String 


Range("A1").CurrentRegion.ClearContents 

varConn = "ODBC; DSN=Traceability DB;UID=XXX;PWD=XXX" 

SQL = "Select Distinct ""Date"" from testtable" 

With ActiveSheet.QueryTables.Add(Connection:=varConn, Destination:=Range("A1"), SQL:=SQL) 
    .Refresh 
End With 

UserForm1.Show 

End Sub 

...私がこれまで持っているものです。

注:これはMAC用の最新バージョンのExcelで使用されています。

ありがとうございました

+0

本当に多くのExcelプログラミングはしませんが、Range( "A1")は単一のセルを参照していませんか? Range( "A1:E15")のようなものでしょうか? – Sparky

答えて

0

レコードセットに保存してください。このような何か:データを通じて

data = rs.GetRows(j) 

、その後ループ:

Set rs = db.OpenRecordset("Select Distinct ""Date"" from testtable") 

は、レコードセット内のレコードにアクセスするには、このようなGetRows なものを使用します。

+0

What/whereはdbとして定義されていますか? – AFJ

+0

私はオンラインで見て、dbを次のように定義するいくつかの例を見つけました:Dim db as Database 私の問題は、このデータ型は何らかの理由で私に利用できないということです。 – AFJ

+0

私はVBAの専門家ではありませんが、適切な参照がないようです。正確なエラーは何ですか? – user194076

関連する問題