Połączenie danych Dashboard Excel zostaje przerwane

0

Mam konfigurację do wyświetlania pewnego rodzaju statusu / deski rozdzielczej, zasadniczo dziennika, który jest aktualizowany z innego komputera. Działa za pomocą Excela, jak poniżej:

  • Ktoś dodaje dane do tabeli w „Log_Source.xlsx”, która znajduje się w udziale sieciowym, i zapisuje ją.
  • Komputer deski rozdzielczej (którym jest Intel Compute Stick (Windows 10 Home) i monitor naścienny) ma plik lokalny „Log_Dashboard.xlsx” z połączeniem danych do pliku źródłowego w sieci. Zapytanie jest odświeżane co minutę. W ten sposób pulpit nawigacyjny może pobierać i wyświetlać dane, prawie w czasie rzeczywistym, bez blokowania pliku do edycji.

Problem:

Co kilka dni będę wyświetlał komunikat na pulpicie informujący, że nie można znaleźć źródła danych. I nie będzie już aktualizować danych. Zamykanie i ponowne otwieranie Log_Dashboard.xlsx naprawia to, ale jak mogę temu zapobiec?

Co próbowałem:

  • W ustawieniach zasilania systemu Windows: zmieniono na plan wysokiej wydajności. Ustaw dysk twardy, aby nigdy się nie wyłączał. Ustaw opcję Wireless Adapter na Maximum Performance.
  • Zaplanowano uruchamianie skryptu AutoHotKey co 12 godzin, który po prostu porusza myszą tam iz powrotem. Pomyślałem, że może to uniemożliwić przejście komputera w stan uśpienia, jeśli to byłby problem.
  • Dodano makro do pliku Excel, który zamyka i otwiera go co godzinę. Ponieważ za każdym razem ręcznie naprawiam ten problem, pomyślałem, że to załatwi, ale nadal tak się dzieje.

Jakieś sugestie? Lub jeśli istnieje inne podejście do konfigurowania takiego wyświetlacza deski rozdzielczej, jestem otwarty na ... Dzięki.

wysiwyg
źródło
Czy istnieje wzorzec błędu? A może to przypadek? Czy to możliwe, że jest to związane z niemożnością odświeżenia, gdy ktoś ma otwarty plik źródła danych?
CharlieRB
@CharlieRB Problem występuje zwykle rano, po tym jak komputer był bezczynny przez całą noc. Nie nazwałbym tego wzorem, ale dlatego myślałem, że to przyczyna oszczędzania energii. Otwarty plik źródłowy nie wpływa na jego zdolność do odświeżania.
wysiwyg

Odpowiedzi:

0

Publikowanie tego, co dla mnie zadziałało, na wypadek, gdyby ktoś z podobnym problemem natknął się na to w przyszłości:

Nigdy nie byłem w stanie ustalić, dlaczego połączenie danych ciągle spada. Zmieniłem komputer „deski rozdzielczej” z Intel Compute Stick podłączonego do Wi-Fi na stary kompaktowy pulpit podłączony do sieci Ethernet. To nieco pomogło, ale nadal występowały spadki połączenia danych, a także inne błędy programu Excel, takie jak „Brak pamięci”.

Oto obejście, które w końcu zadziałało w mojej sytuacji:

Wstawiłem moduł do pliku Excel („Log_Dashboard.xlsm”) z następującym kodem:

Sub WorkbookSaveCycle()

ThisWorkbook.Save
PID = Shell("cmd /k @echo off & echo Restarting Dashboard, please wait... & @echo off & timeout /t 4 /nobreak & ""C:\Program Files (x86)\Microsoft Office\root\Office16\excel.exe"" """ & Application.ActiveWorkbook.FullName & """ & exit", vbMaximizedFocus)
Application.Quit

End Sub

To po prostu zapisuje skoroszyt, uruchamia polecenie powłoki, które wyświetla komunikat o ponownym uruchomieniu pulpitu nawigacyjnego (na wypadek, gdyby ktoś patrzył na ekran w tym momencie), a następnie ponownie otwiera plik Excel po odczekaniu kilku sekund, aż zostanie zamknięty . ( excel.exeścieżka pliku może wymagać zmiany, jeśli używasz innej wersji pakietu Office)

Następnie umieszczam to w ThisWorkbookmodule:

Private Sub Workbook_Open()

Application.DisplayFullScreen = True
Application.OnTime Now + TimeValue("00:15:00"), "WorkbookSaveCycle"

End Sub

Po otwarciu pliku Excel ustawia się go w tryb pełnoekranowy, a następnie, po odczekaniu wstępnie zdefiniowanego czasu (tutaj 15 minut), wywołuje powyższe WorkbookSaveCyclemakro. Co po prostu ponownie uruchamia cykl, zamykając i ponownie otwierając plik.

Jestem pewien, że jest lepszy sposób, aby to zrobić, ale od czasu wprowadzenia tych zmian jest on zasadniczo solidny.

wysiwyg
źródło