FileDialog no funciona

He buscado bastante intensamente, pero no pude encontrar una publicación que resuelva directamente mi problema.

El siguiente código para un formulario que creé funciona en Access 2003, que uso en el trabajo.

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 

Sin embargo, cuando traté de ejecutar el mismo código en un formulario en Access 2010 en mi computadora personal, no funciona. El mensaje de error resalta la primera línea y dice “Tipo definido por el usuario no definido”. También traté de declarar FileName as Office.FileDialog , pero tampoco FileName as Office.FileDialog suerte. Tengo Microsoft Access 14.0 Object Library como una de las referencias en uso, así que no sé qué hay de malo en eso.

Solo he estado usando Access durante dos semanas, y todo mi conocimiento proviene de Google, así que es muy probable que me esté perdiendo algo obvio.

El objeto FileDialog no lo proporciona la biblioteca de Access, sino la biblioteca de Office. Por lo tanto, su código debería funcionar si establece una referencia a la Biblioteca de objetos de Microsoft Office [número de versión] . O no tienes ese conjunto de referencia, o está roto.

Sin embargo, si fuera yo, dejaría sin referencia la referencia y modificaría el código de esta manera. Mira si te funciona.

 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 

En herramientas, referencias …, debe seleccionar “Microsoft Office 14.0 Object Library” en lugar de Microsoft Access one.