Защо не можете да създадете индекс за ODBC източник след свързване?
На работа използваме Access със свързани таблици на SQL Server и когато някой иска да се свърже с различна база данни (промяна от производствена среда в тестова среда), правим нещо подобно за всички таблици:
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"