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

Problemstellung:

Für 32Bit und 64Bit Office Versionen

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:

Für 32Bit und 64Bit Office Versionen

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.729


 

Ähnliche Artikel

You have no rights to post comments

Login Form

Neueste Artikel

SQL zu VBA Konverter
26. Oktober 2018
Problemstellung: Nur für 32Bit Office Versionen Gibt es eine Möglichkeit SQL-Code einer Abfrage so zu konvertieren das der Code in VBA genutzt werden kann? Lösung: Bis Access 2010 gibt das Tool...
1.png5.png7.png9.png3.png9.png9.png
Heute431
Gestern486
Diese Woche1748
Dieser Monat8022
Total1579399

  • IP: 44.223.39.199
  • Browser: Unknown
  • Version:
  • OS: Unknown

Online

3
Online

29. März 2024

Letzte Kommentare

  • Berechnen von Zeiträumen als Abfragekriterium

    elmard 02.02.2021 21:02
    1000 Dank
    für diese Datenbankanwendung! Eine sehr gute Umsetzung mit den vielen Möglichkeiten des Datums.

    Weiterlesen...

     
  • SQL zu VBA Konverter

    Tommy Admin 03.11.2019 16:33
    RE: SQL zu VBA Konverter
    Hallo Elmard, danke für die Info. :lol:

    Weiterlesen...

     
  • SQL zu VBA Konverter

    elmard 03.11.2019 14:49
    Bei SmartTools neue Version 4.0
    Dieses Tool liegt inzwischen in der Version 4 vor und läuft nun auch von A2013 und A2016 sowie im ...

    Weiterlesen...

     
  • Workshop zur Benutzung des Multi-Column TreeView Control unter MS-Access

    TommyK 27.02.2019 06:52
    Workshop
    Hallo mpegjunkie, danke für Dein Feedback. Schön das Dir Workshop weiter hilft. :D

    Weiterlesen...

     
  • Workshop zur Benutzung des Multi-Column TreeView Control unter MS-Access

    mpegjunkie 26.02.2019 20:10
    Perfekter Workshop
    Hallo Tommy, perfekter Workshop, toll und umfassend erläutert. Jetzt nutze ich diese Controls auch.

    Weiterlesen...