Hi,
I've this piece of code written to always open the file in read-write mode (a shared file being used by multiple users at a time - Being used as a database).
Could you please check.. improve the logic or the code or suggest better or simple methods? Thanks a ton
"FolderName" contains the path to the file
"WorkBookName" contains the actual file name
TRYAGAIN:
If FileAlreadyOpen(WorkBookName) Then
CLOSEAGAIN:
On Error GoTo CLOSEAGAIN
Workbooks(WorkBookName).Close False
OPENAGAIN:
On Error GoTo OPENAGAIN
Workbooks.Open FolderName + WorkBookName, , False
Else
If FileAlreadyOpen2(FolderName + WorkBookName) Then
GoTo TRYAGAIN
Else
On Error GoTo TRYAGAIN
Workbooks.Open FolderName + WorkBookName, , False
End If
End If
Workbooks(WorkBookName).Activate
On Error Resume Next
Function FileAlreadyOpen(WorkBookName As String) As Boolean
FileAlreadyOpen = False
On Error GoTo NOFILE
If Len(Application.Workbooks(WorkBookName).Name) > 0 Then FileAlreadyOpen = True
NOFILE:
End Function
Function FileAlreadyOpen2(FullFileName As String) As Boolean
Dim f As Integer
f = FreeFile
On Error Resume Next
Open FullFileName For Binary Access Read Write As #f
Close #f
If Err.Number <> 0 Then
FileAlreadyOpen2 = True
Err.Clear
Else: FileAlreadyOpen2 = False
End If
On Error GoTo 0
End Function
Thanks a lot again...
Bookmarks