Emi*_*ily 10 ms-access vba ms-access-2010
我看起来非常激烈,但找不到直接解决我问题的帖子.
我创建的表单的以下代码在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
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试在我的个人计算机上的Access 2010中的表单上运行相同的代码时,它不起作用.错误消息突出显示第一行并显示"用户定义的类型未定义".我也尝试过宣布FileName as Office.FileDialog,但也没有运气.我确实有Microsoft Access 14.0对象库作为使用中的参考之一,所以我不知道这有什么问题.
我只使用Access两周,而且我所有的知识都来自谷歌搜索,所以很可能我错过了一些明显的东西.
Han*_*sUp 22
FileDialogAccess库不提供该对象,而是由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
Run Code Online (Sandbox Code Playgroud)