Autor Tema: Cambiar nombre de base de datos en tablas vinculadas via ODBC en Access  (Leído 1604 veces)

Desconectado mxgxw

  • Global Moderator
  • The Communiter-
  • *
  • Thank You
  • -Given: 25
  • -Receive: 525
  • Mensajes: 4778
  • Starlet - 999cc
    • mxgxw
Bueno señores, les traigo aquí la solución a un problema que a simple vista parece muy sencillo pero que me costó un poco encontrar la solución en internet.

Les explico:

Resulta que diseñamos un pequeño sistema para ingreso de encuestas en Access. Este sistema se conecta vía ODBC a una base de datos en SQL Server para almacenar los datos.

Como el sistema se quiere reutilizar para el ingreso de otras encuestas, nos encontramos con el problema que la interfaz de access solo permite cambiar el string de conexión elminando la tabla vinculada y volviendola a crear.

El problema es que son +30 tablas y estarlas cambiando quita mucho tiempo. También si quisieramos usar otra base de datos local tendríamos que estar repitiendo el procedimiento.

Despues de un par de horas de busqueda en internet encontré este código que no se quien será el autor, pero con un par de modificaciones quedó a la perfección:

1ro Creen un formulario en access con un boton y en el evento "click" generen el codigo correspondiente.

2do peguen el siguiente código dentro del procedimeinto:

Código: [Seleccionar]

    Dim db As Database
    Set db = CurrentDb
    Dim tdef As TableDef
    Dim constr As Variant
    For Each tdef In db.TableDefs
        If InStr(tdef.Connect, "ODBC") Then
            tdef.Connect = Replace(tdef.Connect, "DATABASE=BaseOriginal", "DATABASE=NuevaBase")
            tdef.RefreshLink
        End If
    Next
    MsgBox "Nombre de BD actualizado"

3ro. Recuerden cambiar "BaseOriginal" por la base de datos a la que esta conectada el ODBC actualmente y "NuevaBase" a la que quieren conectarse.

4to Guarden y hagan click al boton que crearon, el mensaje "Nombre de DB actualizado" aparecerá cuando hayan terminado.

¿Que hace exactamente este código?

Cambia el nombre de la base de datos de TODAS las tablas que se conecten via ODBC. Si quisieran cambiar otros parámetros de coneccion solo tienen que revisar la funcion Replace y cambiar por los valores que ustedes deseen.
Follow members gave a thank to your post: