Flattern der Sanduhr, Echo, AXp, WinXp

27/06/2008 - 11:44 von Dietmar Thesing | Report spam
Hallo zusammen,
ich hàtte gerne der Sanduhr das Flattern verboten - bekomme es aber
nicht hin. Vielleicht hat jemand von Euch noch eine Idee.

Ein HF, ein UF das das Problem macht, darin ein UFUF. Beide UFos sind
Einzelblattansicht.
Beim Öffnen des HF (docmd) klappt es mit folgender Prozedur - die
Sanduhr bleibt brav stehen, bis das Formular geöffnet ist und alle
Ereignisse abgelaufen sind.

Public Sub subEchoAus()
Debug.Print "EchoAus"
Application.Echo False
Screen.MousePointer = 11
R.prpEcho = False
End Sub

Gibt natürlich dann noch eine subEchoAn.

Wenn ich aber im HF auf ein Label klicke, um den Datensatz im UF zu
wechseln, flattert die Sanduhr, was ich ausgesprochen unschön finde.
Und auch nicht so recht verstehe - warum bleibt sie im einen Fall
ruhig stehen, im anderen flattert sie? Beim Datensatzwechsel laufen
die gleichen Ereignisse ab, die auch beim Öffnen ablaufen. Nur der
Aufruf ist ein anderer. Laut OH sollte - außer Meldungen und
Popupformularen - nix mit dem Bildschirm passieren.

Die Prozedur, bei die Sanduhr flattert füge ich unten noch dazu.

Ratlos,
vielen Dank für Eure Hilfe,
(und wenn es nicht zu àndern ist, bleibt es halt so. )
Herzlicher Gruß
Dietmar


Hier die Prozedur, die von den 6 Bezeichungsfeldern ausgelöst werden
kann:

Private Sub fcSwitch(ByVal lgBezNr As Long)
Debug.Print "HF Switch_Beginn" & ";" & fcZeitDauer() & ";" & _
fcZeitSetzen()
Dim frm As Access.Form
Dim rs As DAO.Recordset
'Aufrufer ist die gedrückte Schaltflàche.
'Sie wird gebraucht, um zu entscheiden, welche Schaltflàche
' gedrückt wurde,
'also welcher Datensatz angezeigt werden soll.
Dim bezAufrufer As Access.Label
Dim bez As Access.Label
Dim I As Long
Dim lgtop As Long

'Switchen ignorieren, wenn die Karte schon einmal gedrückt wurde.
'Sonst rückt die Sf immer höher.
'Außerdem ist ja dann die nochmalige Auslösung der Berechnung
'überflüssig.
If lgBezNr = gbyLastSwitch Then
Exit Sub
Else
gbyLastSwitch = lgBezNr
End If

subEchoAus
Set frm = Me!ctrfrmR_UF.Form
Set rs = frm.Recordset
Set bezAufrufer = Me("bez" & CStr(lgBezNr))
lgtop = bezAufrufer.Top '1785

'Spezialeffekt einstellen - erhöht 1 vertieft 2 graviert 3
For I = 1 To 6
Set bez = Me("bez" & CStr(I))
bez.SpecialEffect = 3
bez.Height = 345
bez.Top = lgtop
Next I

rs.MoveFirst
'Steht ja auf Datensatz 1, also 1 weniger weiterbewegen
rs.Move lgBezNr - 1 'löst form-current aus
bezAufrufer.SpecialEffect = 1
bezAufrufer.Height = 396
bezAufrufer.Top = lgtop - 20
' TR-Bilder anzeigen (ausgelagert, weil es auch beim
' frmR-current aufgerufen werden muss)
subPicTR rs
subEchoAn

Set rs = Nothing
Debug.Print "HF switch Ende"
End Sub
 

Lesen sie die antworten

#1 Mark Doerbandt
27/06/2008 - 11:48 | Warnen spam
Hallo, Dietmar,

Dietmar Thesing:

ich hàtte gerne der Sanduhr das Flattern verboten

Application.Echo False
Screen.MousePointer = 11
R.prpEcho = False



mal unbenommen, ob ich genau verstanden habe, wo Dein Problem ist bzw.
was Du genau unter Flackern verstehst: hast Du mal Me.Painting (ggf.
zusaetzlich) probiert?

Gruss - Mark

Informationen fuer Neulinge in den Access-Newsgroups unter
http://www.doerbandt.de/Access/Newbie.htm

Bitte keine eMails auf Newsgroup-Beitràge senden.

Ähnliche fragen