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

Problemstellung:
Eine auch oft gestellte Frage: Wie kann ich in einem Zug alle 10 Felder in meinem Suchform leeren
oder alle 15 Checkboxen deaktivieren usw.
Die Lösung bestand dann meistens darin alle Felder einzeln aufzurufen und die Einstellung
vorzunehmen oder eine eigene Funktion zu schreiben.
Deshalb möchte ich hier eine universelle Funktion vorstellen mit des möglich ist mehrere
Eigenschaften zu ändern.
Wie kann ich gleichzeitig für mehrere Controls bestimmte Eigenschaften ändern bzw. prüfen?

Voraussetzungen:
Das Bsp ist ab A97 lauffähig.

Funktionsweise:
Die Funktion "tk_Controls_Property" ändert für alle Controls, deren Marke (Tag-Eigenschaft) gesetzt ist, die benannte Eigenschaft.


Nicht auf die Unterformulare selbst anwenden !!!

Folgende Eigenschaften können manipuliert werden mit möglichen Werten:

"Enabled" True(-1)/False(0)
"Locked" True(-1)/False(0)
"Visible" True(-1)/False(0)
"BackStyle" Normal=1, Transparent=0
"FontSize" beliebige Werte von 1 bis 127
"FontBold" Fett=True (-1), Normal=False (0)
"BorderStyle" Transparent=0, Durchgezogen=1, Strichlinien=2
Kurze Strichlinien=3, Punkte=4, Wenige Punkte=5
Strichlinie Punkt=6, Strichlinie Punkt Punkt=7
"SpecialEffect" Flach=0, Erhöht=1, Vertieft=2, Graviert=3, Schattiert=4, Unterstrichen=5
"Value" Null oder beliebiger Wert
"Empty" Kein Wert

Bis auf "Empty" können alle Properties auch auf Controls in Unterformularen angewendet werden.

Desweiteren ist ein Erweiterung des Programmcodes um weitere Eigenschaften möglich.
Controls die eine Eigenschaft nicht besitzen bzw. unterstützen lösen den Fehler 2455 aus,
durch On Error Resume Next, werden diese übersprungen.
Das genaue Listing s. Bsp-DB

Syntax und Argumente:

Public Function tk_Controls_Property(objF As Form, strMarke As String, strProperty As String, Optional varValue As Variant = False)
objF = Name des Forms, also "Me" oder "Forms![frm_Start]![frm_Sub1].Form" für ein UFO
strMarke = die Marke (TAG), z.B: "XY"
strProperty = Name der Eigenschaft z.B. "Locked"
varValue = Wert der Eigenschaft z.B. True, False, Null usw.

Wichtige Hinweise:

1. Zu beachten wäre das keine Controls auf deaktiv, gesperrt oder unsichtbar gesetzt werden können, die den Focus besitzen.
Das würde die Fehler 2164 und 2165 auslösen.
Als Lösung würde sich ein Control anbieten, das eine Größe von 0x0 hat und beim Aufruf der Funktion den Focus erhält.


Dieses Control darf nicht unsichtbar sein.

2. nicht alle Eigenschaftseinstellungen stehen allen Controltypen zur Verfügung, z.B. Hintergrund Transparent für Listenfelder oder Checkboxen usw.
Auch ergeben einige Einstellungen nur in Kombination ein Sinn, z.B. fast alle BorderStyles ergeben nur Sinn mit SpecialEffect=Flach usw.

3. Das Füllen von Controls mit "True"(-1) oder False(0) hat natürlich nur bei Checkboxen Sinn.
Die hier dargestellte Lösung ist nur aus Demonstrationszwecken gewählt.
Bei der Wertübergabe Null für Listen- und Kombinationsfelder wird die dortige Markierung aufgehoben.

4. Dem Argument "Empty" wird kein Wert übergeben


Nicht auf die Unterformulare selbst anwenden !!!

Mögliche Erweiterungen:

Es besteht die Möglichkeit die Funktion um weitere Properties zu erweitern.
Denkbar wäre eine Ausweitung auf die Eigenschaften "Backcolor", "Bordercolor", "FontName", "BorderWidth", "FontWeight", "FontItalic", "FontUnderline" und "TextAlign"
Die Funktion müsste, z.B. für die Property "Backcolor" dahin gehend erweitert werden, das die Property in der Select Case-Anweisung gelistet wird:

Case "Enabled", "Locked", "Visible", "BackStyle", "FontSize", "FontBold", "BorderStyle", "SpecialEffect", "Backcolor"

Der Aufruf um z.B. bei allen Controls mit TAG="XYZ" den Hintergrund rot zu färben wäre dann:

