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..?
Hi,
Me.Painting = False
und
Me.Painting = True
Harald
Hallo Harald,
ich habs mal getestet. Leider keine Verbesserung,
eher noch schlechter als mit dem Application.Echo
Hi,
wie hast Du den painting-Befehl eingesetzt?
- bei welchem Ereignis?
- welche "Flacker"-Ereignisse treten bei welcher Aktion auf?
Harald
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.
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
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
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.
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
Das Sub Gesperrt steht in einem Modul
Das Sub Form_Current im Formular. Gibt nur ein Formular in dieser DB.