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...