Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Frage zum Screen Updating

Begonnen von accessy, Januar 04, 2013, 19:25:49

⏪ vorheriges - nächstes ⏩

accessy

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..?

bahasu

Hi,

Me.Painting = False
und
Me.Painting = True

Harald
Servus

accessy

Hallo Harald,

ich habs mal getestet. Leider keine Verbesserung,
eher noch schlechter als mit dem Application.Echo

bahasu

Hi,

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

Harald
Servus

Wurliwurm

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.

accessy

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

Wurliwurm

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

accessy

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.

bahasu

#8
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
Servus

accessy

Das Sub Gesperrt steht in einem Modul
Das Sub Form_Current im Formular. Gibt nur ein Formular in dieser DB.