(это в Access 2003.)
Я пишу макрос, который открывает форму, позволяющую пользователям вводить путь и имя файла, который они хотят импортировать. Затем он закрывает форму и импортирует данные в указанный файл. У меня есть код, который открывает форму и пользовательский ввод правильно. У меня также есть код, который выполняет импорт / манипулирование данными после получения пути и имени файла.
У меня вопрос: как использовать информацию, введенную в форму в макросе / других подпрограммах после закрытия формы?
Вот простая версия кода моей формы («Введите информацию об импорте»):
Option Compare Database
Option Explicit
Sub RunButton_Click()
FilePathTextBox.SetFocus
DataPath = FilePathTextBox.Text
FileNameTextBox.SetFocus
DataName = FileNameTextBox.Text
DoCmd.Close
End Sub
Вот простая версия моей попытки макроса (которая не удалась):
Option Compare Database
Option Explicit
Option Base 1
Public DataPath As String
Public DataName As String
Public CompleteName As String
Function StartImport()
'Open form to let user enter import file info
DoCmd.OpenForm "Enter Import Info", acNormal, , , , acDialog
'Get complete file path/name. I think this is where the problem is.
CompleteName = DataPath & "\" & DataName
'Import
ImportData
'Data clean up
DataCleanup
End Function
Function ImportData()
'Import CompleteName
'The import code here works fine when CompleteName has the right info
End Function
Sub DataCleanup()
'cleans up the data as needed (using DoCmd.RunSQL). Works fine.
End Sub
Я потратил более 2 часов на поиски решений в Интернете, но не смог их найти. Друг предлагает создать временную таблицу для хранения значений, введенных в форму, в виде строки (то есть таблица будет иметь только 1 поле и 1 запись). Но я не знаю, как извлечь его как строку из таблицы.
Извините за очень длинный пост - я хотел быть максимально ясным.
Заранее спасибо за помощь !!
============== Редактировать (Дополнительная информация)
Исходный код в форме просит пользователя вручную ввести путь и имя файла. Весь код работал тогда.
Однако я хотел избежать ошибок / ошибок, используя FileDialog для определения пути и имени, поэтому я создал подпрограммы, которые вызываются при щелчке по текстовому полю (FileNameTextBox_Click и FilePathTextBox_Click). Код для FileNameTextBox_Click () можно найти здесь: FileDialog не работает
Это влияет на что-нибудь?