Microsoft KB Archive/114837

{|
 * width="100%"|

ACC1x: How to Determine If Database Is Open Exclusively (1.x)

 * }

Q114837

-

The information in this article applies to:


 * Microsoft Access versions 1.0, 1.1

-

SUMMARY
This article describes a method using Access Basic that you can use to determine if a database is open exclusively in Microsoft Access version 1.x.

This article assumes that you are familiar with Access Basic and with creating Microsoft Access applications using the programming tools provided with Microsoft Access. For more information on Access Basic, please refer to the "Introduction to Programming" manual.

MORE INFORMATION
When a database is open exclusively, no other program or process can access that database. When a database is open shared, other programs and processes can get shared access to the database. This article demonstrates how to use the Open statement in Access Basic to determine if a database is open exclusively by using the Open statement's Shared argument to try to access the database file in shared mode. If the database is open exclusively, an error will occur. Trapping for the error determines whether the database is open exclusively or not.

This function may be useful to Access Basic programmers who want to warn their applications' users that a database is open in the wrong mode.

The following steps demonstrate how to determine whether a database is open exclusively:

 Open the sample database NWIND.MDB.  Create a new module and add the following line to the Declarations section:

     Option Explicit   Enter the following function in the module:

     Function IsCurDBExclusive1x  As Integer ' Purpose: Determine if a database is open exclusively. ' Returns: 0 if the database is not open exclusively. '         -1 if the database is open exclusively. '         Err if any error condition is detected.

Dim hFile As Integer Dim DBName As String hFile = FreeFile

'This is the name of the database to test. dbname = "C:\access\nwind.mdb"

If Dir$(DBName) <> "" Then On Error Resume Next Open dbname For Binary Access Read Write Shared As hFile Select Case Err Case 0 IsCurDBExclusive1x = False Case 70 IsCurDBExclusive1x = True Case Else: IsCurDBExclusive1x = Err End Select Close hFile On Error GoTo 0 Else MsgBox "Couldn't find " & dbname & "." End If     End Function

NOTE: Set the variable DBName to the name of the database file that you want to test.  From the View menu, choose Immediate Window. Type the following line in the Immediate window, and then press ENTER:

If IsCurDBExclusive1x=True Then Msgbox "It's Exclusive!"

If the database named in the DBName variable is open exclusively, the message "It's Exclusive!" will appear. If the database is open shared, the message will not appear.