Поскольку мои исследования привели меня к убеждению, что мои ссылки могут иметь к этому какое-то отношение, вот мои ссылки на мой MS Access:
Моя проблема в том, что я пытаюсь просто вызвать диалоговое окно файла как функцию, в которой возвращаемым значением является выбранный путь к строке. Я начинаю с
Dim fd as filedialog
Set fd = Application.filedialog(msoFileDialogSave)
With fd
...
Теперь решение с димом в порядке, но строка "set" выдает ошибку, говорящую, что метод filedialog для объекта "_application" не удался.
Я рассматривал подобные проблемы здесь, но безуспешно. Я рассчитывал достичь своих целей





Вы можете использовать этот код:
Dim f As Office.FileDialog
Dim varItem As String
Set f = Application.FileDialog(msoFileDialogFilePicker)
With f
.Title = "My Title"
.AllowMultiSelect = False 'or true
.ButtonName = "Select" 'give any name
.Filters.Clear 'clear filter before set new ones
.Filters.Add "Excel files", "*.xl*" 'then create new ones
.Filters.Add "Word files", "*.do*"
.Filters.Add "Access files", "*.mdb; *.accdb"
.FilterIndex = 2 'pre-select one filter
.InitialFileName = "D:\" 'start directory
If .Show Then
' In case of Multiselect use this code
For Each varItem In f.SelectedItems
Debug.Print varItem
Next varItem
' In case of no MultiSelect use this code
SelectedFileName = f.SelectedItems(1)
Else
' User selected cancel
EndIf
End With
End Function
Дополнительные опции:
Нужна ссылка на «Библиотеку объектов Microsoft Office».
Ваши ссылки выглядят нормально, но вы должны использовать правильные константы:
Как видите, ..SaveAs нужно использовать:
Если поможет, проведя мышкой по "msoFileDialogsave", я замечаю, что там пусто