以前の質問の続きです。
あれから、「Microsoft.JET.OLEDB.4.0」を「Microsoft.ACE.OLEDB.12.0」に変更することで、ほぼ対応できました。ありがとうございました。
1つ問題があります。
ソース内に最適化している部分があり、JROを使用していますが、魔界の仮面弁士さんが書いてくれた通り、Access2007形式ではだめみたいです。
DAOを使うことはなるべくやめてくれとのことですので、AccessのApplication.CompactRepairメソッドを使用したいと思ったのですが、
エラーが出ます。(実行時エラー'91':オブジェクト変数またはwithブロック変数が設定されていません)
ソースは下記です。
Dim bret As Boolean
Dim AA As Access.Application
bret = AA.CompactRepair(db1.accdb,db2.accdb)
何か間違った使い方をしているのでしょうか??
db1、db2は実際にはフルパスで指定しています。
※「サンドボックスモードでブロックされるAccess2007の関数」というのにCompactRepairが含まれていたのですが、何か関係ありますか?
自己レスです。
使い方がおかしかっただけでした。
Dim bret As Boolean
Dim AA As Access.Application
Set AA = New Access.Application
↑これが抜けていました。
bret = AA.CompactRepair(DB1, DB2, False)
Set AA = Nothing