Artur Sołtysiak

Artur Sołtysiak Specjalista ds.
inwestycji, Orange
Polska S.A.

Temat: Wyświetlanie komunikatów

Cześć, może ktoś z forumowiczów coś zaproponuje.
Kod wykonuje określone działania. Chciałbym przed każdym działaniem wywołać komunikat co w danym momencie jest robione.
Komunikat ....1.....
...instrukcje...
Komunikat ...2...
...instrukcje...
Komunikat ...3...
...instrukcje...
Robię to obecnie otwierając formularz z parametrem (na formularzu jest etykieta której nazwę zmieniam), a następnie używam metody Repaint.
sub ()
Komunikat "...info1..."
...instrukcje...
Komunikat "info2"
...instrukcje...
end sub
Public Function Komunikat(strKom) As String
DoCmd.OpenForm "Komunikaty"
Form_Komunikaty.EKomunikat.Caption = strKom
Form_Komunikaty.Repaint
end function
Niestety czasami działa a najczęściej nie. Ani to eleganckie ani skuteczne. Czy znacie może inny sposób wyświetlania informacji której nie trzeba potwierdzać tak jak w NsgBox?
Marzanna Szulta

Marzanna Szulta właściciel, Usługi
Informatyczne
SZULTASET

Temat: Wyświetlanie komunikatów

Nie bardzo rozumiem jak to działa? Kod jest uruchamiany w formularzu, tak? Nie wystarczy zwykłe pole tekstowe? Normalnie ukryte, odkrywane na czas działania makra? Przy każdym z kolejnych kroków zmieniana jest jego treść. Coś w tym stylu:

Me.Poletekstowe="Komunikat 1"
Me.repaint
Instrukcje
Me.Poletekstowe="Komunikat 2"
Me.repaint
Instrukcje
(...)
Artur Sołtysiak

Artur Sołtysiak Specjalista ds.
inwestycji, Orange
Polska S.A.

Temat: Wyświetlanie komunikatów

Niewątpliwie zdecydowanie prostsze ale niestety też nie działa.
Me.repaint nie odświeża widoku i cały czas widać pierwszy komunikat :-(
Jeżeli w ramach testu kod wykonuje się krok po kroku - popychany ręcznie przez F8 to jest OK ale przy wykonywaniu całego kodu już nie.Ten post został edytowany przez Autora dnia 01.01.23 o godzinie 15:46
Marzanna Szulta

Marzanna Szulta właściciel, Usługi
Informatyczne
SZULTASET

Temat: Wyświetlanie komunikatów

Dziwne. Ja czasem taką metodę stosuję do wstawiania procentów wykonania (np.w kodzie z pętlą na dużej ilości danych) i pięknie wszystko się odświeża.
A jaki komunikat jest po przejściu calego kodu? I jak długo trwa wykonywanaie poszczególnych kroków?
Artur Sołtysiak

Artur Sołtysiak Specjalista ds.
inwestycji, Orange
Polska S.A.

Temat: Wyświetlanie komunikatów

Na początku pojawia się pierwszy komunikat, czasami - ale bardzo rzadko - pojawia się któryś z kolejnych. Po zakończeniu kodu formularz z komunikatem po prostu się zamyka. Próbowałem też z polem tekstowym - to samo. Cały kod wykonuje się czasami 15 sekund a czasami minutę. Kod transferuje dane z pliku excel do bazy. I plik i baza są na zasobach sieciowych więc czas trwania zależy od obciążenia sieci.
Marzanna Szulta

Marzanna Szulta właściciel, Usługi
Informatyczne
SZULTASET

Temat: Wyświetlanie komunikatów

Może warto po linii Me,Repaint wstawić linię Application.Wait i opóźnić wykonywanie kodu o 1s?
Artur Sołtysiak

Artur Sołtysiak Specjalista ds.
inwestycji, Orange
Polska S.A.

Temat: Wyświetlanie komunikatów

Zaraz spróbuję, chociaż wczoraj rozwiązałem to w inny sposób. Po Repaint dołożyłem polecenie DoEvents i komunikaty się odświeżają. Dziękuję za pomoc i współpracę :-)
Marzanna Szulta

Marzanna Szulta właściciel, Usługi
Informatyczne
SZULTASET

Temat: Wyświetlanie komunikatów

Ciekawe rozwiązanie. Na podstawie tego opisu raczej bym nue wpadła na to.
Pozdrawiam.



Wyślij zaproszenie do