我已经很仔细地找过了,但是找不到一个能直接解决我问题的帖子。
下面的代码适用于我在工作中使用的Access 2003中创建的表单。
Dim FileName As FileDialog
Set FileName = Application.FileDialog(msoFileDialogFilePicker)
Dim Name As Variant
With FileName
.AllowMultiSelect = False
.Show
If .SelectedItems.Count = 0 Then
MsgBox "No file selected."
Exit Sub
End If
End With
For Each Name In FileName.SelectedItems
FileNameTextBox.Text = Mid$(Name, InStrRev(Name, "\") + 1)
Next Name但是,当我试图在我的个人计算机上的Access 2010中的窗体上运行相同的代码时,它没有work.The错误消息突出显示第一行,并显示“用户定义的类型未定义”。我也尝试过声明FileName as Office.FileDialog,但也没有成功。我确实有Microsoft Access 14.0对象库作为正在使用的引用之一,所以我不知道这有什么问题。
我只使用了两周的Access,我所有的知识都来自于谷歌搜索,所以我很可能遗漏了一些显而易见的东西。
发布于 2012-02-28 15:02:47
FileDialog对象不是由Access库提供的,而是由Office库提供的。因此,如果您设置了对Microsoft Office版本号对象库的引用,则代码应该可以正常工作。要么你没有那个参考集,要么它坏了。
但是,如果是我,我就不会设置引用,而是像这样修改代码。看看它对你是否有效。
Const msoFileDialogFilePicker As Long = 3
Dim objDialog As Object
Set objDialog = Application.FileDialog(msoFileDialogFilePicker)
With objDialog
.AllowMultiSelect = False
.Show
If .SelectedItems.Count = 0 Then
MsgBox "No file selected."
Else
Me.FileNameTextBox.Value = Dir(.SelectedItems(1))
End If
End With发布于 2018-01-30 19:27:56
在“工具”、“参考...”中,您必须选择“MicrosoftOfficeOffice14.0对象库”,而不是 Access对象库。
https://stackoverflow.com/questions/9476268
复制相似问题