ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Implement time-out (https://www.excelbanter.com/excel-programming/444913-implement-time-out.html)

Ludo

Implement time-out
 
Hi,

I'm using following code witch work fine to select a file on a remote
PC, connected via network.
But there's one withdraw:
If the remote PC is too busy, or the network connection fails, there's
no time-out to escape from the routine.
Question now is if it's possible to implement a time-out so that i can
bail out of the routine, and if possible, how to do it.

frmSelectFMT_Log_Kast.Show
If blCancelSelect = False Then Exit Sub
With Application.FileDialog(msoFileDialogOpen)
If inHassKast = 1 Then
.InitialFileName = FMT_LogFiles1 'FMT LOG files kast
1 !!!
.Title = "FMT LOG files kast 1"
Else
.InitialFileName = FMT_LogFiles2 'FMT LOG files kast
2 !!!
.Title = "FMT LOG files kast 2"
End If
.AllowMultiSelect = False
.InitialView = msoFileDialogViewDetails
.Show
'<< hangs when network down or PC too busy to answer
If .SelectedItems.Count = 0 Then Exit Sub
FName = .SelectedItems(1)
End With

Any help is welcome.
Regards,
Ludo

GS[_2_]

Implement time-out
 
Ludo was thinking very hard :
Hi,

I'm using following code witch work fine to select a file on a remote
PC, connected via network.
But there's one withdraw:
If the remote PC is too busy, or the network connection fails, there's
no time-out to escape from the routine.
Question now is if it's possible to implement a time-out so that i can
bail out of the routine, and if possible, how to do it.

frmSelectFMT_Log_Kast.Show
If blCancelSelect = False Then Exit Sub
With Application.FileDialog(msoFileDialogOpen)
If inHassKast = 1 Then
.InitialFileName = FMT_LogFiles1 'FMT LOG files kast
1 !!!
.Title = "FMT LOG files kast 1"
Else
.InitialFileName = FMT_LogFiles2 'FMT LOG files kast
2 !!!
.Title = "FMT LOG files kast 2"
End If
.AllowMultiSelect = False
.InitialView = msoFileDialogViewDetails
.Show
'<< hangs when network down or PC too busy to answer
If .SelectedItems.Count = 0 Then Exit Sub
FName = .SelectedItems(1)
End With

Any help is welcome.
Regards,
Ludo


You couldcheck to see if the network drive is available beforehand
using the following function.

' PathExists()
' Checks if a path to a folder exists.
' Arguments: sPath The full path to search
' Returns: TRUE if sPath exists AND is available
Function PathExists(sPath As String) As Boolean
On Error Resume Next
' "\nul" appended to the path makes it work with empty folders
PathExists = (Dir$(sPath & "\nul") < "")
End Function

To use it...

Sub DoStuff()
If PathExists("\\Server\Share") Then
'//do stuff
End If 'PathExists("\\Server\Share")
End Sub

...which only executes your code if the path exists AND is available.

--
Garry

Free usenet access at http://www.eternal-september.org
ClassicVB Users Regroup! comp.lang.basic.visual.misc



GS[_2_]

Implement time-out
 
Optional usage...

Sub DoStuff()
If PathExists("\\Server\Share") Then
'//do stuff

Else
Dim sMsg As String
sMsg = "The network drive is not available." & vbCrLf
sMsg = sMsg & "Please try again later!"
MsgBox sMsg, vbExclamation
End If 'PathExists("\\Server\Share")
End Sub

..which only executes your code if the path exists AND is available.


--
Garry

Free usenet access at http://www.eternal-september.org
ClassicVB Users Regroup! comp.lang.basic.visual.misc



Ludo

Implement time-out
 
On 31 aug, 15:31, GS wrote:
Optional usage...

* Sub DoStuff()
* * If PathExists("\\Server\Share") Then
* * * '//do stuff


* * * Else
* * * * Dim sMsg As String
* * * * sMsg = "The network drive is not available." & vbCrLf
* * * * sMsg = sMsg & "Please try again later!"
* * * * MsgBox sMsg, vbExclamation

* * End If 'PathExists("\\Server\Share")
* End Sub


..which only executes your code if the path exists AND is available.


--
Garry

Free usenet access athttp://www.eternal-september.org
ClassicVB Users Regroup! comp.lang.basic.visual.misc


Thanks Gary!

Just needed to change PathExists = '(Dir$(sPath & "\nul") < "") into
PathExists = (Dir$(sPath & "\*.log") < "") to get it working.
Otherwise it returned always FALSE.


Keep up the good work!

Regards,
Ludo


GS[_2_]

Implement time-out
 
on 8/31/2011, Ludo supposed :
On 31 aug, 15:31, GS wrote:
Optional usage...

* Sub DoStuff()
* * If PathExists("\\Server\Share") Then
* * * '//do stuff


* * * Else
* * * * Dim sMsg As String
* * * * sMsg = "The network drive is not available." & vbCrLf
* * * * sMsg = sMsg & "Please try again later!"
* * * * MsgBox sMsg, vbExclamation

* * End If 'PathExists("\\Server\Share")
* End Sub


..which only executes your code if the path exists AND is available.


--
Garry

Free usenet access athttp://www.eternal-september.org
ClassicVB Users Regroup! comp.lang.basic.visual.misc


Thanks Gary!

Just needed to change PathExists = '(Dir$(sPath & "\nul") < "") into
PathExists = (Dir$(sPath & "\*.log") < "") to get it working.
Otherwise it returned always FALSE.


Keep up the good work!

Regards,
Ludo


That means you're testing for files, NOT a path. In this case I suggest
you use the following function instead, leaving the PathExists function
unchanged.

' Checks if a file exists in the specified folder
' Arguments: fileName The fullname of the file
' Returns: TRUE if the file exists
Function bFileExists(Filename As String) As Boolean
On Error Resume Next
bFileExists = (Dir$(Filename) < "")
' bFileExists = (FileLen(Filename) < 0) '//optional method
End Function

--
Garry

Free usenet access at http://www.eternal-september.org
ClassicVB Users Regroup! comp.lang.basic.visual.misc




All times are GMT +1. The time now is 11:40 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com