Applies ToAccess dla Microsoft 365 Access 2021 Access 2019 Access 2016

Ostatnia aktualizacja: 23 stycznia 2020 r.

PROBLEM

Podczas tworzenia linku do tabeli programu SQL Server zawierającej kolumnę tożsamości program Access zwykle identyfikuje tę kolumnę jako kolumnę typu Autonumerowanie.

Pokazanie tej kolumny tożsamości jest identyfikowane jako pole typu Autonumerowanie

W kompilacjach bieżącego kanału (16.0.12325.*) w wersji 1912 usługi Office 365 i pakietu Office 2016/2019 kolumny Tożsamość nie są poprawnie identyfikowane i dlatego będą rozpoznawane tylko jako liczby.

Kolumna tożsamości nie jest poprawnie identyfikowana jako Autonumerowanie

Dzieje się tak w przypadku tworzenia nowych linków za pośrednictwem interfejsu użytkownika lub kodu, ale tylko w przypadku nowych linków.  Nie wpłynie to na istniejące linki, o ile link nie zostanie odświeżony.

Program Access używa odpowiedniej identyfikacji kolumny tożsamości do wielu celów, więc może to mieć wpływ na aplikację na kilka sposobów.

Na przykład kolumna tożsamości jest zwykle używana do identyfikowania nowo dodanego rekordu.  Jeśli kolumna tożsamości nie jest używana, program Access może nie być w stanie prawidłowo odnaleźć nowo dodanego wiersza, co spowoduje, że pola w danym wierszu będą wyświetlane jako #Deleted.

Wiersz przedstawiający pola z informację Usunięte

W przypadku używania właściwości RecordSet.LastModified w celu pobrania wartości ostatnio dodanego rekordu mogą być wyświetlane podobne błędy. Następujący kod:

Set rst = CurrentDb().OpenRecordset("tblWithIdentityColumn")

rst.AddNew
rst!CompanyName = "Contoso"
rst.Update

rst.Bookmark = rst.LastModified
MsgBox rst!CompanyName

Może spowodować błąd 3167:

Błąd wskazujący, że rekord został usunięty.

W obu przypadkach rekord zostanie pomyślnie dodany, ale program Access nie będzie mógł go odnaleźć.

Program Access zwykle ignoruje także próby bezpośredniej aktualizacji kolumny tożsamości. Jednak w tych kompilacjach ta opcja pozwala podejmować próby, ale kończą się one niepowodzeniem i generują komunikat o błędzie:

[SQL Server] Nie można wstawić wartości jawnej dla kolumny tożsamości w tabeli „tblOrders”, jeśli IDENTITY_INSERT ma wartość OFF.(#544)

STAN: NAPRAWIONE

Rozwiązanie tego problemu jest teraz dostępne w wersji 1912.  Aby uzyskać poprawkę, może być konieczne bezpośrednie wymuszenie aktualizacji.  Numer kompilacji z naprawionym błędem to 12325.20344.

Jeśli jesteś niejawnym testerem korzystającym z wolnych aktualizacji (wersja 2001) lub niejawnym testerem korzystającym z szybkich aktualizacji (wersja 2002). Ta poprawka nie jest jeszcze dostępna w tych kanałach, więc możesz przenieść się do bieżącego kanału.

Uwaga: Po zmianie wersji musisz odświeżyć wszystkie linki, których dotyczy poprawka, aby upewnić się, że znowu działają poprawnie.

Ikona ekspertów (mózg, koła zębate)

Zapytaj ekspertów

Nawiązuj kontakty z ekspertami, omawiaj najnowsze wiadomości, aktualizacje i najlepsze rozwiązania oraz czytaj naszego bloga.

Społeczność techniczna firmy Microsoft

Ikona społeczności

Uzyskaj pomoc społeczności

Zadaj pytanie i uzyskaj rozwiązania dzięki przedstawicielom obsługi technicznej, specjalistom MVP, inżynierom i innym użytkownikom pakietu Office.

Forum poświęcone pakietowi Office w witrynie Answers

Ikona sugestii dotyczącej funkcji (żarówka, pomysł)

Zasugeruj nową funkcję

Czekamy na sugestie i opinie! Przekazuj je! Chętnie Cię wysłuchamy.

Przekazywanie opinii

Zobacz też

Rozwiązania lub obejścia ostatnio stwierdzonych problemów w programie Access

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.