(这是在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
我花了两个多小时在互联网上寻找解决方案,但找不到一个。一位朋友建议创建一个临时表,将表单中输入的值存储为字符串(表示该表只有1个字段和1个记录)。但我不知道如何将它作为一个字符串从表中检索出来。
很抱歉很长的帖子 - 我希望尽可能清楚。 感谢您的帮助!!
==============编辑(附加信息)
表单中的原始代码要求用户手动键入路径和文件名。整个代码当时正在运作。
但是,我想通过使用FileDialog来确定路径和名称来避免错误/错误,因此我创建了在单击文本框时调用的subs(FileNameTextBox_Click和FilePathTextBox_Click)。可以在此处找到FileNameTextBox_Click()的代码:FileDialog doesn't work
这会影响什么吗?
答案 0 :(得分:0)
我发表评论说我无法让你的代码失败。然后我想我应该像你一样做所有事情。我不明白为什么改变一些名字会有所不同,但确实如此。
使用您的姓名和代码,我将路径和文件名传递回模块,并进行了以下更改:
<强> RunButton_Click 强>
Debug.Print "Form " & DataPath ) Check values are stored
Debug.Print "Form " & DataName )
' Close form and nothing else.
DoCmd.Close objecttype:=acForm, objectname:="Enter Import Info"
<强>模块1 强>
DoCmd.OpenForm "Enter Import Info", acNormal, , , , acDialog
之后
Debug.Print "Module " & DataPath ) Check have values
Debug.Print "Module " & DataName )