アプリ版:「スタンプのみでお礼する」機能のリリースについて

アクセス 既にファイルが開いているのなら開かない(二重起動防止)とするには?

自分なりにコードを考えてみたのですが

Sub Sample()
Dim acApp As Access.Application

Set acApp = CreateObject("Access.Application")
acApp.OpenCurrentDatabase "C:\test.accdb"

'該当のファイルが開いてないのなら、
If acApp.ReadOnly = False Then
acApp.Visible = True
acApp.UserControl = True
End If

End Sub


これだと、.ReadOnlyがコンパイルエラーになります。
どうやらReadOnlyはアクセスには用意されてない用語のようです。

このような場合どうすればいいでしょう?

A 回答 (1件)

Accessファイルがローカルにあるのなら


ファイルを開けば拡張子が
accdb → laccdb
mdb → ldb
のファイルが作成されますので、Dir 関数で調べるのが一番簡単です。
ただし、排他モードで開いた場合は上記ロック情報のファイルは作成されません。
また、Accessが異常終了した場合には上記ファイルは残ったままになることも有り。

別案としては
Dim Ac as object
set ac=getobject("C:\test.accdb").application
・・・以下省略
などもありますが、Accessを前面に持ってくる必要があったりします。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2013/09/23 09:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています