1 1 1 1 1 1 1 1 1 1 Rating 5.00 (2 Votes)

Problemstellung:
Das Checkbox-Control in MS-Access hat einen Nachteil.
Es ist nicht möglich das Control zu vergrößern bzw. farbig zu gestalten.
Mit ein paar Tricks ist das doch möglich.
Die Originalidee stammt von Günther Ritter und und wurde von mir erweitert und angepasst.

Voraussetzungen:
Das Bsp ist ab A00 lauffähig

Funktionsweise:
Erstmal kennen wir alle die Standardansicht der Checkbox.

Aber irgendwie ist das immer etwas eintönig.
Manchmal wäre doch es besser so:

 

Aber wie macht man das nun?
Zuerst benötigt man für die beiden linken Bsp. den TT-Font "Marlett" und für die beiden rechten "Wingdings2"

Die Schriftgröße und Farbe ist in den Eigenschaftseinstellungen frei definierbar.
Im Steuerelementinhalt der großen Boxen schreibt man dann z.B.:

=Wenn([chk_1]=-1;"b") 

Wobei der Bezug auf die richtige Checkbox gesetzt wird und das gewünschte Symbol der gewählten Schriftart.
Die echte Checkbox wird auf nicht sichtbar gesetzt und ist nur zur Demonstration hier im Bsp sichtbar.

Jetzt muss noch etwas Code eingefügt werden.
Im Modul "mod_Check" sind 2 API-Funktionen und eine Sub enthalten.
Diese dienen dazu das der TextCursor nicht in unserer Checkbox angezeigt wird.

Public Declare Function HideCaret Lib "user32" (ByVal hWnd As Long) As Long
Public Declare Function apiGetFocus Lib "user32" Alias "GetFocus" () As Long
Public Sub SetMark(objCheck As CheckBox)
    If objCheck = True Then
        objCheck = False
    Else
        objCheck = True
    End If
End Sub


Der Sub "SetMark" wird dann im Formular der der Name der veränderten Checkbox übergeben.

Im Formular selbst ist dann folgender Code erforderlich:
In den Ereignissen "Beim Hineingehen" und "Bei Focuserhalt" der vergrößter Checkbox.
Ausschalten des Textcursors:

Private Sub chkG_1_Enter()
    HideCaret apiGetFocus
End Sub
Private Sub chkG_1_GotFocus()
    HideCaret apiGetFocus
End Sub

Im Ereignis "Beim Klicken"
Ausschaten des Textcursors und setzen des Wertes:

Private Sub chkG_1_Click()
    HideCaret apiGetFocus  'Cursor bei Focus abschalten
    SetMark Me.chk_1
End Sub

Im Ereignis "Bei Taste" wird der Wert unserer Checkbox bei der Entertaste geändert:

Private Sub chkG_1_KeyPress(KeyAscii As Integer)
  If KeyAscii = 13 Then
    SetMark Me.chk_1
  End If
End Sub

Das Ergebnis sieht dann so aus:

 

In der Bsp-DB sind die Codes nur im oberen linken Textfeld hinterlegt.
Bei den anderen würde es genauso funktionieren.
 

Auch in Berichten ist diese Darstellung möglich.

 

Dateien:
(0 Stimmen)

Bsp-DB für die Anzeige von großen und farbigen Checkboxen

ab A00


Die Zip-Datei enthält ein Version ab A00
Datum 05.02.2018
Dateigröße 18.45 KB
Download 1.012

Ähnliche Artikel

Kommentar schreiben

Sicherheitscode
Aktualisieren

Login Form

1.png1.png9.png3.png1.png8.png2.png
Heute55
Gestern56
Diese Woche111
Dieser Monat1241
Total1193182

  • IP: 54.81.78.135
  • Browser: Unknown
  • Version:
  • OS: Unknown

Online

1
Online

22. Mai 2018