まりふのひと

Excel からAccess MDBのテーブルを書き換えるには

Access MDBのテーブルを一括 Excel に落とすことは出来た。その内容を Excel で修正(追加を含む)して、戻したい。
ADO で 1件ずつ書き込むしかないかなぁ〜 できれば一括更新したいのだが...
今日は、Accessで(1)テーブルをクリアし、(2)インポートする マクロを作っておき、そのマクロを Excel から起動するようにしてみた。

  1. Sub レコード追加()
  2. Dim mbTitle As String
  3. Dim objAccess As Object
  4. Dim strSQL As String
  5. Dim mdbFullPath As String
  6. Dim mdbTable As String
  7.  
  8. mbTitle = "レコード追加/" & ThisWorkbook.Name
  9. '接続先のファイル、レコード追加テーブル、追加元を指定
  10. mdbFullPath = ThisWorkbook.Path & "\工数解析.mdb"
  11. mdbTable = "T_品名区分コード対応表"
  12. BoolAns = clearMDBテーブル(mdbFullPath, mdbTable)
  13.  
  14. Set objAccess = CreateObject("Access.Application")
  15. 'mdbを開く
  16. objAccess.OpenCurrentDatabase mdbFullPath
  17. objAccess.DoCmd.RunMacro ("M_品名区分コード対応表インポート")
  18.  
  19. Set objAccess = Nothing
  20.  
  21. End Sub


 試行結果

  1. Excel のバージョンは 2010だが、Accessは 2003なので、xls形式で作成した。
  2. 動作は全く問題なかった。
    • Excelでレコードを追加後、上書き保存していない状態で実行しても Accessには反映された。
      (その後、Excelを上書き保存しないと整合性が無くなることになる)