Conectar dos bases de datos access mediante VBA

Necesitaría unir dos bases de datos, en una tengo los formularios, informes, etc y en la otra solo los datos. He estado consultado y encontré un manual maravilloso de Neckkito, y en el encontré un código para unir las bases de datos pero no me funciona y no se si tengo algo mal en mi access, la parte en le que da el error el código es la esta en negritas:

'Creamos las conexiones y comandos para rellenar la tabla
'Declaramos las variables de esta fase
Const Comp As String = "IB"
Dim cnnExt As New ADODB.Connection
Dim cnn As ADODB.Connection
Dim cmd As New ADODB.Command
Dim rsExt As New ADODB.Recordset
Dim rs As New ADODB.Recordset
Dim ruta As String
'Definimos la ruta a la BD DatosIB
ruta = Application.CurrentProject.Path & "\DatosIB.mdb"
'Abrimos las conexiones
cnnExt.Open "Provider=Microsoft.Jet.OLEDB.4.0.; Data Source=" & ruta & ";"
Set cnn = CurrentProject.Connection
'Definimos la conexión del Command y sus propiedades
Set cmd.ActiveConnection = cnnExt
cmd.CommandType = adCmdText
cmd.CommandText = "SELECT * FROM TCargos WHERE TCargos.Cargo='Comandante'"
'Creamos el recordset sobre la SQL definida en Command
Set rsExt = cmd.Execute
...

El mensaje de error dice:

Se ha producido el error '-2147467259 (8000400)' en tiempo de ejecución:

No se pudo encontrar el archivo 'C:\DatosIB.mdb'

Y puedo confirmar que la base de datos DatosIB.mdb si existe. Estoy usando MS Access 2007

Respuesta
1

El código busca la BD en el mismo directorio donde está la BD que estás ejecutando. ¿Cuál es la ruta donde tienes DatosIB.mdb?

Ya me dirás.

Las 2 BD están en el mismo directorio "C:\"

Pero no la localiza.

Gracias.

Acabo de copiar el código en una BD en blanco y he creado una BD en blanco con el nombre de tu BD. Y, en mi caso, sí que la localiza. De hecho el error me lo arroja porque no encuentra la tabla TCargos (lógico, porque la BD está vacía).

Haz una cosa: créate una BD en blanco (sitúala en el mismo directorio donde esté DatosIB.mdb. Te creas un formulario en blanco y añades un botón de comando. En el evento "Al hacer clic" de ese botón le copias, exclusivamente, el código que has escrito en tu mensaje (ten en cuenta que tendrás que registrar la librería de Microsoft Active Data Objects en el VBE).

Prueba ese botón, a ver cómo responde.

Si no te da el error de que no encuentra la BD es que en hay "algo" en tu BD que "casca" el código... y ahí sí que no sé qué decirte...

Ya me dirás qué tal.

Aunque sigue sin funcionar, pero al menos se que hay algo en el access que casca. Muchísimas gracias Neckkito por tu ayuda e interés. Volveré a instalar el access o lo cambiares para ver que tal.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas