Re: References for VBA



Yes, but you'd think the answer would have implications Office-wide. There
could just as easily be some code I insert into a Word UserForm that worked
in Access that fails to work in Word because of a missing reference, or code
that appears in the Help that fails to work out of the box in ANY office
application.

I asked here because for questions of this type the usual people who respond
here give what I think are better answers than people answering the same
type of question in Access forums, perhaps because most Access users have to
do some form coding eventually, whereas only the top minority of Word users
wind up doing user forms.

-Amy

"Tony Jollans" <No Mail> wrote in message
news:ucFuvO10FHA.1252@xxxxxxxxxxxxxxxxxxxxxxx
>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