Re: References for VBA



I think you should ask this in an Access newsgroup. The code works as
advertised in Word but does not work in Access because the Office library is
not set as a reference by default - I do not know whether the help or the
application is at fault.

--
Enjoy,
Tony


"Amy Blankenship" <Amy_nospam@xxxxxxxxxxxxxxxxxxxxxx> wrote in message
news:OqiDel00FHA.3756@xxxxxxxxxxxxxxxxxxxxxxx
> My code:
> In Word:
>
> Private Sub OutputBrowse_Click()
> Dim dlg As FileDialog
> Set dlg = Application.FileDialog(msoFileDialogFolderPicker)
> If GetDirectory.InputDirectory.Value <> "" Then
> dlg.InitialFileName = GetDirectory.InputDirectory.Value
> Else
> dlg.InitialFileName = "C:\"
> End If
> If dlg.Show = -1 Then
> OutputDirectory.Value = dlg.SelectedItems(1)
> Call EnableButton
> End If
> End Sub
>
> In Access:
>
> Sub GetFile(Control)
> Dim retFile As String, dlg As Variant, s As String
> Set dlg = Application.FileDialog(msoFileDialogFilePicker)
> With dlg
> .InitialFileName = CodeProject.Path
> If .Show = -1 Then s = .SelectedItems(1)
> End With
> If s <> "" Then
> retFile = Right(s, Len(s) - InStrRev(s, "\"))
> Control.Value = retFile
> End If
>
> The Help
> In Word:
> FileDialog Object
> Provides file dialog box functionality similar to the functionality of the
> standard Open and Save dialog boxes found in Microsoft Office
applications.
> With these dialog boxes, users of your solutions can easily specify the
> files and folders that your solution should use.
>
> Using the FileDialog object
> Use the FileDialog property to return a FileDialog object. The FileDialog
> property is located in each individual Office application's Application
> object. The property takes a single argument, DialogType, that determines
> the type of FileDialog object that the property returns. There are four
> types of FileDialog object:
>
> a.. Open dialog box - lets users select one or more files that you can
> then open in the host application using the Execute method.
> b.. SaveAs dialog box - lets users select a single file that you can
then
> save the current file as using the Execute method.
> c.. File Picker dialog box - lets users select one or more files. The
file
> paths that the user selects are captured in the FileDialogSelectedItems
> collection.
> d.. Folder Picker dialog box - lets users select a path. The path that
the
> user selects is captured in the FileDialogSelectedItems collection.
> Each host application can only instantiate a single instance of the
> FileDialog object. Therefore, many of the properties of the FileDialog
> object persist even when you create multiple FileDialog objects.
Therefore,
> make sure that you've set all of the properties appropriately for your
> purpose before you display the dialog box.
>
> In order to display a file dialog box using the FileDialog object, you
must
> use the Show method. Once a dialog box is displayed, no code will execute
> until the user dismisses the dialog box. The following example creates and
> displays a File Picker dialog box and then displays each selected file in
a
> message box.
>
> Sub Main()
>
> 'Declare a variable as a FileDialog object.
> Dim fd As FileDialog
>
> 'Create a FileDialog object as a File Picker dialog box.
> Set fd = Application.FileDialog(msoFileDialogFilePicker)
>
> 'Declare a variable to contain the path
> 'of each selected item. Even though the path is a String,
> 'the variable must be a Variant because For Each...Next
> 'routines only work with Variants and Objects.
> Dim vrtSelectedItem As Variant
>
> 'Use a With...End With block to reference the FileDialog object.
> With fd
>
> 'Use the Show method to display the File Picker dialog box and
> return the user's action.
> 'The user pressed the action button.
> If .Show = -1 Then
>
> 'Step through each string in the FileDialogSelectedItems
> collection.
> For Each vrtSelectedItem In .SelectedItems
>
> 'vrtSelectedItem is a String that contains the path of
each
> selected item.
> 'You can use any file I/O functions that you want to work
> with this path.
> 'This example simply displays the path in a message box.
> MsgBox "The path is: " & vrtSelectedItem
>
> Next vrtSelectedItem
> 'The user pressed Cancel.
> Else
> End If
> End With
>
> 'Set the object variable to Nothing.
> Set fd = Nothing
>
> End SubIn Access:
>
> FileDialog Object
> Provides file dialog box functionality similar to the functionality of the
> standard Open and Save dialog boxes found in Microsoft Office
applications.
> With these dialog boxes, users of your solutions can easily specify the
> files and folders that your solution should use.
>
> Using the FileDialog object
> Use the FileDialog property to return a FileDialog object. The FileDialog
> property is located in each individual Office application's Application
> object. The property takes a single argument, DialogType, that determines
> the type of FileDialog object that the property returns. There are four
> types of FileDialog object:
>
> a.. Open dialog box - lets users select one or more files that you can
> then open in the host application using the Execute method.
> b.. SaveAs dialog box - lets users select a single file that you can
then
> save the current file as using the Execute method.
> c.. File Picker dialog box - lets users select one or more files. The
file
> paths that the user selects are captured in the FileDialogSelectedItems
> collection.
> d.. Folder Picker dialog box - lets users select a path. The path that
the
> user selects is captured in the FileDialogSelectedItems collection.
> Each host application can only instantiate a single instance of the
> FileDialog object. Therefore, many of the properties of the FileDialog
> object persist even when you create multiple FileDialog objects.
Therefore,
> make sure that you've set all of the properties appropriately for your
> purpose before you display the dialog box.
>
> In order to display a file dialog box using the FileDialog object, you
must
> use the Show method. Once a dialog box is displayed, no code will execute
> until the user dismisses the dialog box. The following example creates and
> displays a File Picker dialog box and then displays each selected file in
a
> message box.
>
> Sub Main()
>
> 'Declare a variable as a FileDialog object.
> Dim fd As FileDialog
>
> 'Create a FileDialog object as a File Picker dialog box.
> Set fd = Application.FileDialog(msoFileDialogFilePicker)
>
> 'Declare a variable to contain the path
> 'of each selected item. Even though the path is a String,
> 'the variable must be a Variant because For Each...Next
> 'routines only work with Variants and Objects.
> Dim vrtSelectedItem As Variant
>
> 'Use a With...End With block to reference the FileDialog object.
> With fd
>
> 'Use the Show method to display the File Picker dialog box and
> return the user's action.
> 'The user pressed the action button.
> If .Show = -1 Then
>
> 'Step through each string in the FileDialogSelectedItems
> collection.
> For Each vrtSelectedItem In .SelectedItems
>
> 'vrtSelectedItem is a String that contains the path of
each
> selected item.
> 'You can use any file I/O functions that you want to work
> with this path.
> 'This example simply displays the path in a message box.
> MsgBox "The path is: " & vrtSelectedItem
>
> Next vrtSelectedItem
> 'The user pressed Cancel.
> Else
> End If
> End With
>
> 'Set the object variable to Nothing.
> Set fd = Nothing
>
> End SubNote that there is nothing in either help mentioning a needed
> reference, yet in Word it "just works." In Access, it doesn't.
>
> -Amy
>
> "Jonathan West" <jwest@xxxxxxxx> wrote in message
> news:uw2oPRw0FHA.2064@xxxxxxxxxxxxxxxxxxxxxxx
> >
> > "Amy Blankenship" <Amy_nospam@xxxxxxxxxxxxxxxxxxxxxx> wrote in message
> > news:u2x8e$Z0FHA.3780@xxxxxxxxxxxxxxxxxxxxxxx
> >> But the code I used was in the Help for both Access and Word. In Word
it
> >> just worked, whereas in Access I had to check various references until
I
> >> could make it work. In neither place did it mention that any
references
> >> were needed. That's the point...I got the code out of the Help files
for
> >> Word and I saw the identical code in the Help files in Access, but in
> >> neither place did it mention that the functionality wouldn't just work
> >> "out of the box." If it isn't Microsoft's responsibility to document
what
> >> you need to do to make the code in their own help files work, then
whose
> >> is it? Are developers supposed to just GUESS, like I did? That seems
to
> >> be a bit of an odd attitude for a company the size of Microsoft to take
> >> for their products.
> >
> >
> > Show us the relevant code
> >
> >
> > --
> > Regards
> > Jonathan West - Word MVP
> > www.intelligentdocuments.co.uk
> > Please reply to the newsgroup
> > Keep your VBA code safe, sign the ClassicVB petition www.classicvb.org
>
>


.


Loading