No se ha definido el tipo definido por el usuario Access 2007

Tengo una base de datos en Access 2013, en la que uso tengo una función en la que uso el método fdialog para seleccionar un fichero de un determinado directorio.

El código de la función es este :

Public Function buscaArchivo() As String
Dim fDialog As Office.FileDialog
Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
With fDialog
.AllowMultiSelect = False
.ButtonName = "Seleccionar"
.Title = "Seleccionar el archivo"
''.InitialFileName = Application.CurrentProject.Path
Carpeta = CarpetaImagen("ESCANEOS") ......aqui miro el valor que tiene el parametro Carpeta dentro de la aplicacion
.InitialFileName = Carpeta
.InitialView = msoFileDialogViewDetails
.Filters.Clear
.Filters.Add "All Files", "*.*"
If .Show = True Then
buscaArchivo = .SelectedItems(1)
Else
MsgBox "Ha pulsado el botón <Cancelar>."
End If
End With
End Function

El problema viene cuando se ejecuta esta función en Access 2007, que es cuando me da el error : Error de compilación: No se ha definido el tipo definido por el usuario.

En la base de 2007 le he incluido la librería Microsoft DAO 3.6 Object Library, pero me sigue dando este error.

Por favor, me podéis decir donde esta el problema.

2 respuestas

Respuesta
2

¿Has probado a activar la libería Microsoft Office XX.0 Object Library? El xx es por la versión de Office, por ejemplo en Office 16 es Microsoft Office 16.0 Object Library

Actualmente tiene activadas :

Visual basic for applications, Microsoft Access 12.0 Object Library, OLE Automation, y Microsoft Officce 12.0 Access Database Engine Object

esa que comentas no la veo entre las disponibles.

Perdón, la ultima la he sustituido por la Microsoft DAO 3.6 Oblect Library

Pero hace lo mismo con cualquiera de las dos

Debe estar, mira la imagen

Gracias Icue pero entiendo que si se trata de Access 2007 debería haber un Microsoft 7.0 o 07.0, y yo no veo ninguno. El único que me aparece es el 12, y ese no lo puedo cargar si tengo activado el DAO 3.6.

Ya he probado con los dos y sigue dando error.

¿Para qué te sirve el Microsoft Dao? Yo tengo activado lo de la imagen y el código hace todo lo que necesito y más

Por ejemplo, el Microsoft Speech,,, es para que los mensajes sean hablados. Olvídate del Dao y activa el que te dije.

Tengo activo el DAO porque era lo que había para Access 2007, que es en el que tengo el problema y, si lo quito, no me funcionan otras cosas... Además es incompatible con el Microsoft 12.0 Database Engine Object. Aparte de que, como dije antes, no me aparece entre mis referencias disponibles.

Por lo que veo en la imagen, tu estas usando Access 2016, ¿no?

Efectivamente, tengo el Office 16, pero me extraña mucho que no tengas el microsoft office XX. 0 Object Library porque cuando yo usaba el 2003 ya lo tenía y creo recordar que era Microsoft Office 11.0 Object Library. Y creo que la tuya es efectivamente el 12, porque en office 2010 es el 14

Pues si al que te referías es el 12.0, ya lo he activado antes y no me soluciona nada.

Gracias

Solucionado... !

El problema era, efectivamente, problema de librerías y lo he solucionado copiando la base de datos en una base en blanco de otro equipo donde tengo Access 2013, y ya aquí si le he podido activar las librerías 15.0

Muchas gracias por la ayuda.

Me rindo, mira la misma función

Y si la ejecuto

Se abre el dichoso "explorador"

Respuesta
1

Debes hacer referencia a la librería Office 12 o 11 Object Library.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas