webentwicklung-frage-antwort-db.com.de

FileDialog funktioniert nicht

Ich habe mich intensiv umgesehen, konnte aber keinen Beitrag finden, der mein Problem direkt löst.

Der folgende Code für ein von mir erstelltes Formular funktioniert in Access 2003, das ich bei der Arbeit verwende.

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

Wenn ich jedoch versucht habe, denselben Code in einem Formular in Access 2010 auf meinem PC auszuführen, funktioniert er nicht. Die Fehlermeldung hebt die erste Zeile hervor und sagt "Benutzerdefinierter Typ nicht definiert". Ich habe auch versucht, FileName as Office.FileDialog zu deklarieren, aber auch kein Glück. Ich habe Microsoft Access 14.0-Objektbibliothek als eine der verwendeten Verweise, daher weiß ich nicht, was daran falsch ist.

Ich benutze Access erst seit zwei Wochen, und mein gesamtes Wissen stammt vom Googeln. Es ist also sehr wahrscheinlich, dass mir etwas Offensichtliches fehlt.

9
Emily

Das FileDialog-Objekt wird nicht von der Access-Bibliothek, sondern von der Office-Bibliothek bereitgestellt. Ihr Code sollte also funktionieren, wenn Sie einen Verweis auf die Microsoft Office [Versionsnummer] Object Library setzen. Entweder haben Sie diese Referenz nicht oder sie ist defekt.

Wenn ich es wäre, würde ich die Referenz jedoch nicht setzen und den Code so ändern. Sehen Sie, ob es für Sie funktioniert.

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
20
HansUp

In Tools, Referenzen ... müssen Sie "Microsoft Office 14.0 Object Library" anstelle der Microsoft Access-Bibliothek auswählen.

1
IRENE G