【问题标题】:FileDialog doesn't work文件对话框不起作用
【发布时间】:2012-03-17 14:09:35
【问题描述】:

我看得很认真,但找不到直接解决我问题的帖子。

我创建的表单的以下代码在我在工作中使用的 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 两个星期,我所有的知识都来自谷歌搜索,所以我很可能遗漏了一些明显的东西。

【问题讨论】:

  • 如何将整个文件路径插入到文本框中?

标签: vba ms-access ms-access-2010


【解决方案1】:

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

【讨论】:

  • 现在可以使用了!太感谢了!!虽然我仍然很困惑为什么它以前不起作用,因为我确实使用了 14.0 对象库。
【解决方案2】:

在工具、参考...中,您必须选择“Microsoft Office 14.0 Object Library”而不是 Microsoft Access。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-07
    • 1970-01-01
    • 2015-05-06
    • 2023-04-10
    • 1970-01-01
    • 2013-09-10
    相关资源
    最近更新 更多