FileDialog不起作用

时间:2012-02-28 04:12:56

标签: vba ms-access 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

但是,当我尝试在我的个人计算机上的Access 2010中的表单上运行相同的代码时,它不起作用。错误消息突出显示第一行并显示“用户定义的类型未定义”。我也尝试声明FileName as Office.FileDialog,但也没有运气。我确实有Microsoft Access 14.0对象库作为使用中的参考之一,所以我不知道它有什么问题。

我只使用Access两周,而且我所有的知识都来自谷歌搜索,所以很可能我错过了一些明显的东西。

2 个答案:

答案 0 :(得分:21)

Access文库不提供FileDialog对象,而是由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

答案 1 :(得分:1)

在工具,引用中......,您必须选择“Microsoft Office 14.0对象库”而不是Microsoft Access。