Access2000を操作するプログラムをAccess2007にバージョンアップ時にしなければならないことは?(その後)

解決


Misaki  2008-09-27 00:44:31  No: 101134

以前の質問の続きです。

あれから、「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が含まれていたのですが、何か関係ありますか?


Misaki  2008-09-29 19:01:24  No: 101135

自己レスです。

使い方がおかしかっただけでした。

Dim bret As Boolean
Dim AA As Access.Application
    
Set AA = New Access.Application
↑これが抜けていました。

bret = AA.CompactRepair(DB1, DB2, False)

Set AA = Nothing


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加