voila une astuce que j'utilise pour savoir
si un fichier access est ouvert pour un autre programme
(même si c'est sur un autre poste)
Source / Exemple :
Const FILE_SHARE_READ As Long = &H1
Const FILE_SHARE_WRITE As Long = &H2
Const GENERIC_WRITE As Long = &H40000000
Const GENERIC_READ As Long = &H80000000
Const FILE_ATTRIBUTE_NORMAL As Long = &H80
Const INVALID_HANDLE_VALUE As Long = -1
Const OPEN_EXISTING As Long = 3
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Public Function IsFileOpen(ByVal NomFichier As String)
Dim hFile As Long, HFileRes As Long
hFile = CreateFile(NomFichier, GENERIC_READ Or GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0)
HFileRes = (hFile = INVALID_HANDLE_VALUE)
If Not HFileRes Then Call CloseHandle(hFile)
IsFileOpen = HFileRes
End Function
Conclusion :
Ex:
If IsFileOpen("\\ordi\dossier\bd1.mdb") Then MsgBox "Le fichier est actuellement utilisé"
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.