Avatar billede per2edb Ekspert
21. august 2024 - 15:14 Der er 9 kommentarer

Undgå skærm Filcker

Jeg har før spurgt på dette men aldrig kunne forstå Echo og Painting helt ned til bunds. Det er ingen problem med simple App men jeg har f.eks
1 Privat Sub... med f.eks ca 10 DoCmd.OpenForm ....
Jeg har læst at når der springes ud af Sub'en som man gør i  DoCmd.OpenForm så virker Echo og Painting ikke mere efterfølgende
Er det rigtigt ???
Hvis ja så skal de vel gentages nedenunder næste DoCmd.OpenForm som vist .  eller........

Har i fordele ved at sætte både Echo og Painting sammen som vist nedenfor


Private Sub .........

          Application.Echo False
          Me.Painting = False

        DoCmd.OpenForm "1"
        Application.Echo False
        Me.Painting = False

        DoCmd.OpenForm "2"
        Application.Echo False
        Me.Painting = False

        DoCmd.OpenForm "3
        Application.Echo False
        Me.Painting = False


        JaNej = MsgBox(xxxx.....


end sub
Avatar billede Gustav Ekspert
21. august 2024 - 15:32 #1
Echo virker hele tiden, også hvis der opstår en fejl.
Det er derfor man for alt i verden skal undgå Echo. Mener man alligevel, at den er nødvendig, er det i reglen fordi, man er ude i noget snavs.

Painting kaldt, som du viser, har ingen virkning på formularen, du åbner, kun formularen selv (Me).
Avatar billede per2edb Ekspert
21. august 2024 - 17:09 #2
Jeg læser det som du anbefaler at udelade Echo også selvom der ikke er snavs.
Du besvarer ikke mit primære spørgsmål skal Painting gentages efter hver DoCmd
da virkningen skal bibeholdes efter DoCmd kaldet til andre forme
Altså Painting fra top til bund selvom der er mange DoCmd til andre forme
Jeg er klar på DoCmd kaldte forme ikke er omfattet
Avatar billede Gustav Ekspert
21. august 2024 - 21:44 #3
Jeg kan ikke se, at det skulle gøre nogen forskel at slå Painting fra i din viste kode.
Hvis de åbnede formularer flimrer, er de i dem, det måske kan have en virkning.
Avatar billede per2edb Ekspert
22. august 2024 - 08:06 #4
Jeg prøver igen:

Private Sub .........
          Application.Echo False
          Me.Painting = False
kodelinier
        DoCmd.OpenForm "1"
kodelinier
        Me.Painting = False  <= er denne nødvendig
  kodelinier
      .
        .  <=== Painting skal være False hele vejen ned
                      Også efter en DoCmd "åben en anden form"
Avatar billede Gustav Ekspert
22. august 2024 - 09:16 #5
Normalt ikke. Ved ikke hvad dine kodelinjer laver. Men prøv.
Avatar billede per2edb Ekspert
22. august 2024 - 09:46 #6
Jeg har ca 5000    Application.Echo False/true
Fjerner jeg dem opdateres formene subjektivt ca 20% langsommere og flikkeren forsvinder
Det har altså en pris men også en gevinst. Det er almindelig kendt

Men mht Me.Painting = False/true er jeg mere famlende
Så vidt jeg kan se skal den med igen når man har sprunget ud af formen til en anden form og vender tilbage igen.

En stor ikke særlig kendt gevinst opnås ved at fjerne .Value
Avatar billede Gustav Ekspert
22. august 2024 - 10:07 #7
5000 lyder helt vildt. Men hvis det virker efter hensigten, så OK.
Avatar billede per2edb Ekspert
22. august 2024 - 10:18 #8
Et ERP program med ca 200 forme og ca 50 tabeller
Avatar billede Gustav Ekspert
22. august 2024 - 10:57 #9
OK. Så er der jo rig lejlighed til at efterprøve, om det virker.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester