Ms access 将值从MS Access表单子系统传递到其他表单子系统
这是我第一次试用access vba 在一个表单中,我有两个按钮。一个用于浏览、拾取文件,另一个用于将excel导入到表中 我尝试了下面的代码。它不起作用了。我需要的是将Ms access 将值从MS Access表单子系统传递到其他表单子系统,ms-access,vba,ms-access-2013,Ms Access,Vba,Ms Access 2013,这是我第一次试用access vba 在一个表单中,我有两个按钮。一个用于浏览、拾取文件,另一个用于将excel导入到表中 我尝试了下面的代码。它不起作用了。我需要的是将filepath变量的值从cmdBrowse\u单击sub传递到cmdImportFunctions\u单击sub 这是我在几个小时后的最佳状态,在一个子系统中使用call和在另一个子系统中使用byVal都不起作用 提前感谢,致以最良好的问候 我的问题是: 为什么下面的当前代码失败 如何将filepathvariable从cmd
filepath
变量的值从cmdBrowse\u单击sub传递到cmdImportFunctions\u单击sub
这是我在几个小时后的最佳状态,在一个子系统中使用call和在另一个子系统中使用byVal都不起作用
提前感谢,致以最良好的问候
我的问题是:
为什么下面的当前代码失败
如何将filepath
variable从cmdBrowse\u单击sub传递到cmdImportFunctions\u单击sub(如果可能,我想学习无全局变量方式的)
cmdBrowse\u单击:浏览并获取拾取的文件路径
Private Sub cmdBrowse_Click()
Dim dialog As Object
Dim filePath As String
Set dialog = Application.FileDialog(msoFileDialogFilePicker)
With dialog
.AllowMultiSelect = False
.Title = "Please select the functions excel to import"
.Filters.Clear
.Filters.Add "Excel Newer", "*.XLSX"
.Filters.Add "Excel Older", "*.XLS"
If .Show = True Then
filePath = .SelectedItems.Item(1)
txtExcelFile.Value = filePath
Call cmdImportFunctions_Click(filePath)
Else
MsgBox "No file was selected", vbOKOnly
txtExcelFile.Value = ""
End If
End With
End Sub
cmdImportFunctions\u单击:导入到数据库中
Private Sub cmdImportFunctions_Click(ByVal filePath As String)
MsgBox filePath, vbOKOnly
End Sub
正如错误消息所说,必须按如下方式声明单击时的事件过程:
Private Sub cmdButton_Click()
没有任何参数。您不能更改此声明(否则将出现编译错误)
如果要直接从cmdBrowse
启动导入,则不需要“导入”按钮。在表单模块中创建“标准”私有过程,而不是事件过程
Private Sub DoImport(ByVal filePath As String)
MsgBox filePath, vbOKOnly
End Sub
并在cmdBrowse\u Click()
中调用它
否则,您可以将文件路径存储在模块变量中,或存储在表单上的文本框中-如果浏览按钮仅选择文件,这将是通常的设计
编辑:我看您已经有了:txtexelfile.Value=filePath
我建议使用Me!txtExcelFile.Value=filePath
表示这是一个表单控件
然后简单地说:
Private Sub cmdImportFunctions_Click()
Dim filePath As String
filePath = Nz(Me!txtExcelFile.Value, "")
If filePath = "" Then
MsgBox "Please select a file first"
Else
MsgBox filePath, vbOKOnly
End If
End Sub
“它不工作”是什么意思?给出了一个没有错误代码的错误。过程声明与具有相同名称的事件或过程的描述Hx Andre不匹配。“浏览”按钮应仅选择该文件。如何将文件路径
从文本框传递到导入事件。(cmdImportFunctions\u单击
)。实际上我有一个文本框,名称是txtexelfile
。是否可以在我的cmdImportFunctions\u单击过程中读取文本框的值?你能为你的句子举个例子吗(你可以将文件路径存储在文本框中)?最后一个问题:模块变量是全局变量吗?非常感谢,非常感谢。请参见编辑。2.不是全局的,模块全局的。它在模块顶部声明(在Option Explicit
和第一个子模块/函数之间),并且对模块中的所有子模块可见,但不在外部。