Gracias Jacinto. Creo que hace tiempo me pasaste ese archivo y me ha funcionado. Pero no sé que ocurre ahora, desde que instalé Access 2010 que no me funciona. El código que no me acaba de funcionar es el siguiente:
Public Sub ReVinculaTablas()
Dim strBDRemota As String, _
bytVersion As Byte, _
Tabla As DAO.TableDef
On Error GoTo ReVinculaTablas_TratamientoErrores
bytVersion = Val(SysCmd(acSysCmdAccessVer))
' construyo la ruta de la base de datos Neptuno en función de la versión de access
strBDRemota = CurrentProject.Path & "\Gestión orientación_datos.accdb"
If Len(Dir$(strBDRemota)) = 0 Then
If MsgBox("La ruta de la base de datos Gestión orientación_datos.accdb no era la esperada" & vbCrLf & Chr$(34) & strBDRemota & vbCrLf & "¿Quiere buscarla usted?", vbCritical + vbYesNo) = vbYes Then
strBDRemota = AbrirArchivoFD("C:\", "Microsoft Office Access (*.accdb, *.adp)", "Selecciona la base de datos")
If Len(Dir$(strBDRemota)) = 0 Then GoTo ReVinculaTablas_Salir
Else
GoTo ReVinculaTablas_Salir
End If
End If
For Each Tabla In CurrentDb.TableDefs
' si Tabla.connect no está vacio, es por que se trata de una tabla vinculada
If (Tabla.Connect <> vbNullString) Then
' así pues asigno la "nueva" ruta a la tabla vinculada
Tabla.Connect = ";DATABASE=" & strBDRemota & ";PWD=Agustin,.430"
Tabla.RefreshLink
End If
Next Tabla
ReVinculaTablas_Salir:
Set Tabla = Nothing
On Error GoTo 0
Exit Sub
ReVinculaTablas_TratamientoErrores:
Select Case Err
Case 3024
MsgBox "La base de datos Gestión orientación_datos.accdb no se encuentra en " & vbCrLf & strBDRemota, vbCritical + vbOKOnly, "ATENCION"
Case 3011, 3078 ' la tabla no existe en Neptuno
Resume Next
Case Else
MsgBox "Error " & Err.Number & " en proc. ReVinculaTablas de Módulo VinculacionTablas (" & Err.Description & ")", vbOKOnly + vbCritical
End Select
GoTo ReVinculaTablas_Salir
End Sub
Debería encontrar la base de datos con las tablas en la misma carpeta que el archivo principal, pero no es así. Si me pide que la busque le digo cuál (busca neptuno por defecto), pero sigue sin funcionar. Me da el error 3044. Es como si el archivo principal tuviese en memoria la ruta primera y no fuese capaz de cambiarla por la nueva ruta.
Hola amigos estoy usando ese código con lo que dejo en el link cmbie todo para ajustarlo a mi base de datos pero de repente me esta mostrando un mensaje de que una tabla que es de un poco de letrasy numero y al fin un campo de una de mis tablas no existe en la base de datos no se que pasa. Agradecería mucho la ayuda de ustedes - Juan Miguel Muñoz Sanchez
Juan Miguel: Este post es muy antiguo y no creo que haya quien lo lea, con lo cual se pierde un poco la esencia de que una o más respuestas lleguen a bastantes usuarios. Si te parece genera una pregunta exponiendo tus necesidades, y seguro que sea mia o de otro usuario, recibirás respuesta. Un saludo >> Jacinto - Jacinto Trillo Jareño