データを抽出する
Sub SQLでデータ取得()
Dim myCon As New ADODB.Connection, myRS As New ADODB.Recordset
Dim mySrc As String, mySQL As String
Dim i As Integer, j As Integer
'接続先データベース
mySrc = ThisWorkbook.Path & "\mdb\4-sampleDB.mdb"
'実行するSQLが記述してあるセル
mySQL = Range("J1")
'接続
myCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & mySrc
'レコードセットを取得後、フィールドを含めて転記
With myRS
.Open mySQL, myCon
For i = 0 To .Fields.Count - 1
Range("A1").Offset(0, i) = .Fields(i).Name
Next
Range("A2").CopyFromRecordset myRS
End With
myRS.Close: Set myRS = Nothing
myCon.Close: Set myCon = Nothing
End Sub
SELECT命令を使用する
SELECT 取り出したいフィールド FROM テーブル;
以下のSQLは上記リストを使用してデータを操作する。
セル「J1番地」にSQLを記述して、実行。
取り出し元テーブル
すべてのフィールドを取り出す
select * from 社員;
任意のフィールドのみを取り出す
select 氏名,年齢 from 社員;
フィールドの順番を並べ替えて抽出する
select 氏名,フリガナ,年齢,所属,社員ID from 社員;

