{"id":55001615,"date":"2026-10-01T00:00:00","date_gmt":"2026-10-05T19:33:07","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=1615"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Formulareigenschaften_global_aendern","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Formulareigenschaften_global_aendern\/","title":{"rendered":"Formulareigenschaften global &auml;ndern"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg01.met.vgwort.de\/na\/8456be41b9994ab08d4ca4fc5f6fce74\" width=\"1\" height=\"1\" alt=\"\"><b>Mit &#8222;AllowZooming&#8220; und &#8222;ZoomResizesWindow&#8220; hat Microsoft zwei Formulareigenschaften eingef&uuml;hrt, die sich ausschlie&szlig;lich &uuml;ber die Properties-Auflistung ansprechen lassen &#8211; und das auch nur, wenn das Formular in der Entwurfsansicht ge&ouml;ffnet ist. Wer diese Eigenschaften f&uuml;r eine gewachsene Anwendung mit einigen Dutzend Formularen einstellen m&ouml;chte, hat stumpfe Flei&szlig;arbeit vor sich. Ein guter Anlass, sich ein Werkzeug zu bauen, das beliebige Eigenschaften f&uuml;r alle Formulare und Berichte einer Anwendung ausliest, sichert und setzt. Dieser Beitrag zeigt, wie das gelingt &#8211; und wof&uuml;r sich so ein Werkzeug jenseits der Zoom-Funktion noch alles einsetzen l&auml;sst.<\/b><\/p>\n<h2>Wof&uuml;r braucht man so etwas?<\/h2>\n<p>Die neuen Zoom-Eigenschaften, auf die wir im Beitrag <b>Zoomen in Access, Teil 2 <\/b>(<b>www.access-im-unternehmen.de\/1614<\/b>) eingehen, sind nur der aktuelle Anlassfall. Wenn Sie einmal dar&uuml;ber nachdenken, welche Einstellungen in einer Anwendung eigentlich f&uuml;r <b>alle<\/b> Formulare gleich sein sollten, kommt schnell eine ansehnliche Liste zusammen:<\/p>\n<ul>\n<li>Neue Eigenschaften nachr&uuml;sten, die Microsoft erg&auml;nzt hat &#8211; neben den Zoom-Eigenschaften etwa die angek&uuml;ndigte Eigenschaft f&uuml;r abgerundete Ecken<\/li>\n<li>Ein einheitliches Erscheinungsbild herstellen: Datensatzmarkierer, Navigationsschaltfl&auml;chen, Bildlaufleisten, Rahmenart und Trennlinien<\/li>\n<li>Von &uuml;berlappenden Fenstern auf Registerkarten umstellen &#8211; dabei m&uuml;ssen <b>Popup<\/b>, <b>Modal<\/b>, <b>AutoCenter<\/b> und die Rahmenart bei jedem Formular angefasst werden<\/li>\n<li>Nach dem Umstieg auf ein SQL Server-Backend die Datensatzsperrung und den Recordset-Typ anpassen<\/li>\n<li>Eine Anwendung vor der Auslieferung h&auml;rten: Kontextmen&uuml;s abschalten, Filter sperren, Entwurfs&auml;nderungen unterbinden<\/li>\n<li>Aus einer Vollversion eine Nur-Lese-Variante erzeugen, indem <b>AllowEdits<\/b>, <b>AllowAdditions<\/b> und <b>AllowDeletions<\/b> fl&auml;chendeckend abgeschaltet werden<\/li>\n<li>Gespeicherte Filter und Sortierungen aufsp&uuml;ren: <b>FilterOnLoad<\/b> und <b>OrderByOnLoad<\/b> schleichen sich beim Entwickeln ein und sorgen beim Kunden f&uuml;r leere oder qu&auml;lend langsame Formulare<\/li>\n<\/ul>\n<p>Der letzte Punkt zeigt schon, dass wir nicht nur schreiben, sondern auch lesen wollen. Ein Werkzeug, das uns erst einmal auflistet, wie die Dinge stehen, ist oft n&uuml;tzlicher als eines, das blind &uuml;berall den gleichen Wert eintr&auml;gt.<\/p>\n<h2>Das Grundmuster<\/h2>\n<p>Der Ablauf ist bei allen Eigenschaften derselbe: Formular in der Entwurfsansicht &ouml;ffnen, Eigenschaft setzen, Formular speichern und schlie&szlig;en. In der einfachsten Form sieht das aus wie in Listing 1.<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>ZoomResizesWindowSetzen(ByVal blnWert<span style=\"color:blue;\"> As Boolean<\/span>)\r\n    <span style=\"color:blue;\">Dim <\/span>strFormular<span style=\"color:blue;\"> As String<\/span>\r\n    <span style=\"color:blue;\">Dim <\/span>i<span style=\"color:blue;\"> As Long<\/span>\r\n    For i = 0 To CurrentProject.AllForms.Count - 1\r\n        strFormular = CurrentProject.AllForms(i).Name\r\n        DoCmd.OpenForm strFormular, acDesign, , , , acHidden\r\n        Forms(strFormular).Properties(\"ZoomResizesWindow\") = blnWert\r\n        DoCmd.Close acForm, strFormular, acSaveYes\r\n    <span style=\"color:blue;\">Next<\/span> i\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 1: Das Grundmuster in seiner einfachsten Form<\/span><\/b><\/p>\n<p>Die Schleife l&auml;uft &uuml;ber die Auflistung <b>AllForms<\/b> des <b>CurrentProject<\/b>-Objekts. Diese enth&auml;lt alle Formulare der Anwendung &#8211; im Gegensatz zur Auflistung <b>Forms<\/b>, die nur die aktuell ge&ouml;ffneten Formulare liefert.<\/p>\n<p>Der Parameter <b>acHidden<\/b> sorgt daf&uuml;r, dass das Formular unsichtbar ge&ouml;ffnet wird, was den Vorgang deutlich beschleunigt.<\/p>\n<p>Rufen wir diese Prozedur wie folgt auf, finden wir im Eigenschaftenfenster aller Formulare nun den neuen Wert f&uuml;r die Eigenschaft <b>Zoom &auml;ndert die Fenstergr&ouml;&szlig;e <\/b>vor (siehe Bild 1).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2026_05\/pic_1615_001.png\" alt=\"Per VBA-Code eingestellte Eigenschaft\" width=\"424,5589\" height=\"454,8845\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Per VBA-Code eingestellte Eigenschaft<\/span><\/b><\/p>\n<h2>Warum &uuml;ber die Properties-Auflistung?<\/h2>\n<p>Die meisten Formulareigenschaften lassen sich direkt ansprechen, etwa mit <b>Me.AllowEdits = False<\/b>. Bei neu hinzugekommenen Eigenschaften funktioniert das jedoch meist nicht: Sie sind noch nicht im Objektmodell hinterlegt, sodass der Compiler den Ausdruck bereits beim &Uuml;bersetzen bem&auml;ngelt.<\/p>\n<p>Das ist auch bei einigen &auml;lteren Eigenschaften der Fall. Der Umweg &uuml;ber die <b>Properties<\/b>-Auflistung l&ouml;st das Problem, weil der Eigenschaftsname dort als Zeichenkette &uuml;bergeben wird und erst zur Laufzeit ausgewertet wird.<\/p>\n<p>Genau daraus ergibt sich aber auch die erste Fehlerquelle. L&auml;uft die Anwendung unter einer &auml;lteren Access-Version, in der es die Eigenschaft noch gar nicht gibt, quittiert Access den Zugriff mit dem Laufzeitfehler 3270 (<b>Eigenschaft nicht gefunden<\/b>) beziehungsweise mit Fehler 2455.<\/p>\n<p>Da unsere Schleife dann mittendrin abbricht, bleibt wom&ouml;glich ein Formular in der Entwurfsansicht offen zur&uuml;ck.<\/p>\n<p>Weitere Schwachstellen des einfachen Musters:<\/p>\n<ul>\n<li>Ist ein Formular bereits ge&ouml;ffnet, schl&auml;gt das &Ouml;ffnen in der Entwurfsansicht fehl.<\/li>\n<li>Der Bildschirm flackert w&auml;hrend des gesamten Durchlaufs.<\/li>\n<li>Es gibt keine M&ouml;glichkeit, einzelne Formulare auszunehmen.<\/li>\n<li>Die alten Werte sind unwiederbringlich verloren.<\/li>\n<\/ul>\n<p>Diese vier Punkte arbeiten wir nun der Reihe nach ab.<\/p>\n<h2>Eine Eigenschaft f&uuml;r ein Formular setzen<\/h2>\n<p>Zun&auml;chst kapseln wir den Vorgang f&uuml;r ein einzelnes Formular in einer eigenen Funktion. Sie liefert <b>0 <\/b>zur&uuml;ck, wenn alles geklappt hat, und andernfalls die Fehlernummer.<\/p>\n<p>Wichtig ist der Fehlerbehandler: Er schlie&szlig;t das Formular ohne zu speichern, damit kein halb bearbeiteter Entwurf zur&uuml;ckbleibt (siehe Listing 2).<\/p>\n<pre><span style=\"color:blue;\">Private Function <\/span>EigenschaftSetzen(ByVal strFormular<span style=\"color:blue;\"> As String<\/span>, ByVal strEigenschaft<span style=\"color:blue;\"> As String<\/span>, _\r\n        ByVal varWert<span style=\"color:blue;\"> As Variant<\/span>)<span style=\"color:blue;\"> As Long<\/span>\r\n    <span style=\"color:blue;\">On Error GoTo<\/span> Fehler\r\n    DoCmd.OpenForm strFormular, acDesign, , , , acHidden\r\n    Forms(strFormular).Properties(strEigenschaft) = varWert\r\n    DoCmd.Close acForm, strFormular, acSaveYes\r\n    <span style=\"color:blue;\">Exit Function<\/span>\r\nFehler:\r\n    EigenschaftSetzen = Err.Number\r\n    On Error Resume <span style=\"color:blue;\">Next<\/span>\r\n    DoCmd.Close acForm, strFormular, acSaveNo\r\n<span style=\"color:blue;\">End Function<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 2: Setzen einer Eigenschaft mit Fehlerbehandlung<\/span><\/b><\/p>\n<h2>Der Durchlauf &uuml;ber alle Formulare<\/h2>\n<p>Darauf setzt die eigentliche Hauptprozedur auf. Sie erwartet den Eigenschaftsnamen, den gew&uuml;nschten Wert und optional eine durch Semikolon getrennte Liste von Formularen, die &uuml;bersprungen werden sollen.<\/p>\n<p>Zur&uuml;ckgeliefert wird die Anzahl der ge&auml;nderten Formulare &#8211; Listing 3 zeigt den Code.<\/p>\n<pre><span style=\"color:blue;\">Public Function <\/span>EigenschaftFuerAlleFormulare(ByVal strEigenschaft<span style=\"color:blue;\"> As String<\/span>, ByVal varWert<span style=\"color:blue;\"> As Variant<\/span>, _\r\n        <span style=\"color:blue;\">Optional<\/span> ByVal strAusnahmen<span style=\"color:blue;\"> As String<\/span> = \"\")<span style=\"color:blue;\"> As Long<\/span>\r\n    <span style=\"color:blue;\">Dim <\/span>strFormular<span style=\"color:blue;\"> As String<\/span>\r\n    <span style=\"color:blue;\">Dim <\/span>lngFehler<span style=\"color:blue;\"> As Long<\/span>\r\n    <span style=\"color:blue;\">Dim <\/span>lngGeaendert<span style=\"color:blue;\"> As Long<\/span>\r\n    <span style=\"color:blue;\">Dim <\/span>i<span style=\"color:blue;\"> As Long<\/span>\r\n    <span style=\"color:blue;\">On Error GoTo<\/span> Fehler\r\n    Application.Echo <span style=\"color:blue;\">False<\/span>\r\n    For i = 0 To CurrentProject.AllForms.Count - 1\r\n        strFormular = CurrentProject.AllForms(i).Name\r\n        ' Statusleiste aktualisieren\r\n        Application.Echo True, \"Bearbeite \" & strFormular & \" ...\"\r\n        DoEvents\r\n        Application.Echo <span style=\"color:blue;\">False<\/span>\r\n        <span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">Not<\/span> IstInListe(strFormular, strAusnahmen)<span style=\"color:blue;\"> Then<\/span>\r\n            <span style=\"color:blue;\">If <\/span>CurrentProject.AllForms(i).IsLoaded<span style=\"color:blue;\"> Then<\/span>\r\n                DoCmd.Close acForm, strFormular, acSaveYes\r\n            <span style=\"color:blue;\">End If<\/span>\r\n            lngFehler = EigenschaftSetzen(strFormular, strEigenschaft, varWert)\r\n            <span style=\"color:blue;\">If <\/span>lngFehler = 0<span style=\"color:blue;\"> Then<\/span>\r\n                lngGeaendert = lngGeaendert + 1\r\n            <span style=\"color:blue;\">Else<\/span>\r\n                <span style=\"color:blue;\">Debug.Print<\/span> \"Fehler \" & lngFehler & \" bei \" & strFormular\r\n            <span style=\"color:blue;\">End If<\/span>\r\n        <span style=\"color:blue;\">End If<\/span>\r\n    <span style=\"color:blue;\">Next<\/span> i\r\nEnde:\r\n    Application.Echo <span style=\"color:blue;\">True<\/span>\r\n    EigenschaftFuerAlleFormulare = lngGeaendert\r\n    <span style=\"color:blue;\">Exit Function<\/span>\r\nFehler:\r\n    <span style=\"color:blue;\">MsgBox<\/span> \"Fehler \" & Err.Number & \": \" & _\r\n        Err.Description, vbExclamation\r\n    Resume Ende\r\n<span style=\"color:blue;\">End Function<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 3: Die Hauptprozedur mit Ausnahmeliste und Fortschrittsanzeige<\/span><\/b><\/p>\n<p><b>Application.Echo False<\/b> unterdr&uuml;ckt die Bildschirmaktualisierung &#8211; ohne diese Zeile flackert der Bildschirm w&auml;hrend des gesamten Durchlaufs. Entscheidend ist, dass <b>Echo<\/b> in jedem Fall wieder eingeschaltet wird, auch im Fehlerfall; genau daf&uuml;r sorgt die Sprungmarke <b>Ende<\/b> in Verbindung mit <b>Resume Ende<\/b>.<\/p>\n<p>Die drei Zeilen zur Statusleiste innerhalb der Schleife sehen umst&auml;ndlich aus, sind aber n&ouml;tig. Der naheliegende Aufruf <b>SysCmd acSysCmdSetStatus<\/b> bleibt bei abgeschalteter Bildschirmaktualisierung wirkungslos, weil Access die Statusleiste dann ebenfalls nicht neu zeichnet.<\/p>\n<p>Der zweite Parameter von <b>Application.Echo<\/b> setzt dagegen den Text der Statusleiste, und das kurze Einschalten erzwingt genau eine Aktualisierung. <b>DoEvents<\/b> l&auml;sst sie durch, danach geht die Anzeige wieder aus. Weil die Formulare ohnehin unsichtbar ge&ouml;ffnet werden, ist von diesem Umschalten auf dem Bildschirm nichts zu sehen.<\/p>\n<p>Aus demselben Grund braucht es am Ende kein <b>SysCmd acSysCmdClearStatus<\/b>: Das abschlie&szlig;ende <b>Application.Echo True<\/b> ohne Textparameter setzt die Statusleiste selbst wieder zur&uuml;ck.<\/p>\n<p>Die Abfrage von <b>IsLoaded<\/b> schlie&szlig;t ein bereits ge&ouml;ffnetes Formular, bevor wir es in der Entwurfsansicht &ouml;ffnen.<\/p>\n<p>Die Hilfsfunktion zum Pr&uuml;fen der Ausnahmeliste f&auml;llt kurz aus. Indem wir sowohl die Liste als auch den Suchwert in Semikola einfassen, verhindern wir, dass <b>frmKunde<\/b> auch <b>frmKundeDetail<\/b> trifft:<\/p>\n<pre><span style=\"color:blue;\">Private Function <\/span>IstInListe( _\r\n        ByVal strWert<span style=\"color:blue;\"> As String<\/span>, _\r\n        ByVal strListe<span style=\"color:blue;\"> As String<\/span>)<span style=\"color:blue;\"> As Boolean<\/span>\r\n    IstInListe = <span style=\"color:blue;\">InStr<\/span>(1, \";\" & strListe & \";\", _\r\n        \";\" & strWert & \";\", vbTextCompare) \\&gt; 0\r\n<span style=\"color:blue;\">End Function<\/span><\/pre>\n<p>Der Aufruf sieht dann zum Beispiel so aus, wobei zwei Formulare unangetastet bleiben sollen:<\/p>\n<pre><span style=\"color:blue;\">Debug.Print<\/span> EigenschaftFuerAlleFormulare( _\r\n    \"ZoomResizesWindow\", True, _\r\n    \"frmIntro;frmEigenschaften\")<\/pre>\n<h2>Erst sichern, dann &auml;ndern<\/h2>\n<p>Bevor wir eine Anwendung mit 50 Formularen umbauen, sollten wir wissen, wie der Zustand vorher war. Dazu legen wir eine kleine Tabelle namens <b>tblEigenschaften<\/b> an. Sie enth&auml;lt neben dem Prim&auml;rschl&uuml;sselfeld die Felder <b>Sicherung<\/b> (<b>Datum\/Uhrzeit<\/b>), <b>Formular<\/b>, <b>Eigenschaft<\/b> und <b>Wert<\/b> &#8211; alle drei letzteren vom Typ <b>Kurzer Text<\/b>. Bild 2 zeigt die Tabelle mit den Werten eines Durchlaufs.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2026_05\/pic_1615_002.png\" alt=\"Die gesicherten Eigenschaftswerte in der Tabelle tblEigenschaften\" width=\"599,559\" height=\"221,7546\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Die gesicherten Eigenschaftswerte in der Tabelle tblEigenschaften<\/span><\/b><\/p>\n<p>Die Prozedur zum Sichern &ouml;ffnet jedes Formular ebenfalls in der Entwurfsansicht, liest die gew&uuml;nschten Eigenschaften aus und schlie&szlig;t es anschlie&szlig;end <b>ohne<\/b> zu speichern &#8211; wir wollen ja nichts ver&auml;ndern. Existiert eine Eigenschaft nicht, landet <b>Null<\/b> in der Tabelle, was uns sp&auml;ter das Wiederherstellen erleichtert (siehe Listing 4).<\/p>\n<pre><span style=\"color:blue;\">Public Function <\/span>EigenschaftenSichern(ByVal strEigenschaften<span style=\"color:blue;\"> As String<\/span>)<span style=\"color:blue;\"> As Long<\/span>\r\n    <span style=\"color:blue;\">Dim <\/span>rst<span style=\"color:blue;\"> As <\/span>DAO.Recordset\r\n    <span style=\"color:blue;\">Dim <\/span>varListe<span style=\"color:blue;\"> As Variant<\/span>\r\n    <span style=\"color:blue;\">Dim <\/span>strFormular<span style=\"color:blue;\"> As String<\/span>\r\n    <span style=\"color:blue;\">Dim <\/span>varWert<span style=\"color:blue;\"> As Variant<\/span>\r\n    <span style=\"color:blue;\">Dim <\/span>datSicherung<span style=\"color:blue;\"> As Date<\/span>\r\n    <span style=\"color:blue;\">Dim <\/span>lngAnzahl<span style=\"color:blue;\"> As Long<\/span>\r\n    <span style=\"color:blue;\">Dim <\/span>i<span style=\"color:blue;\"> As Long<\/span>, j<span style=\"color:blue;\"> As Long<\/span>\r\n    <span style=\"color:blue;\">On Error GoTo<\/span> Fehler\r\n    datSicherung = Now\r\n    varListe = <span style=\"color:blue;\">Split<\/span>(strEigenschaften, \";\")\r\n    <span style=\"color:blue;\">Set<\/span> rst = CurrentDb.OpenRecordset(\"tblEigenschaften\", dbOpenDynaset, dbAppendOnly)\r\n    Application.Echo <span style=\"color:blue;\">False<\/span>\r\n    For i = 0 To CurrentProject.AllForms.Count - 1\r\n        strFormular = CurrentProject.AllForms(i).Name\r\n        DoCmd.OpenForm strFormular, acDesign, , , , acHidden\r\n        For j = 0 To <span style=\"color:blue;\">UBound<\/span>(varListe)\r\n            varWert = Null\r\n            On Error Resume <span style=\"color:blue;\">Next<\/span>\r\n            varWert = Forms(strFormular).Properties(<span style=\"color:blue;\">Trim<\/span>(varListe(j)))\r\n            <span style=\"color:blue;\">On Error GoTo<\/span> Fehler\r\n            rst.Add<span style=\"color:blue;\">New<\/span>\r\n            rst!Sicherung = datSicherung\r\n            rst!Formular = strFormular\r\n            rst!Eigenschaft = <span style=\"color:blue;\">Trim<\/span>(varListe(j))\r\n            <span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">Not<\/span> IsNull(varWert)<span style=\"color:blue;\"> Then<\/span>\r\n                rst!Wert = CStr(varWert)\r\n            <span style=\"color:blue;\">End If<\/span>\r\n            rst.Update\r\n            lngAnzahl = lngAnzahl + 1\r\n        <span style=\"color:blue;\">Next<\/span> j\r\n        DoCmd.Close acForm, strFormular, acSaveNo\r\n    <span style=\"color:blue;\">Next<\/span> i\r\nEnde:\r\n    Application.Echo <span style=\"color:blue;\">True<\/span>\r\n    <span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">Not<\/span> rst Is Nothing<span style=\"color:blue;\"> Then<\/span> rst.Close\r\n    <span style=\"color:blue;\">Set<\/span> rst = Nothing\r\n    EigenschaftenSichern = lngAnzahl\r\n    <span style=\"color:blue;\">Exit Function<\/span>\r\nFehler:\r\n    <span style=\"color:blue;\">MsgBox<\/span> \"Fehler \" & Err.Number & \": \" & Err.Description, vbExclamation\r\n    Resume Ende\r\n<span style=\"color:blue;\">End Function<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 4: Sichern beliebig vieler Eigenschaften aller Formulare<\/span><\/b><\/p>\n<p>Aufgerufen wird die Funktion mit einer Liste von Eigenschaftsnamen:<\/p>\n<pre><span style=\"color:blue;\">Debug.Print<\/span> EigenschaftenSichern( _\r\n    \"AllowZooming;ZoomResizesWindow;AllowEdits\")<\/pre>\n<h2>Zur&uuml;ck auf Anfang<\/h2>\n<p>Das Gegenst&uuml;ck greift auf die j&uuml;ngste Sicherung zur&uuml;ck (siehe Listing 5). Die Unterabfrage im SQL-Ausdruck ermittelt den h&ouml;chsten Zeitstempel, sodass wir uns eine Verwaltung von Laufnummern sparen k&ouml;nnen. Datens&auml;tze ohne Wert &uuml;berspringen wir, denn dort gab es die Eigenschaft zum Zeitpunkt der Sicherung noch nicht.<\/p>\n<pre><span style=\"color:blue;\">Public Function <\/span>EigenschaftenWiederherstellen()<span style=\"color:blue;\"> As Long<\/span>\r\n    <span style=\"color:blue;\">Dim <\/span>rst<span style=\"color:blue;\"> As <\/span>DAO.Recordset\r\n    <span style=\"color:blue;\">Dim <\/span>strSQL<span style=\"color:blue;\"> As String<\/span>\r\n    <span style=\"color:blue;\">Dim <\/span>lngAnzahl<span style=\"color:blue;\"> As Long<\/span>\r\n    strSQL = \"SELECT Formular, Eigenschaft, Wert FROM tblEigenschaften \" & _\r\n        \"WHERE Wert Is <span style=\"color:blue;\">Not<\/span> Null AND Sicherung = (SELECT Max(Sicherung) \" & _\r\n        \"FROM tblEigenschaften) ORDER BY Formular\"\r\n    <span style=\"color:blue;\">Set<\/span> rst = CurrentDb.OpenRecordset(strSQL)\r\n    <span style=\"color:blue;\">Do While<\/span> <span style=\"color:blue;\">Not<\/span> rst.EOF\r\n        <span style=\"color:blue;\">If <\/span>EigenschaftSetzen(rst!Formular, rst!Eigenschaft, WertKonvertieren(rst!Wert)) = 0<span style=\"color:blue;\"> Then<\/span>\r\n            lngAnzahl = lngAnzahl + 1\r\n        <span style=\"color:blue;\">End If<\/span>\r\n        rst.Move<span style=\"color:blue;\">Next<\/span>\r\n    <span style=\"color:blue;\">Loop<\/span>\r\n    rst.Close\r\n    <span style=\"color:blue;\">Set<\/span> rst = Nothing\r\n    EigenschaftenWiederherstellen = lngAnzahl\r\n<span style=\"color:blue;\">End Function<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 5: Wiederherstellen der zuletzt gesicherten Werte<\/span><\/b><\/p>\n<p>Da wir alle Werte als Text gesichert haben, brauchen wir noch eine kleine R&uuml;ckwandlung.<\/p>\n<p>Sie erkennt die beiden Wahrheitswerte sowie Zahlen und liefert alles &uuml;brige unver&auml;ndert zur&uuml;ck.<\/p>\n<p>Beachten Sie, dass der Vergleich bewusst gegen <b>CStr(True)<\/b> l&auml;uft und nicht gegen die Zeichenkette <b>True<\/b> &#8211; so bleibt die Funktion unabh&auml;ngig von der Sprachversion:<\/p>\n<pre><span style=\"color:blue;\">Private Function <\/span>WertKonvertieren( _\r\n        ByVal strWert<span style=\"color:blue;\"> As String<\/span>)<span style=\"color:blue;\"> As Variant<\/span>\r\n    Select Case <span style=\"color:blue;\">True<\/span>\r\n        <span style=\"color:blue;\">Case <\/span>strWert = CStr(<span style=\"color:blue;\">True<\/span>), strWert = \"-1\"\r\n            WertKonvertieren = <span style=\"color:blue;\">True<\/span>\r\n        <span style=\"color:blue;\">Case <\/span>strWert = CStr(<span style=\"color:blue;\">False<\/span>), strWert = \"0\"\r\n            WertKonvertieren = <span style=\"color:blue;\">False<\/span>\r\n        <span style=\"color:blue;\">Case <\/span>IsNumeric(strWert)\r\n            WertKonvertieren = CDbl(strWert)\r\n        <span style=\"color:blue;\">Case Else<\/span>\r\n            WertKonvertieren = strWert\r\n    <span style=\"color:blue;\">End Select<\/span>\r\n<span style=\"color:blue;\">End Function<\/span><\/pre>\n<p>Eine Einschr&auml;nkung bleibt: Eine numerische Eigenschaft mit dem Wert <b>0<\/b> wird als <b>False<\/b> zur&uuml;ckgeliefert.<\/p>\n<p>F&uuml;r Access sind beide Werte identisch, sodass sich daraus in der Praxis kein Problem ergibt.<\/p>\n<h2>Das Gleiche f&uuml;r Berichte<\/h2>\n<p>Berichte lassen sich auf dieselbe Weise behandeln &#8211; die Auflistung hei&szlig;t <b>AllReports<\/b>, ge&ouml;ffnet wird mit <b>acViewDesign<\/b>.<\/p>\n<p>Ein Anwendungsfall, der reihenweise Supportanfragen erzeugt, ist der fest gespeicherte Drucker: Beim Kunden existiert das Ger&auml;t nicht, und der Bericht bricht ab oder landet auf dem falschen Ausgabeger&auml;t. Listing 6 stellt alle Berichte auf den Standarddrucker um.<\/p>\n<pre><span style=\"color:blue;\">Public Function <\/span>BerichteAufStandarddrucker()<span style=\"color:blue;\"> As Long<\/span>\r\n    <span style=\"color:blue;\">Dim <\/span>strBericht<span style=\"color:blue;\"> As String<\/span>\r\n    <span style=\"color:blue;\">Dim <\/span>lngAnzahl<span style=\"color:blue;\"> As Long<\/span>\r\n    <span style=\"color:blue;\">Dim <\/span>i<span style=\"color:blue;\"> As Long<\/span>\r\n    <span style=\"color:blue;\">On Error GoTo<\/span> Fehler\r\n    Application.Echo <span style=\"color:blue;\">False<\/span>\r\n    For i = 0 To CurrentProject.AllReports.Count - 1\r\n        strBericht = CurrentProject.AllReports(i).Name\r\n        DoCmd.OpenReport strBericht, acViewDesign\r\n        Reports(strBericht).UseDefaultPrinter = <span style=\"color:blue;\">True<\/span>\r\n        DoCmd.Close acReport, strBericht, acSaveYes\r\n        lngAnzahl = lngAnzahl + 1\r\n    <span style=\"color:blue;\">Next<\/span> i\r\nEnde:\r\n    Application.Echo <span style=\"color:blue;\">True<\/span>\r\n    BerichteAufStandarddrucker = lngAnzahl\r\n    <span style=\"color:blue;\">Exit Function<\/span>\r\nFehler:\r\n    <span style=\"color:blue;\">Debug.Print<\/span> strBericht & \": \" & Err.Description\r\n    Resume <span style=\"color:blue;\">Next<\/span>\r\n<span style=\"color:blue;\">End Function<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 6: Alle Berichte auf den Standarddrucker umstellen<\/span><\/b><\/p>\n<p>Der Fehlerbehandler nutzt hier <b>Resume Next<\/b>, damit ein einzelner problematischer Bericht den Durchlauf nicht stoppt. In der Hauptprozedur f&uuml;r Formulare haben wir uns bewusst anders entschieden, weil dort jeder Fehler &uuml;ber die R&uuml;ckgabe der Funktion <b>EigenschaftSetzen<\/b> ohnehin protokolliert wird.<\/p>\n<h2>Anwendungsf&auml;lle aus der Praxis<\/h2>\n<p>Mit dem Werkzeug in der Hand lassen sich viele wiederkehrende Aufgaben auf eine Zeile eindampfen.<\/p>\n<p>Ein paar Beispiele:<\/p>\n<pre>' Zoom-Fenstergroesse ueberall aktivieren\r\nEigenschaftFuerAlleFormulare \"ZoomResizesWindow\", <span style=\"color:blue;\">True<\/span>\r\n' Gespeicherte Filter zuruecksetzen\r\nEigenschaftFuerAlleFormulare \"FilterOnLoad\", <span style=\"color:blue;\">False<\/span>\r\nEigenschaftFuerAlleFormulare \"OrderByOnLoad\", <span style=\"color:blue;\">False<\/span>\r\n' Nur-Lese-Variante der Anwendung erzeugen\r\nEigenschaftFuerAlleFormulare \"AllowEdits\", <span style=\"color:blue;\">False<\/span>\r\nEigenschaftFuerAlleFormulare \"AllowAdditions\", <span style=\"color:blue;\">False<\/span>\r\nEigenschaftFuerAlleFormulare \"AllowDeletions\", <span style=\"color:blue;\">False<\/span>\r\n' Einheitliches Ribbon zuweisen\r\nEigenschaftFuerAlleFormulare \"RibbonName\", _\r\n    \"rbnHauptmenue\"\r\n' Kontextmenues abschalten\r\nEigenschaftFuerAlleFormulare \"ShortcutMenu\", <span style=\"color:blue;\">False<\/span><\/pre>\n<p>Besonders lohnend ist der lesende Einsatz. Wer einmal alle Formulare auf <b>FilterOnLoad<\/b> untersucht und das Ergebnis in der Tabelle betrachtet, findet erfahrungsgem&auml;&szlig; mindestens einen Kandidaten, bei dem beim Entwickeln ein Filter h&auml;ngen geblieben ist.<\/p>\n<p>In Bild 3 sehen Sie eine solche Auswertung.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2026_05\/pic_1615_003.png\" alt=\"Auswertung der gespeicherten Filter aller Formulare\" width=\"700\" height=\"278,2051\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Auswertung der gespeicherten Filter aller Formulare<\/span><\/b><\/p>\n<h2>Was Sie beachten sollten<\/h2>\n<p>So praktisch das Werkzeug ist &#8211; es greift tief in die Anwendung ein. Die folgenden Punkte sollten Sie im Hinterkopf behalten:<\/p>\n<ul>\n<li>Legen Sie vor jedem Durchlauf eine Sicherungskopie der Datenbankdatei an. Der Vorgang l&auml;sst sich nur r&uuml;ckg&auml;ngig machen, wenn Sie zuvor gesichert haben.<\/li>\n<li>Komprimieren und reparieren Sie nach dem Lauf. Massenhafte Entwurfs&auml;nderungen bl&auml;hen die Datei sp&uuml;rbar auf.<\/li>\n<li>Alles hier Gezeigte funktioniert nur in der Entwicklungsumgebung. In einer ACCDE-Datei und unter der Access-Runtime lassen sich Formulare nicht in der Entwurfsansicht &ouml;ffnen.<\/li>\n<li>Arbeiten Sie mit einer Quellcodeverwaltung, erzeugt ein solcher Lauf einen gewaltigen Commit. Checken Sie ihn getrennt und mit sprechender Beschreibung ein, sonst wird die sp&auml;tere Fehlersuche im Verlauf zur Qual.<\/li>\n<li>Pflegen Sie die Ausnahmeliste. Es gibt fast immer ein Formular, das bewusst abweichen soll &#8211; ein Splashscreen etwa braucht weder Navigationsschaltfl&auml;chen noch Zoom.<\/li>\n<\/ul>\n<h2>Zusammenfassung und Ausblick<\/h2>\n<p>Der Aufwand f&uuml;r dieses Modul rechnet sich bereits beim ersten Einsatz. Statt 50 Formulare von Hand zu &ouml;ffnen, die Eigenschaft zu suchen und den Wert zu &auml;ndern, gen&uuml;gt ein Aufruf im Direktbereich &#8211; und weil die alten Werte in der Tabelle liegen, ist der Weg zur&uuml;ck jederzeit offen.<\/p>\n<p>Der eigentliche Gewinn liegt aber in der Wiederverwendbarkeit: Sobald Microsoft die n&auml;chste Formulareigenschaft nachr&uuml;stet &#8211; angek&uuml;ndigt ist etwa eine Eigenschaft f&uuml;r abgerundete Ecken von Steuerelementen -, ist Ihre Anwendung mit einem Einzeiler auf dem neuesten Stand. F&uuml;r Steuerelemente m&uuml;ssen Sie das Modul allerdings noch um eine innere Schleife &uuml;ber die <b>Controls<\/b>-Auflistung erweitern &#8211; aber das ist eine andere Geschichte.<\/p>\n<h2>Downloads zu diesem Beitrag<\/h2>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>FormulareigenschaftenGlobalAendern.accdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/1EC746F8-1134-4758-8712-696E0361EBA4\/aiu_1615.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mit &#8222;AllowZooming&#8220; und &#8222;ZoomResizesWindow&#8220; hat Microsoft zwei Formulareigenschaften eingef&uuml;hrt, die sich ausschlie&szlig;lich &uuml;ber die Properties-Auflistung ansprechen lassen &#8211; und das auch nur, wenn das Formular in der Entwurfsansicht ge&ouml;ffnet ist. Wer diese Eigenschaften f&uuml;r eine gewachsene Anwendung mit einigen Dutzend Formularen einstellen m&ouml;chte, hat stumpfe Flei&szlig;arbeit vor sich. Ein guter Anlass, sich ein Werkzeug zu bauen, das beliebige Eigenschaften f&uuml;r alle Formulare und Berichte einer Anwendung ausliest, sichert und setzt. Dieser Beitrag zeigt, wie das gelingt &#8211; und wof&uuml;r sich so ein Werkzeug jenseits der Zoom-Funktion noch alles einsetzen l&auml;sst.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662026,66052026,44000052],"tags":[],"class_list":["post-55001615","post","type-post","status-publish","format-standard","hentry","category-662026","category-66052026","category-Formulare_und_Steuerelemente"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v28.6) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Formulareigenschaften global &auml;ndern - Access im Unternehmen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-im-unternehmen.de\/Formulareigenschaften_global_aendern\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Formulareigenschaften global &auml;ndern\" \/>\n<meta property=\"og:description\" content=\"Mit &quot;AllowZooming&quot; und &quot;ZoomResizesWindow&quot; hat Microsoft zwei Formulareigenschaften eingef&uuml;hrt, die sich ausschlie&szlig;lich &uuml;ber die Properties-Auflistung ansprechen lassen - und das auch nur, wenn das Formular in der Entwurfsansicht ge&ouml;ffnet ist. Wer diese Eigenschaften f&uuml;r eine gewachsene Anwendung mit einigen Dutzend Formularen einstellen m&ouml;chte, hat stumpfe Flei&szlig;arbeit vor sich. Ein guter Anlass, sich ein Werkzeug zu bauen, das beliebige Eigenschaften f&uuml;r alle Formulare und Berichte einer Anwendung ausliest, sichert und setzt. Dieser Beitrag zeigt, wie das gelingt - und wof&uuml;r sich so ein Werkzeug jenseits der Zoom-Funktion noch alles einsetzen l&auml;sst.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Formulareigenschaften_global_aendern\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-05T19:33:07+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg01.met.vgwort.de\/na\/8456be41b9994ab08d4ca4fc5f6fce74\" \/>\n<meta name=\"author\" content=\"Andr\u00e9 Minhorst\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andr\u00e9 Minhorst\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"12\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Formulareigenschaften_global_aendern\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Formulareigenschaften_global_aendern\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Formulareigenschaften global &auml;ndern\",\"datePublished\":\"2026-10-05T19:33:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Formulareigenschaften_global_aendern\\\/\"},\"wordCount\":1829,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Formulareigenschaften_global_aendern\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/8456be41b9994ab08d4ca4fc5f6fce74\",\"articleSection\":[\"2026\",\"5\\\/2026\",\"Formulare und Steuerelemente\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Formulareigenschaften_global_aendern\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Formulareigenschaften_global_aendern\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Formulareigenschaften_global_aendern\\\/\",\"name\":\"Formulareigenschaften global &auml;ndern - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Formulareigenschaften_global_aendern\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Formulareigenschaften_global_aendern\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/8456be41b9994ab08d4ca4fc5f6fce74\",\"datePublished\":\"2026-10-05T19:33:07+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Formulareigenschaften_global_aendern\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Formulareigenschaften_global_aendern\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Formulareigenschaften_global_aendern\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/8456be41b9994ab08d4ca4fc5f6fce74\",\"contentUrl\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/8456be41b9994ab08d4ca4fc5f6fce74\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Formulareigenschaften_global_aendern\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Formulareigenschaften global &auml;ndern\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"name\":\"Access im Unternehmen\",\"description\":\"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access\",\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/access-im-unternehmen.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\",\"name\":\"Andr\u00e9 Minhorst Verlag\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"contentUrl\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"width\":370,\"height\":111,\"caption\":\"Andr\u00e9 Minhorst Verlag\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Formulareigenschaften global &auml;ndern - Access im Unternehmen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/access-im-unternehmen.de\/Formulareigenschaften_global_aendern\/","og_locale":"de_DE","og_type":"article","og_title":"Formulareigenschaften global &auml;ndern","og_description":"Mit \"AllowZooming\" und \"ZoomResizesWindow\" hat Microsoft zwei Formulareigenschaften eingef&uuml;hrt, die sich ausschlie&szlig;lich &uuml;ber die Properties-Auflistung ansprechen lassen - und das auch nur, wenn das Formular in der Entwurfsansicht ge&ouml;ffnet ist. Wer diese Eigenschaften f&uuml;r eine gewachsene Anwendung mit einigen Dutzend Formularen einstellen m&ouml;chte, hat stumpfe Flei&szlig;arbeit vor sich. Ein guter Anlass, sich ein Werkzeug zu bauen, das beliebige Eigenschaften f&uuml;r alle Formulare und Berichte einer Anwendung ausliest, sichert und setzt. Dieser Beitrag zeigt, wie das gelingt - und wof&uuml;r sich so ein Werkzeug jenseits der Zoom-Funktion noch alles einsetzen l&auml;sst.","og_url":"https:\/\/access-im-unternehmen.de\/Formulareigenschaften_global_aendern\/","og_site_name":"Access im Unternehmen","article_published_time":"2026-10-05T19:33:07+00:00","og_image":[{"url":"http:\/\/vg01.met.vgwort.de\/na\/8456be41b9994ab08d4ca4fc5f6fce74","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"12\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Formulareigenschaften_global_aendern\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Formulareigenschaften_global_aendern\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Formulareigenschaften global &auml;ndern","datePublished":"2026-10-05T19:33:07+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Formulareigenschaften_global_aendern\/"},"wordCount":1829,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Formulareigenschaften_global_aendern\/#primaryimage"},"thumbnailUrl":"http:\/\/vg01.met.vgwort.de\/na\/8456be41b9994ab08d4ca4fc5f6fce74","articleSection":["2026","5\/2026","Formulare und Steuerelemente"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Formulareigenschaften_global_aendern\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Formulareigenschaften_global_aendern\/","url":"https:\/\/access-im-unternehmen.de\/Formulareigenschaften_global_aendern\/","name":"Formulareigenschaften global &auml;ndern - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Formulareigenschaften_global_aendern\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Formulareigenschaften_global_aendern\/#primaryimage"},"thumbnailUrl":"http:\/\/vg01.met.vgwort.de\/na\/8456be41b9994ab08d4ca4fc5f6fce74","datePublished":"2026-10-05T19:33:07+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Formulareigenschaften_global_aendern\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Formulareigenschaften_global_aendern\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Formulareigenschaften_global_aendern\/#primaryimage","url":"http:\/\/vg01.met.vgwort.de\/na\/8456be41b9994ab08d4ca4fc5f6fce74","contentUrl":"http:\/\/vg01.met.vgwort.de\/na\/8456be41b9994ab08d4ca4fc5f6fce74"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Formulareigenschaften_global_aendern\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Formulareigenschaften global &auml;ndern"}]},{"@type":"WebSite","@id":"https:\/\/access-im-unternehmen.de\/#website","url":"https:\/\/access-im-unternehmen.de\/","name":"Access im Unternehmen","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access","publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/access-im-unternehmen.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/access-im-unternehmen.de\/#organization","name":"Andr\u00e9 Minhorst Verlag","url":"https:\/\/access-im-unternehmen.de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/","url":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","contentUrl":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","width":370,"height":111,"caption":"Andr\u00e9 Minhorst Verlag"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","caption":"Andr\u00e9 Minhorst"}}]}},"_links":{"self":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001615","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/comments?post=55001615"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001615\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55001615"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55001615"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55001615"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}