Παναγιώτη, φρόντισε στον
VBE να προσθέσεις την αναφορά Microsoft ActiveX Data Objects 2.8 Library (Tools > References).
Κατόπιν σε μια λειτουργική μονάδα (module) πέρασε αυτή τη συνάρτηση:
Κώδικας:
Function CheckIfDatabaseIsInUse()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim i As Integer
Set cn = CurrentProject.Connection
Set rs = cn.OpenSchema(adSchemaProviderSpecific, , "{947bb102-5d43-11d1-bdbf-00c04fb92675}")
While Not rs.EOF
i = i + 1
rs.MoveNext
Wend
If i > 1 Then
MsgBox "Η βάση χρησιμοποιείται ήδη. Η εφαρμογή θα τερματιστεί.", vbInformation
Application.Quit
Else
rs.Close
Set rs = Nothing
End If
End Function
Δημιούργησε μια μακροεντολή (Καρτέλα Δημιουργία > Μακροεντολή) με το όνομα
AutoExec
και πρόσθεσε την ενέργεια "Εκτέλεση κώδικα".
Στο όρισμα συνάρτησης δώσε το
CheckIfDatabaseIsInUse().
Αν ήδη υπάρχει η μακροεντολή
AutoExec, φρόντισε αφού περάσεις την ενέργεια
"Εκτέλεση κώδικα" να την μεταφέρεις στην πρώτη θέση.
Η βάση σου δεν χρειάζεται ειδικές παραμέτρους εκκίνησης μετά τη χρήση των παραπάνω.
Αν οι χρήστες της βάσης είναι περισσότεροι από έναν, η εφαρμογή θα τερματιστεί.
Φιλικά
Τάσος