わかりましたので、渡すクエリ文字列を使用してデータベースをクエリするこの関数があります。現時点では、ワークシートにクエリ結果を出力しています。VBAで計算などを実行するために使用できる範囲として結果を返す関数を取得するにはどうすればよいですか? 次に、この範囲をどのように参照しますか? たとえば、結果の「名前」列を取得します。
Function Access_Data(query As String)
'Requires reference to Microsoft ActiveX Data Objects xx Library
Dim Cn As ADODB.Connection, Rs As ADODB.Recordset
Dim MyConn, sSQL As String
Dim Rw As Long, Col As Long, c As Long
Dim MyField, Location As Range
'Set destination
Set Location = Sheets(1).Range("a1")
'Set source
MyConn = "S:\Docs\Harry\Engine Client\Engine3.accdb"
'Create query
sSQL = query
'Create RecordSet
Set Cn = New ADODB.Connection
With Cn
.Provider = "Microsoft.ACE.OLEDB.12.0"
.Open MyConn
Set Rs = .Execute(sSQL)
End With
'Write RecordSet to results area
Rw = Location.Row
Col = Location.Column
c = Col
Do Until Rs.EOF
For Each MyField In Rs.Fields
Cells(Rw, c) = MyField
c = c + 1
Next MyField
Rs.MoveNext
Rw = Rw + 1
c = Col
Loop
Set Location = Nothing
Set Cn = Nothing
終了機能