Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Datensatzmarkierung durch SelHeight Rückgängig machen funktioniert nur einmal

Begonnen von KonradR, Mai 18, 2023, 22:48:36

⏪ vorheriges - nächstes ⏩

KonradR

Hallo liebe Accessfreunde,

ich habe mir durch ein Textfeld, was ich mit einer bedingten Formatierung versehen habe, einen farbigen Datensatzmarkierer erstellt, der die ganze Datenzeile des aktiven Datensatzes markiert. Das Textfeld liegt dabei hinter den Steuerelementen und die Steuerelemente sind transparent. Ich habe das Ganze so programmiert, dass wenn ich auf den Datensatzmarkiererfeld klicke, die bedingte Formatierung für das Textfeld aufgerufen wird. Jetzt möchte ich aber, dass die Formatierung rückgängig gemacht wird, wenn ich einfach irgendwo im Unterformular (außer auf den Datensatzmarkierer) klicke. Wenn ich das über Selheigt mache, funktioniert es genau einmal. Dann greift die bedingte Formatierung nicht mehr. Habt ihr da eine Idee, wie das immer wieder funktioniert? Hier mein Code für das Aufrufen der bedingten Formatierung:
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = 1 And Me.SelHeight = 1 Then
        Me.txtaktueID = Nz(Me.txteinkaID, 0)
    End If
End Sub
Und hier der Code für das löschen der Formatierung
Private Sub Form_Current()
    If Me.SelHeight = 0 Then
        Me.txtDatensatzHervorheben.BackStyle = 0
    End If
End Sub
Allerdings muss ich noch erwähnen, dass ich den Code für das Form_Current Ereignis auskommentieren muss und das auskommentieren Rückgängig machen muss, wenn das Formular schon gestartet ist. Wenn der Code nicht auskommentiert wurde und ich das Formular starte, dann funktioniert es nicht.

KonradR

Hallo liebe Accessfreunde,

ich habe das Problem gelöst. Es lag so was von auf der Hand, aber aufgefallen ist es mir erst jetzt. Wenn ich das Textfeld über die Eigenschaft "Backstyle = 0" über das Form_Current Ereignis transparent mache, dann muss ich es natürlich beim Form_MouseDown Ereignis wieder mit "Backstyle = 1" intransparent machen. Jetzt funktionierts. Hier mit Code:
Private Sub Form_Current()
    If Me.SelHeight = 0 Then
        Me.txtDatensatzHervorheben.BackStyle = 0
    End If
End Sub

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Me.SelHeight = 1 Then
        Me.txtDatensatzHervorheben.BackStyle = 1
        Me.txtaktueID = Nz(Me.txteinkaID, 0)
    End If
End Sub