2012-03-07 37 views
6

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.Código de VBA para agregar la tabla vinculada con la clave principal

Dialog in the wizard to select unique identifier

tengo que volver a enlazar dinámicamente esta tabla en VBA, por lo que es necesario descartar y volver a crear la tabla vinculada (no puedo actualizar la propiedad TableDef.Connect para la tabla ODBC).

he encontrado varias soluciones, que no son aplicables en mi caso:

  • crear el índice después del enlace: no puedo por fuente ODBC
  • crear la clave principal en la base de datos: No se puede, es una vista

Estos serían aplicables:

  • un código que va a hacer lo que el DOE asistente s
  • un código para volver a vincular sin la necesidad de eliminar TableDef y que funciona con ODBC tabla vinculada, y no se reiniciará establecido previamente identificador

Solución temporal:

  • convertir el objeto de vista materializada y crear un índice único en él
+1

¿Qué le parece: http://bytes.com/topic/access/answers/199482-primary-key-sql-server-linked-view-access-database? – Fionnuala

Respuesta

11

¿Por qué no puede crear un índice para una fuente ODBC después del enlace?

En el trabajo, que utiliza Access con tablas vinculadas de SQL Server, y cuando alguien quiere conectarse a una base de datos diferente (cambio de entorno de producción para probar el medio ambiente), que hacer 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" 
Cuestiones relacionadas