Perché non puoi creare un indice per un'origine ODBC dopo il collegamento?
Al lavoro, utilizziamo Access con tabelle SQL Server collegate e quando qualcuno vuole connettersi a un database diverso (passa dall'ambiente di produzione all'ambiente di test), facciamo qualcosa del genere per tutte le tabelle:
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"