Здравствуйте и спасибо, что посмотрели мой вопрос. Я пытаюсь получить скрипт, работающий для экспорта набора Excel-таблиц из базы данных Access 2007. У меня есть экспорт и другие функции, работающие достаточно хорошо, это функция сохранения, которая вызывает у меня проблемы. Моя текущая реализация - это окно сообщения, которое появляется пользователю с запросом имени папки. Это позволяет пользователю ввести существующее имя папки для сохранения в этой папке, но только если эта папка уже существует и находится в каталоге Мои документы. Для меня это функционально, но не совсем то, к чему я хочу, чтобы мой клиент был вынужден иметь дело. Есть ли способ получить простое «Сохранить как» или другое диалоговое окно сохранения файла по умолчанию? У меня есть сценарий импорта, работающий на другом конце, который работает с открытым файлом по умолчанию, я что-то упускаю? Скрипт ниже:Сохранение пользовательского экспорта из сценария Access 2007
Private Sub btnExport_Click()
On Error GoTo Err_Command38_Click
Dim strPath As String
strPath = InputBox("Enter an existing folder name, or enter a file path.", "Export")
Beep
MsgBox "Report will now be exported to the " & strPath & " folder in My Documents"
Dim strDocName As String
strDocName = "DatabaseExport" + Date$ + ".xlsx" 'Enter your filename here
DoCmd.SetWarnings False
DoCmd.TransferSpreadsheet acExport, 10, "tblBenefit", strPath + "/" + strDocName, True
DoCmd.TransferSpreadsheet acExport, 10, "tblBenefitDispensation", strPath + "/" + strDocName, True
DoCmd.TransferSpreadsheet acExport, 10, "tblCourse", strPath + "/" + strDocName, True
DoCmd.TransferSpreadsheet acExport, 10, "tblCourseEnrollment", strPath + "/" + strDocName, True
DoCmd.TransferSpreadsheet acExport, 10, "tblDistinguishedStudent", strPath + "/" + strDocName, True
DoCmd.TransferSpreadsheet acExport, 10, "tblEvent", strPath + "/" + strDocName, True
DoCmd.TransferSpreadsheet acExport, 10, "tblEventFacultyAttendee", strPath + "/" + strDocName, True
DoCmd.TransferSpreadsheet acExport, 10, "tblEventPresenter", strPath + "/" + strDocName, True
DoCmd.TransferSpreadsheet acExport, 10, "tblEventsUniversityParticipant", strPath + "/" + strDocName, True
DoCmd.TransferSpreadsheet acExport, 10, "tblForeignLanguageKnowledge", strPath + "/" + strDocName, True
DoCmd.TransferSpreadsheet acExport, 10, "tblLanguage", strPath + "/" + strDocName, True
DoCmd.TransferSpreadsheet acExport, 10, "tblGrant", strPath + "/" + strDocName, True
DoCmd.TransferSpreadsheet acExport, 10, "tblOrganization", strPath + "/" + strDocName, True
DoCmd.TransferSpreadsheet acExport, 10, "tblProgramRole", strPath + "/" + strDocName, True
DoCmd.TransferSpreadsheet acExport, 10, "tblRole", strPath + "/" + strDocName, True
DoCmd.TransferSpreadsheet acExport, 10, "tblStudent", strPath + "/" + strDocName, True
DoCmd.TransferSpreadsheet acExport, 10, "tblStudyAbroad", strPath + "/" + strDocName, True
DoCmd.TransferSpreadsheet acExport, 10, "tblStudyAbroadParticipation", strPath + "/" + strDocName, True
DoCmd.TransferSpreadsheet acExport, 10, "tblTripLocation", strPath + "/" + strDocName, True
DoCmd.TransferSpreadsheet acExport, 10, "tblUniDegreeProgram", strPath + "/" + strDocName, True
DoCmd.TransferSpreadsheet acExport, 10, "tblUniFacultyActivity", strPath + "/" + strDocName, True
DoCmd.TransferSpreadsheet acExport, 10, "tblUniParticipantStudentAttendee", strPath + "/" + strDocName, True
DoCmd.TransferSpreadsheet acExport, 10, "tblUniParticipantFacultyAttendee", strPath + "/" + strDocName, True
DoCmd.TransferSpreadsheet acExport, 10, "tblUniversity", strPath + "/" + strDocName, True
DoCmd.TransferSpreadsheet acExport, 10, "tblUniversityFaculty", strPath + "/" + strDocName, True
MsgBox "Export Complete!", vbOKOnly, ""
DoCmd.SetWarnings True
Exit_Command38_Click:
Exit Sub
Err_Command38_Click:
MsgBox Err.Description
Resume Exit_Command38_Click
End Sub
--- Конец сценария
Я попытался подставляя метод InputBox с чем-то вроде
Dim fileSelection As Object
Set fileSelection = Application.FileDialog(2)
fileSelection.Show
Set strPath = fileSelection
Но что бросает "объект требуемого" ошибку на Set strPath линия. Любая помощь, которую вы можете предложить, ценится, спасибо!
Спасибо за ваш ответ Gord! Ты был прав на деньги с этим. Мне пришлось изменить параметр TransferSpreadsheet, чтобы удалить мое собственное имя файла, но я в порядке, если пользователь получает знакомый диалог сохранения файлов. Еще раз спасибо! –
@MiguetSchwab Добро пожаловать! Спасибо, что принял мой ответ. –