Последнее обновление: 23 Января, 2020
ПРОБЛЕМА
При создании связи с таблицей в SQL Server, содержащей столбец идентификаторов, приложение Access обычно определяет этот столбец как столбец счетчика.
В сборках Актуального канала (16.0.12325.*) версии 1912 Office 365 и Office 2016/2019 столбцы идентификаторов определяются неправильно как числовые столбцы.
Это происходит при создании связей в пользовательском интерфейсе или с помощью кода, но только для новых связей. Существующие связи не будут затронуты, если они не обновляются.
Access использует соответствующую идентификацию столбца идентификаторов по нескольким причинам, поэтому это может влиять на приложения разными способами.
Например, столбец идентификаторов обычно используется для определения только что добавленной записи. Если столбец идентификаторов не используется, Access не сможет правильно найти добавленную строку, в результате чего поля в этой строке будут отображаться со значением #Удалено.
Аналогичные проблемы могут возникать при использовании свойства RecordSet.LastModified с целью получения значений для последней добавленной записи. Следующий код:
Set rst = CurrentDb().OpenRecordset("tblWithIdentityColumn")
rst.AddNew
rst!CompanyName = "Contoso"
rst.Update
rst.Bookmark = rst.LastModified
MsgBox rst!CompanyName
Может вызывать ошибку 3167:
В обоих случаях запись будет успешно добавлена, но Access не сможет ее найти.
Кроме того, Access обычно игнорирует попытки непосредственного обновления столбца идентификаторов. Однако в этих сборках такая попытка допускается, но она завершается сбоем и вызывает следующее сообщение об ошибке:
[SQL Server] Невозможно вставить явное значение для столбца идентификаторов в таблице "tblOrders", если для параметра IDENTITY_INSERT установлено значение OFF. (#544)
СОСТОЯНИЕ: ИСПРАВЛЕНО
Исправление для этой проблемы теперь доступно для версии 1912. Для получения исправления может потребоваться принудительно выполнить обновление. Исправленный номер сборки должен быть 12325.20344.
Если вы используете Insiders Slow (Версия 2001) или Insiders Fast (Версия 2002). В этих каналах это исправление еще недоступно, поэтому вам может потребоваться перейти на Актуальный канал.
Примечание: После изменения версий необходимо обновить все затрагиваемые ссылки, чтобы убедиться в том, что они корректно работают.
Общение с экспертами
Обращайтесь к экспертам, обсуждайте новости, обновления и рекомендации, а также читайте наш блог.
Поддержка сообщества
Задавайте вопросы сотрудникам службы поддержки, MVP, инженерам и другим пользователям Office и находите решения.
Предложение новых функций
Мы будем рады вашим отзывам и предложениям. Вам наверняка есть, что сказать. Поделитесь с нами своими мыслями.
См. также
Исправления и временные решения для последних проблем в Access