Вы можете по крайней мере заставить PK и индексы выходить с сервера SQL.
Есть два способа сделать это.
Из графического интерфейса?
Просто создайте ссылку на соответствующую таблицу (создайте связанную таблицу с сервером sql).
Затем на панели навигации просто щелкните правой кнопкой мыши по связанной таблице и выберите «преобразовать в локальную таблицу».
Таким образом, вышеприведенное сохранит PK (и индексы). И для любого другого столбца, имеющего индекс, вы обнаружите, что Access также сохраняет (создает) локальный индекс для вас.
Если вы используете код?
Затем сначала создайте связанную таблицу.
Затем выполните скрытое отображение в локальной таблице.
Например, этот код:
Dim strCon As String
strCon = CurrentDb.TableDefs("dbo_TimeTest1").Connect
DoCmd.TransferDatabase acLink, "ODBC Database", strCon, acTable, _
"dbo.tblbooking", "tblBookingLocal2", False, True
DoCmd.SelectObject acTable, "tblBookingLocal2", True
DoCmd.RunCommand acCmdConvertLinkedTableToLocal
Выше я просто собрал «известную» и существующую строку подключения из другой связанной таблицы в ту же базу данных SQL.