tk_Controls_Property Me, "XYZ", "Backcolor", 255

Beispiele zum Aufruf:

Alle Controls mit dem TAG= „XY“ sollen auf unsichtbar gesetzt werden

für HFO
tk_Controls_Property Me, "XY", "Visible", False

für UFO (Name des UFO-Steuerelements im HFO „frm_Sub_OnOff“
tk_Controls_Property Forms![frm_Start]![frm_Sub_OnOff].Form, "XY", "Visible", False


Alle Controls mit dem TAG= „XY“ sollen auf Aktiv gesetzt werden

für HFO
tk_Controls_Property Me, "XY", "Enabled", True

für UFO (Name des UFO-Steuerelements im HFO „frm_Sub_OnOff“
tk_Controls_Property Forms![frm_Start]![frm_Sub_OnOff].Form, "XY", "Visible", True


Bei allen Controls mit dem TAG= „YZ“ soll der Hintergrund auf Transparent gesetzt werden

für HFO
tk_Controls_Property Me, "YZ", "BackStyle", 0

für UFO (Name des UFO-Steuerelements im HFO „frm_Sub_Styles“
tk_Controls_Property Forms![frm_Start]![frm_Sub_Styles].Form, "YZ", 0

Bei allen Controls mit dem TAG= „ZY“ soll der Schriftstil auf „Fett“ gesetzt werden

für HFO
tk_Controls_Property Me, "ZY", "FontBold", True

für UFO (Name des UFO-Steuerelements im HFO „frm_Sub_Fonts“
tk_Controls_Property Forms![frm_Start]![frm_Sub_Fonts].Form, "ZY", "FontBold", True

Bei allen Controls mit dem TAG= „ZY“ soll der Schriftgröße auf „22“ gesetzt werden

für HFO
tk_Controls_Property Me, "ZY", "FontSize", 22

für UFO (Name des UFO-Steuerelements im HFO „frm_Sub_Fonts“
tk_Controls_Property Forms![frm_Start]![frm_Sub_Fonts].Form, "ZY", "FontSize", 22

Bei allen Controls mit dem TAG= „XZ“ soll der Feldinhalt gelöscht werden (Bitte Hinweise Punkt 3, s.o. beachten)

für HFO
tk_Controls_Property Me, "XZ", "Value", Null

für UFO (Name des UFO-Steuerelements im HFO „frm_Sub_Values“
tk_Controls_Property Forms![frm_Start]![frm_Sub_Values].Form, "XZ", "Value", Null

Bei allen Controls mit dem TAG= „XZ“ soll der Feldinhalt auf „Test1“ gesetzt werden (Bitte Hinweise Punkt 3, s.o. beachten)

für HFO
tk_Controls_Property Me, "XZ", "Value", "Test1"

für UFO (Name des UFO-Steuerelements im HFO „frm_Sub_Values“
tk_Controls_Property Forms![frm_Start]![frm_Sub_Values].Form, "XZ", "Value", "Test1"


Bei allen Controls mit dem TAG= „WZ“ soll geprüft werden ob das Control Daten enthält(Bitte Hinweise Punkt 4, s.o. beachten)

für HFO
tk_Controls_Property Me, "WZ", "Empty"
 

Dateien:

Manipulation von Control-Properties in Formularen

ab A97

Die Zip-Datei enthält ein Version für A97 und eine ab A00
Datum 05.02.2018
Dateigröße 133.18 KB
Download 2.406


Ähnliche Artikel

Kommentar schreiben

Sicherheitscode
Aktualisieren

Login Form

Neueste Artikel

Problemstellung:In MS-Access ist es mit Bordmitteln nicht möglich Zeiten über 24 Stunden zu berechnenIn dieser Bsp-DB möchte ich zeigen wie es trotzdem geht. Voraussetzungen:Das Bsp ist ab A2007...
1.png2.png0.png4.png2.png1.png2.png
Heute112
Gestern145
Diese Woche257
Dieser Monat1636
Total1204212

  • IP: 54.92.190.11
  • Browser: Unknown
  • Version:
  • OS: Unknown

Online

1
Online

18. September 2018

Letzte Kommentare

  • Trusted Locations Manager

    Tommy Admin 13.07.2018 13:06
    RE: Trusted Locations Manager
    Hallo Matthias, aus Ermangelung einer 64bit Version kann ich das leider nicht prüfen. Tut mir leid. Gruss ...

    Weiterlesen...

     
  • Trusted Locations Manager

    Matthias 13.07.2018 06:48
    Funktioniert nicht
    Habe gerade den TL-Manager installiert. Nach dem Start sagt er mir, dass es kein Office erkennen ...

    Weiterlesen...