Program Access zawiesza się po otwarciu tabeli połączonej z listą programu SharePoint

Uwaga

Nazwa usługi Office 365 ProPlus została zmieniona na Aplikacje usługi Microsoft 365 dla przedsiębiorstw. Aby uzyskać więcej informacji na temat tej zmiany, przeczytaj ten wpis w blogu.

Symptomy

W bazie danych programu Microsoft Access dla komputerów stacjonarnych podczas próby otwarcia tabeli połączonej z listą programu SharePoint program Access przestaje odpowiadać.

Przyczyna

Ten problem występuje, gdy użytkownik, który próbuje otworzyć istniejącą tabelę połączona w programie Access, nie ma poświadczeń przechowywanych lokalnie dla witryny programu SharePoint, która zawiera listę. Zapisane poświadczenia mogą być poświadczeniami w Menedżerze poświadczeń systemu Windows lub trwałym plikiem cookie w programie Internet Explorer.

Rozwiązanie

W celu obejścia tego problemu należy skorzystać z jednej z następujących metod:

Metoda 1. Dodawanie wpisu rejestru EnableLegacyListAuth

Uwaga Aby korzystać z tej metody, w przypadku programu Access 2016 musisz mieć zainstalowaną wersję 1804 (kompilacja 9226.2114) lub MSI (kompilacja 16.0.4690.1000) lub nowszą. Aby dodać wpis rejestru EnableLegacyListAuth, wykonaj następujące czynności:

  1. Otwórz Edytor rejestru, a następnie znajdź i wybierz następujący podklucz rejestru:

    32-bitowa wersja pakietu Office w 32-bitowym systemie Windows lub 64-bitowa wersja pakietu Office w 64-bitowym systemie Windows

    • W przypadku programu Access 2013

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\15.0\List

    • W przypadku programu Access 2016

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\16.0\List

    32-bitowa wersja pakietu Office w 64-bitowym systemie Windows

    • W przypadku programu Access 2013

      HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\15.0\List

    • W przypadku programu Access 2016

      HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\16.0\List

  2. W menu Edycja wskaż polecenie Nowy, a następnie kliknij polecenie Wartość DWORD.

  3. Wpisz EnableLegacyListAuth, a następnie naciśnij klawisz Enter.

  4. Kliknij prawym przyciskiem myszy pozycję EnableLegacyListAuth, a następnie kliknij polecenie Modyfikuj.

  5. W polu Dane wartości wpisz 1, a następnie kliknij przycisk OK.

  6. Znajdź następujący klucz rejestru:

    • W przypadku programu Access 2013

      HKCU\SOFTWARE\Microsoft\Office\15.0\Common\Identity

    • W przypadku programu Access 2016

      HKCU\SOFTWARE\Microsoft\Office\16.0\Common\Identity

  7. Upewnij się, że wartość funkcji EnableADAL wynosi 0.

  8. Zamknij Edytor rejestru.

Metoda 2. Odświeżanie listy

Aby odświeżyć listę, wykonaj następujące czynności:

  1. Otwórz Menedżera zadań systemu Windows, wybierz pozycję Microsoft Access, a następnie kliknij pozycję Zakończ zadanie.
  2. Otwórz ponownie bazę danych.
  3. Kliknij prawym przyciskiem myszy tabelę połączona w programie Access, a następnie wybierz pozycję Więcej opcji , odśwież > listę.
  4. Zaloguj się przy użyciu swoich poświadczeń.

Aby ponownie połączyć listę, wykonaj następujące czynności:

  1. Otwórz Menedżera zadań systemu Windows, wybierz pozycję Microsoft Access, a następnie kliknij pozycję Zakończ zadanie.
  2. Otwórz ponownie bazę danych i utwórz nowy moduł.
  3. W kodzie VBA użyj metody RefreshLink kolekcji TableDefs dla tabel połączonych:
Public Function TableRelinkSample()
           CurrentDb.TableDefs("<TableName>").RefreshLink
     End Function

Uwaga Jeśli masz wiele połączonych list programu SharePoint, dla dowolnej tabeli musisz wywołać połączenie RefreshLink tylko raz.

  1. Wywołaj funkcję TableRelinkSample() z makra AutoExec lub innego kodu startowego w bazie danych.

    Metoda TableDef.RefreshLink (DAO)