2009-07-21 17 views
3

他のユーザーが使用しているVB 6.0からMS Accessデータベースを開く方法はありますか?他のユーザーが使用しているVBからMS Accessデータベースを開く

.mdbファイルを更新するサービスがあります。私は定期的にいくつかのパラメータを読んでこのDBを監視したい。

私は単純に、このように(DBを使用しない場合は動作します)DBを開くしようとした場合:

Private Sub Form_Load() 
Dim CurrentDBFileName 
On Error GoTo ErrorHandler 
    Set BaseDB = OpenDatabase("c:\temp\log_db.mdb") 
    Set DestRS = BaseDB.OpenRecordset("current_log_info", dbOpenDynaset) 
    DestRS.MoveFirst 
    CurrentDBFileName = DestRS!CurrentDB 
    BaseDB.Close 
ErrorHandler: 
    Debug.Print Err.Number; Err.Description 
End Sub 

私が取得エラー:

3051をMicrosoft Jetデータベースエンジンは開くことができません。ファイル 'b:\ log_db.mdb'。すでに他のユーザーによって排他的に開かれているか、そのデータを表示するためのアクセス許可が必要です。

どうすればこの問題を回避できますか?

私のものではないため、MDBファイルの更新サービスを変更することはできません。

答えて

3

試してみてください。

Set BaseDB = OpenDatabase("gui_db.mdb", false) 

共有モードでデータベースを開きます。すべてのクライアントが共有モードでデータベースを開く必要があることに注意してください。

0

もちろん、最善の選択肢は、アップデータサービスを書いた人に、排他モードではなく共有モードでデータベースを実際に開くべきであることを納得させることです。

別のオプションは、更新するmdbテーブルを別のバックエンド(別のAccessデータベースまたはSQL Server)に分割することです。その後、サービスがフロントエンドファイルを排他的に開くと、バックエンドファイルは引き続き共有されます。アップデータサービスはその違いを見ることができません。

関連する問題