Dostęp zawiesza się po otwarciu połączonej tabeli na liście programu SharePoint

Symptomy

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

Przyczyna

Problem występuje, gdy użytkownik, który próbuje otworzyć istniejącą tabelę połączoną w programie Access, nie ma lokalnie przechowywanych poświadczeń dla witryny programu SharePoint zawierającej listę. Przechowywane 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 W przypadku Access 2016 musisz mieć wersję click-to-run w wersji 1804 (kompilacja 9226.2114) lub msi (kompilacja 16.0.4690.1000) lub nowszą wersję zainstalowaną w celu użycia tej metody. Aby dodać wpis rejestru EnableLegacyListAuth , wykonaj następujące kroki:

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

    W przypadku 32-bitowej usługi Office w 32-bitowym systemie Windows lub 64-bitowym pakiecie Office w 64-bitowym systemie Windows

    • W przypadku programu Access 2013

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\15.0\List

    • Dla Access 2016

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\16.0\List

    W przypadku 32-bitowego pakietu Office w 64-bitowym systemie Windows

    • W przypadku programu Access 2013

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

    • Dla 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 przycisk 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

    • Dla Access 2016

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

  7. Upewnij się, że wartość biblioteki EnableADAL to 0.

  8. Zamknij Edytor rejestru.

Metoda 2. Odświeżanie listy

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

  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łączoną w programie Access, a następnie wybierz pozycję Więcej opcji>Odśwież listę.
  4. Zaloguj się przy użyciu poświadczeń.

Aby ponownie połączyć listę, wykonaj następujące kroki:

  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 połączonych tabel:
Public Function TableRelinkSample()
           CurrentDb.TableDefs("<TableName>").RefreshLink
     End Function

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

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

    TableDef.RefreshLink, metoda (DAO)