Uruchomię procedurę przechowywaną, aby pobrać dane zserwer, który zajmuje około 10-15 minut. Podczas uruchamiania procedury składowanej mój skoroszyt programu Excel zawiesza się, dopóki wszystkie dane nie zostaną zwrócone. Mogę mieć opcję uruchomienia tej procedury przechowywanej w tle, pozwalając jednocześnie na działanie skoroszytu programu Excel. Chodzi o to, aby dać użytkownikowi możliwość pracy w skoroszycie podczas pobierania danych zamiast czekać 10–15 minut tylko na przeglądanie arkusza.
Moje pytanie: Nigdy wcześniej nie widziałem tego pomysłu w żadnej innej aplikacji. Nie wiem, czy to oznacza standard dobrej praktyki. Załadowanie bazy danych podczas pracy w tym samym skoroszycie i po zakończeniu danych ostrzega użytkownika, że wszystkie dane przeszły.
Co myślicie? Czy uważasz, że może to skomplikować coś innego?
Nie podoba mi się ten pomysł, ale użytkownik nie straciłby 10-15 minut.
Dziękuję wam wszystkim :)
Odpowiedzi:
0 dla odpowiedzi № 1Musisz utworzyć instancję programu Exceli uruchom tam swoją procedurę stpred. W takim przypadku aplikacja Excel będzie nadal dostępna dla użytkownika, jednak oczekuję, że będzie ona powolna. Musisz zmodyfikować kod VBA, aby uruchomić go w nowej instancji aplikacji Excel:
dim xlApp as Excel.Application
set xlApp=New Excel.Application
więc tutaj, aby zrobić swoje rzeczy, musisz również wspomnieć o aplikacji, ponieważ masz teraz więcej niż jedną aktywną aplikację. Na przykład, aby utworzyć nowy skoroszyt, należy:
xlApp.Workbooks.Add
Myślę, że prawdopodobnie możesz otworzyć nową instancjęExcel ręcznie, a następnie otwórz skoroszyt zawierający kod VBA za pomocą OPEN z zakładki FILE, a następnie uruchom swój kod, w takim przypadku domyślna aplikacja Excel będzie dostępna dla użytkownika do pracy. Aby otworzyć nowe wystąpienie programu Excel, przytrzymaj klawisz SHIFT w dół i kliknij ikonę aplikacji Excel (w menu startowym lub na pulpicie itp., Jeśli nie wiesz, gdzie możesz go znaleźć, przejdź do menu Start systemu Windows i wyszukaj EXCEL)
Mam nadzieję że to pomoże!