G
Guest
i thought these two sub's were identical in calling the function below, but
TestLaunchFileSelector() cases run-time error '91': Object variable or With
block variable not set, whereas TestLaunchFileSelector2() runs fine.
WHY?
Sub TestLaunchFileSelector()
Dim DatabaseFolder As String
DatabaseFolder = "D:\Documents\Ben's Documents\powerpoints\Prayers"
MsgBox (LaunchFileSelector(DatabaseFolder, True))
End Sub
Sub TestLaunchFileSelector2()
MsgBox (LaunchFileSelector("D:\Documents\Ben's
Documents\powerpoints\Prayers", True))
End Sub
Function LaunchFileSelector(Folder, SortMethod As Boolean) As String
'Returns selected filename or "" if none selected, or if cancelled
'SortMethod = True Sort by Title, SortMethod = False Sort By FileName
Dim fs, a, f
Dim s As Integer
Dim FileNamesList As Variant
Dim FileTitlesList() As String
Load FileSelector
Set fs = CreateObject("Scripting.FileSystemObject")
If fs.FolderExists(Folder) Then
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace(Folder)
s = 0
For Each FileName In objFolder.Items
If InStr(1, FileName, ".ppt") Or InStr(1, FileName, ".pps") Then
FileSelector.FilesList.AddItem FileName
FileSelector.FilesList.List(s, 1) =
objFolder.GetDetailsOf(FileName, 10)
s = s + 1
End If
Next FileName
End If
If SortMethod Then
FileNamesList = FileSelector.FilesList.List
FileNamesList = SortFilesList(FileNamesList, True)
FileSelector.FilesList.Clear
FileSelector.FilesList.List = FileNamesList
FileSelector.Sorting.Caption = "Sort by FileName"
Else
FileSelector.Sorting.Caption = "Sort by Title"
End If
FileSelector.Show
'test if an item has been selected
If FileSelector.Tag = "Selected" Then
LaunchFileSelector = FileSelector.FilesList.Value
Else
LaunchFileSelector = ""
End If
FileSelector.Tag = "Not Selected"
Unload FileSelector
End Function
TestLaunchFileSelector() cases run-time error '91': Object variable or With
block variable not set, whereas TestLaunchFileSelector2() runs fine.
WHY?
Sub TestLaunchFileSelector()
Dim DatabaseFolder As String
DatabaseFolder = "D:\Documents\Ben's Documents\powerpoints\Prayers"
MsgBox (LaunchFileSelector(DatabaseFolder, True))
End Sub
Sub TestLaunchFileSelector2()
MsgBox (LaunchFileSelector("D:\Documents\Ben's
Documents\powerpoints\Prayers", True))
End Sub
Function LaunchFileSelector(Folder, SortMethod As Boolean) As String
'Returns selected filename or "" if none selected, or if cancelled
'SortMethod = True Sort by Title, SortMethod = False Sort By FileName
Dim fs, a, f
Dim s As Integer
Dim FileNamesList As Variant
Dim FileTitlesList() As String
Load FileSelector
Set fs = CreateObject("Scripting.FileSystemObject")
If fs.FolderExists(Folder) Then
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace(Folder)
s = 0
For Each FileName In objFolder.Items
If InStr(1, FileName, ".ppt") Or InStr(1, FileName, ".pps") Then
FileSelector.FilesList.AddItem FileName
FileSelector.FilesList.List(s, 1) =
objFolder.GetDetailsOf(FileName, 10)
s = s + 1
End If
Next FileName
End If
If SortMethod Then
FileNamesList = FileSelector.FilesList.List
FileNamesList = SortFilesList(FileNamesList, True)
FileSelector.FilesList.Clear
FileSelector.FilesList.List = FileNamesList
FileSelector.Sorting.Caption = "Sort by FileName"
Else
FileSelector.Sorting.Caption = "Sort by Title"
End If
FileSelector.Show
'test if an item has been selected
If FileSelector.Tag = "Selected" Then
LaunchFileSelector = FileSelector.FilesList.Value
Else
LaunchFileSelector = ""
End If
FileSelector.Tag = "Not Selected"
Unload FileSelector
End Function