¿Por qué no puede crear un índice para una fuente ODBC después de vincular?
En el trabajo, usamos Access con tablas de 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"