DAO
 
   
  Sub AddNewRecord()
       ' データベースとテーブルを定義します。
      Dim MyDB As database, MyTable As recordset
      Set MyDB = _
              dbengine.Workspaces(0).OpenDatabase("C:\Sample\NWIND.mdb")
      Set MyTable = MyDB.openrecordset("TestTable")
      With MyTable
          ' 新しいレコードを作成します。
         .AddNew
          ' レコードのキーを設定します。
         !Field1 = "ABCD"
         !Field2 = "XYZ"
          ' 変更内容を保存します。
         .Update
          ' テーブルを閉じます。
         .Close
      End With
      'テーブルのデータをワークシートに書き込み追加されたことを確認します。
      strQrytodo = _
          "SELECT `TestTable`.`Field1` `TestTable`.`Field1` FROM " & _
  "`D:\Sample\NWIND`.`TestTable` `TestTable`"
      Set MyRS = MyDB.openrecordset(strQrytodo)
      ThisWorkbook.Worksheets("sheet1").Activate
      For i = 0 To MyRS.Fields.Count - 1
          ThisWorkbook.Worksheets("sheet1").Range("a1").Offset(0, i).Value _
           = MyRS.Fields(i).Name
      Next
      ThisWorkbook.Worksheets("sheet1").Range("a2").CopyFromRecordset MyRS
       ' データベースを閉じます。
       MyDB.Close
  End Sub

--------------------------------------------------------------------------------
< サンプル1 >
  'レコードセットオブジェクト変数を作成します。
  Sub DAO_Recordset()
      '変数の宣言
      Dim constr As String
      Dim DB As database
      Dim RS As Recordset
      'データベースの設定
      constr = "ODBC;DSN=SQLSrv32;UID=DEMO;PWD=Password;DATABASE=pubs"
      Set DB = OpenDatabase(Name:="pubs", exclusive:=False, _
               ReadOnly:=False, Connect:=constr)
      'レコードセットオブジェクトの作成
      If DB.Updatable = True Then
          Set RS = DB.OpenRecordset("TestTable", dbOpenDynaset)
          'データを追加・更新・削除
          If RS.Updatable = True Then
              With RS
                  '追加
                  .AddNew
                    !Field1 = 123
                    !Field2 = "abc"
                  .Update
                  .Close
                  '更新
                  .Edit
                    !Field1 = 456
                  .Update
                  .Close
                  '削除
                  .Delete
          End If
      End If
  End Sub
  < サンプル2 >
  'SQL を実行し、実行結果をワークシートに表示します。
  Sub DAO_Query()
      '変数の宣言
      Dim DB As database
      Dim RS As Recordset
      Dim i As Integer
      Dim strQrytodo As String
      'データベースの設定
      constr = "ODBC;DSN=SQLSrv32;UID=DEMO;PWD=Password;DATABASE=pubs"
      Set DB = OpenDatabase(Name:="pubs", exclusive:=False, _
               ReadOnly:=False, Connect:=constr)
      'SQL の実行
      strQrytodo = "SELECT * FROM TestTable"
      Set RS = DB.OpenRecordset(strQrytodo)
      'SQL 実行結果をワークシートに表示
      Worksheets("sheet1").Activate
        'フィールド名をワークシートに表示
      For i = 0 To RS.fields.Count - 1
          Worksheets("sheet1").Range("a1").Offset(0, i).Value = _
            RS.fields(i).Name
      Next
        'データをワークシートに表示
      ThisWorkbook.Worksheets("sheet1").Range("a2").CopyFromRecordset RS
  End Sub
  < サンプル3 >
 [参照設定] で[Microsoft DAO 3.6 ObjectLibrary]
Dim MyDatabase As Database
    Set MyDatabase = Workspaces(0).OpenDatabase(App.Path & "\aaa.mdb")
    strSQL = "DELETE FROM tbl WHERE ENDYMD <= #" & strYMD & "#;"
    MyDatabase.Execute strSQL
    'MyDatabase.RecordsAffected
    Set MyDatabase = Nothing