ms access - programar - Código VBA para agregar tabla vinculada con clave principal
vba access pdf (1)
Tengo una vista actualizable en la base de datos del servidor sql. Cuando creo una tabla vinculada con ODBC, se me pide que seleccione un identificador de registro único para que se pueda actualizar.
Necesito volver a vincular dinámicamente esta tabla en VBA, por lo que necesito descartar y volver a crear la tabla vinculada (no puedo actualizar la propiedad TableDef.Connect para la tabla ODBC).
Encontré varias soluciones, que no son aplicables en mi caso:
- crear el índice después del enlace: no puedo para la fuente ODBC
- crear la clave primaria en la base de datos: no puedo, es una vista
Estos serían aplicables:
- un código que hará lo que haga el asistente
- un código para volver a vincular sin la necesidad de eliminar TableDef y que funciona con la tabla vinculada de ODBC, y no restablecerá el identificador previamente establecido
Solución temporal:
- convierta la vista en vista materializada y cree un índice único en ella
¿Por qué no puedes crear un índice para una fuente ODBC después del enlace?
En el trabajo, estamos utilizando Access con tablas SQL Server vinculadas, y cuando alguien quiere conectarse a una base de datos diferente (cambiar del entorno de producción al entorno de prueba), hacemos algo como esto para todas las tablas:
Dim TD As TableDef
Dim ConString As String
ConString = "ODBC;DRIVER={SQL Server};SERVER=ServerName;DATABASE=DbName;Trusted_Connection=Yes;"
CurrentDb.TableDefs.Delete "SomeTable"
Set TD = CurrentDb.CreateTableDef("SomeTable", 0, "SomeTable", ConString)
CurrentDb.TableDefs.Append TD
Set TD = Nothing
CurrentDb.Execute "CREATE UNIQUE INDEX SomeIndex ON SomeTable (PrimaryKeyColumn) WITH PRIMARY"