Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: accessy am Januar 04, 2013, 19:25:49

Titel: Frage zum Screen Updating
Beitrag von: accessy am Januar 04, 2013, 19:25:49
In Excel ist es das ScreenUpdating = False / True mit dem man das "Flackern" beim Aktualisieren unterbinden kann.
In Access scheint das wohl dieses
Application.Echo False / True zu sein.

Also ich hab es mal eingebaut,
aber einen merklichen Unterschied kann ich nicht feststellen.
Zitat
Application.Echo False
  Me.Listebox1.Visible = False
  Me.Listebox2.Visible = False
  Me.Listebox3.Visible = False
  Me.Listebox4.Visible = False
Application.Echo True
Mache ich was falsch, ist das nunmal so, gibt es da noch andere Möglichkeiten..etc..etc..?
Titel: Re: Frage zum Screen Updating
Beitrag von: bahasu am Januar 04, 2013, 19:39:26
Hi,

Me.Painting = False
und
Me.Painting = True

Harald
Titel: Re: Frage zum Screen Updating
Beitrag von: accessy am Januar 04, 2013, 22:31:08
Hallo Harald,

ich habs mal getestet. Leider keine Verbesserung,
eher noch schlechter als mit dem Application.Echo
Titel: Re: Frage zum Screen Updating
Beitrag von: bahasu am Januar 05, 2013, 06:09:44
Hi,

wie hast Du den painting-Befehl eingesetzt?
- bei welchem Ereignis?
- welche "Flacker"-Ereignisse treten bei welcher Aktion auf?

Harald
Titel: Re: Frage zum Screen Updating
Beitrag von: Wurliwurm am Januar 05, 2013, 11:27:49
Im Access verwende ich Me.Painting = False ständig vor Anpassungen von Formularen und es verhindert das Flackern. Me bezieht sich aber immer auf das aktuelle Formular, sprich, wenn man Unterformulare einbindet, wirkt sich das nicht auf auf diese.
Titel: Re: Frage zum Screen Updating
Beitrag von: accessy am Januar 05, 2013, 12:33:31
Also, der gesamte Code sieht so aus:
Zitat
Private Sub Form_Current() 'Ereignis beim Weiterschalten zum nächsten DS
If Not Me.NewRecord Then 
   Call Gesperrt                    'If... Then wird benötigt, weil sonst das Duplizieren nicht funktioniert
End If
   Me.Painting = False
   Me.Sperren = False
   Me.Liste_1.Visible = False
   Me.Liste_2.Visible = False
   Me.Liste_3.Visible = False
   Me.Liste_4.Visible = False
   Me.Liste_5.Visible = False
Me.Painting = True
End Sub

Zitat
Option Compare Database
Option Explicit
Sub Gesperrt()
    With Form_Daten
     .Sperren = False
     .Sperren.Caption = "LOCKED"
     .TB1.Locked = True
     .TB2.Locked = True
     .TB3.Locked = True
     .TB4.Locked = True
     .TB5.Locked = True
     .TB6.Locked = True
     .TB7.Locked = True
     .TB8.Locked = True
     .TB9.Locked = True
    End With
End Sub
Titel: Re: Frage zum Screen Updating
Beitrag von: Wurliwurm am Januar 05, 2013, 15:09:28
Probier mal im Sub Gesperrt

Sub Gesperrt()
    With Form_Daten
     .Painting = False
     .Sperren = False
     .Sperren.Caption = "LOCKED"
     .TB1.Locked = True
     .TB2.Locked = True
     .TB3.Locked = True
     .TB4.Locked = True
     .TB5.Locked = True
     .TB6.Locked = True
     .TB7.Locked = True
     .TB8.Locked = True
     .TB9.Locked = True
     .Painting = True
    End With
End Sub
Titel: Re: Frage zum Screen Updating
Beitrag von: accessy am Januar 05, 2013, 16:01:21
Das hatte ich auch schon mal versucht. Bringt auch nichts.
Naja, dann ist das halt so mit dem Geflacker.
Kann man wohl nichts machen......

Danke für die vielen Hinweise.
Titel: Re: Frage zum Screen Updating
Beitrag von: bahasu am Januar 05, 2013, 16:13:00
Hi,

stehen die Anweisungen in einem Modul oder im Formular?

Was passiert, wenn Du

Sub Gesperrt()
    Me.Painting = False
    Me.Sperren = False
    Me.Sperren.Caption = "LOCKED"
    Me.TB1.Locked = True
    Me.TB2.Locked = True
    Me.TB3.Locked = True
    Me.TB4.Locked = True
    Me.TB5.Locked = True
    Me.TB6.Locked = True
    Me.TB7.Locked = True
    Me.TB8.Locked = True
    Me.TB9.Locked = True
    Me.Painting = True
End Sub

im Formular verwendest?

Harald
Titel: Re: Frage zum Screen Updating
Beitrag von: accessy am Januar 05, 2013, 16:22:14
Das Sub Gesperrt steht in einem Modul
Das Sub Form_Current im Formular. Gibt nur ein Formular in dieser DB.