基本
Dim rs As New ADODB.Recordset 'フィールドを設定 With rs.Fields .Append "ID", adInteger, 4 .Append "名前", adVarWChar, 20, adFldIsNullable 'Null許可 .Append "年齢", adInteger .Append "生年月日", adDate End With rs.Open '表へのアクセスを利用可能にする On Error GoTo Err '値を登録(1件目) rs.AddNew rs("ID") = 1 rs("名前") = "高橋" rs("年齢") = 31 rs("生年月日") = "2018 / 11 / 23 10:11:12" rs.Update '登録を確定 '値を登録(2件目) With rs .AddNew !ID = 2 !名前 = Null 'Emptyでも可 !年齢 = 19 !生年月日 = #11/23/2018 10:11:00 PM# .Update '登録を確定 End With '1レコードずつ処理 rs.MoveFirst Do Until rs.EOF Debug.Print rs!名前 rs.MoveNext Loop 'セルに張り付け rs.MoveFirst '最初の行へ移動 Range("A1").CopyFromRecordset rs '二次元配列に格納 Dim arry As Variant rs.MoveFirst '最初の行へ移動 arry = rs.GetRows Finally: rs.Close: Set rs = Nothing Exit Sub Err: MsgBox "エラー番号:" & Err.Number & vbCrLf & "エラー内容:" & Err.Description, vbOKOnly + vbCritical Resume Finally
フィールド
名前 | 説明 |
---|---|
adInteger | 整数型 |
adVarChar | 文字列・全角が2桁 |
adVarWChar | 文字列・最長255桁・全角が1桁 |
adDouble | 浮動小数型 |
adDate | 日付型 |
adBoolean | Yes|No型 |
ソート
ASCで昇順(省略可)、DESCで逆順
rec.Sort = "ID, 名前" rec.Sort = "ID, 名前 DESC" '解除 rec.Sort = ""
フィルター
rec.Filter = "名前='高橋' AND 生年月日 = 1988/11/09" rec.Filter = "名前 Like '%高*'" rec.Filter = "ID >= 2" '解除 rec.Filter = ""
検索
rec.Find ("ID = 2")
ブックマーク
カーソルが指している行位置を保存できる
Dim bm As Variant '保存 bm = rec.Bookmark '呼出 rec.Bookmark = bm