- 締切済み
「excelがaccessを占有している」
「excelがaccessを占有している」 accessのデータをexcelからマクロで呼び出すファイルがあります。 このファイルが開いており、かつ一度でもこのマクロを実行すると、 accessが読み取り専用になってしまいます。 excelを閉じれば、またaccessが使えるようになります。 excelのファイルを開いた状態で、accessが読み取り専用に ならない手段が知りたいです。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- piroin654
- ベストアンサー率75% (692/917)
Accessへの接続はどのようにされているか分かりませんが、 たとえば、 Dim appAc As Access.Application Set appAc = CreateObject("Access.Application") のように作った変数appAcを利用している場合は、 処理が終わったら、プロシージャの終わりに 以下のようにして、 appAc.Quit Set appAc = Nothing 接続を切り、オブジェクトを破棄します。そうしないと、 OSのプロセスにタスクが残り、Accessが 読み取りでしか開けなくなります。これは AccessからExcelに同様の方法で接続した 場合も同じです。 また、AccessのテーブルにADO、あるいはDAOで 接続した場合も接続に使ったレコードセットの変数、 データベースの変数なども同様に処理します。
- DreamyCat
- ベストアンサー率56% (295/524)
オフィス製品のExcelでも WordでもPro版までは、デフォールト設定だと1つのファイルを別々のところから開こうとすると読み取り専用になりますが、アクセスでも同じではありませんか? すでに開いているときに誰かが開いて編集しようとしたら困ります。 Excelの場合は「Bookの共有」機能がありますから、これで読み取り専用にせずに済むはずです。 アクセスにもあると思いますから探してみてください。ただし、エクセル側の共有機能には「テーブルを含むと共有できません」となっているのでそのあたりも確認してください。