データを抽出する
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 社員;