Последна актуализация: 23 януари 2020 г.
ПРОБЛЕМ
Когато създавате връзка към таблица в SQL Server, която има колона за самоличност, Access обикновено идентифицира тази колона като колона с автоматично номериране.
В компилациите за текущ канал (16.0.12325.*) на версия 1912 на Office 365 и Office 2016/2019 колоните за самоличност не са правилно идентифицирани и вместо това ще бъдат разпознати само като число.
Това ще се случи, когато създавате нови връзки чрез потребителския интерфейс или чрез код, но само за нови връзки. Съществуващите връзки няма да бъдат засегнати, освен ако връзката не е обновена.
Access използва правилната идентификация на колона за самоличност за редица цели, така че това може да повлияе на приложенията по няколко начина.
Например колоната за самоличност обикновено се използва за идентифициране на новодобавен запис. Когато колоната за самоличност не се използва, Access може да не успее да намери правилно новодобавения ред, което ще доведе до показването на полетата в този ред като #Deleted.
Може да видите подобни проблеми, когато използвате свойството 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 е зададено на ИЗКЛ.(#544)
СЪСТОЯНИЕ: ПОПРАВЕНО
Корекцията за този проблем вече е налична за версия 1912. Може да се наложи изрично да извършите актуализация, за да получите корекцията. Номерът на коригираната компилация трябва да бъде 12325.20344.
Ако сте в Insider Slow (версия 2001) или Insider Fast (версия 2002). Корекцията все още не се доставя в тези канали, така че може да поискате да преминете към Текущия канал.
Забележка: След като промените версиите, трябва да обновите всички засегнати връзки, за да се уверите, че се държат правилно отново.
Попитайте експертите
Свържете се с експерти, дискутирайте последните новини, актуализации и най-добри практики и прочетете нашия блог.
Получаване на помощ в общността
Задайте въпрос и намерете решения от агенти по поддръжката, най-ценни специалисти, инженери и други потребители на Office.
Предлагане на нова функция
Обичаме да четем вашите предложения и обратната връзка! Споделете какво мислите. Слушаме ви.
Вж. също
Корекции или заобиколни решения за най-новите проблеми в Access