我将表单从一个数据库导出到另一个数据库。表名和查询完全相同,所以我的组合框让我选择一个表仍然可以正常工作并显示所有表。我有一个按钮,可以通过打开Windows资源管理器来选择文件夹位置。这适用于我原来的数据库,但在新的数据库中我得到了这个错误:
作为事件属性设置输入的单击On Click会产生以下错误:未定义变量。
*表达式可能不会产生宏的名称,用户定义函数的名称或[事件过程]。
*评估函数,事件或宏时可能出错。
当我点击OK但是它没有让我在VBA代码中引起问题。我认为它不是代码,但在某些地方我必须做一些配置,但我不确定。所有按钮都会发生这种情况。我有一个每个按钮的事件,这是一个点击事件。我去了vba编辑器并检查了我是否需要添加代码,但它已经存在了。
在我的表单的属性表中,所有事件都已设置,每个组件的名称都相同,所以我不知道可能是什么问题。如何在不完全重新设计表单的情况下恢复功能?
编辑:我对VBA编码的隐私知之甚少,但是这可能与我所有的button_Click()函数都公开有关数据库?我觉得它不会,但我认为值得问。
编辑2:以下是打开Windows资源管理器的按钮的代码:
Public Sub pathButton1_Click()
Dim strPath As String
With Me
strPath = Left(.pathLabel1.Caption, InStrRev(.pathLabel1.Caption, "/"))
strPath = FSBrowse(strStart:=strPath, _
lngType:=msoFileDialogFolderPicker, _
strPattern:="MS Access Databases,*.ACCDB; *.MDB~" & _
"All Files,*.*")
If strPath > "" Then .pathLabel1.Caption = strPath
End With
End Sub
Public Function FSBrowse(Optional strStart As String = "", _
Optional lngType As MsoFileDialogType = _
msoFileDialogFolderPicker, _
Optional strPattern As String = "All Files,*.*" _
) As String
Dim varEntry As Variant
FSBrowse = ""
With Application.FileDialog(DialogType:=lngType)
'Set the title to match the type used from the list
.Title = "Browse for "
Select Case lngType
Case msoFileDialogOpen
.Title = .Title & "File to open"
Case msoFileDialogSaveAs
.Title = .Title & "File to SaveAs"
Case msoFileDialogFilePicker
.Title = .Title & "File"
Case msoFileDialogFolderPicker
.Title = .Title & "Folder"
End Select
If lngType <> msoFileDialogFolderPicker Then
Call .Filters.Clear
For Each varEntry In Split(strPattern, "~")
Call .Filters.Add(Description:=Split(varEntry, ",")(0), _
Extensions:=Split(varEntry, ",")(1))
Next varEntry
End If
'Set some default settings
.InitialFileName = strStart
.AllowMultiSelect = False
.InitialView = msoFileDialogViewDetails
'Only return a value from the FileDialog if not cancelled.
If .Show Then FSBrowse = .SelectedItems(1)
End With
End Function