{"id":55000343,"date":"2017-02-01T00:00:00","date_gmt":"2020-01-24T15:59:44","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=343"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"AnwendungsDesign_mit_positionierten_Formularen","status":"publish","type":"post","link":"https:\/\/access-basics.de\/index.php\/AnwendungsDesign_mit_positionierten_Formularen.html","title":{"rendered":"Anwendungs-Design mit positionierten Formularen"},"content":{"rendered":"<p class='introduction'>Wie Sie die Positionen und Abmessungen von Formularen ermitteln oder per VBA setzen k&ouml;nnen, oder auch die des Access-Rahmenfensters, das erfuhren Sie schon in der letzten Ausgabe von Access Basics. Einige Beispiele, wie Sie solche Routinen gewinnbringend in Ihrer Anwendung einsetzen k&ouml;nnen, folgen in diesem Beitrag.<\/p>\n<h2>Beispieldatenbank<\/h2>\n<p>Die Beispiele dieses Artikels finden Sie in der Datenbank <b>1701_AppDesign.accdb<\/b>.<\/p>\n<h2>Access und Monitoraufl&ouml;sungen<\/h2>\n<p>Die Aufl&ouml;sung von PC-Monitoren hat eine etwas seltsame Geschichte hinter sich. Es ist noch nicht so lange her, da kamen die ersten Flat-Screen-Monitore in der Gr&ouml;&szlig;e von 15 bis 19 Zoll auf den Markt. Ihre Aufl&ouml;sung betrug in der Regel 1280 x 1024 Pixel. Dann wurden Multimedia-Anwendungen immer wichtiger, die ein Breitformat erforderten. Inzwischen sind 27-Zoll Monitore fast schon der Standard. Doch an der vertikalen Aufl&ouml;sung hat sich indessen fast nichts ge&auml;ndert. Immer noch sind 1080 Pixel vertikal der weitaus verbreitetste Wert. Besonders gilt das f&uuml;r Laptops, die jedoch immer mehr auch im B&uuml;ro Einzug halten. Eignet sich diese Aufl&ouml;sung tats&auml;chlich f&uuml;r Datenbankanwendungen<\/p>\n<p>Bild 1 demonstriert, wie <b>Access 2010<\/b> sich unter <b>Windows 7<\/b> auf so einem Monitor pr&auml;sentiert, wenn der Navigationsbereich ausgeblendet ist. Das d&uuml;rfte nicht selten der Fall sein, da man dem Anwender diesen Bereich eher nicht zur Ansicht bringen will und andere Navigationsmethoden, etwa benutzerdefinierte Ribbons, vorzieht. Da die Taskleiste von Windows die H&ouml;he schm&auml;lert, bleiben einer Anwendung in maximiertem Zustand noch 1028 Pixel. F&uuml;r die Titelleiste von Access gehen davon weitere 24 Pixel ab. Und schlie&szlig;lich nimmt der Ribbon ganze 110 Pixel ein. Somit kann ein maximiertes Formular oder ein Bericht nach Abzug des Rahmens des MDI-Bereichs, also der Arbeitsfl&auml;che, h&ouml;chstens noch die Ausdehnung von 1974 x 864 Pixeln besitzen. Daraus ergibt sich ein Seitenverh&auml;ltnis von etwa 2,28:1. <\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/Access1920.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/Access1920.png\" alt=\"Access maximiert auf einem Laptop-Monitor ohne Navigationsbereich\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 1: Access maximiert auf einem Laptop-Monitor ohne Navigationsbereich<\/p>\n<p>Unter Excel mag dieses Verh&auml;ltnis noch einigerma&szlig;en sinnvoll sein, da man es hier h&auml;ufig mit zahlreichen Spalten zu tun hat. Aber Access Formulare nennen sich nicht zuf&auml;llig so. Eingabeformulare haben ihr papierenes Vorbild im DIN-A4-Hochformat.<\/p>\n<p>Die Felder sind in der Regel mehr oder weniger untereinander angeordnet. Aber auch Datenbl&auml;tter lassen sich besser lesen, wenn sie eher vertikal ausgedehnt und mehr Datens&auml;tze im Zugriff sind.<\/p>\n<p>Das scheint ein R&uuml;ckschritt zu sein. Einerseits verbreiterten sich Monitore zunehmend, anderseits leistet der Ribbon gegen&uuml;ber den fr&uuml;heren Men&uuml;leisten zus&auml;tzlich seinen Beitrag zu einem unpassenden Design.<\/p>\n<p>Damit taucht die Frage auf, ob solchen Umst&auml;nden abzuhelfen ist Das Men&uuml;band kann man ausblenden, doch wie realisiert man dann eine Navigation durch die Anwendung <\/p>\n<p>Eine M&ouml;glichkeit w&auml;re ein <b>Switchboard<\/b> am linken Rand, das den eingebauten Navigationsbereich von Access ersetzte. Daf&uuml;r k&auml;me ein Navigationsformular in Betracht. In der Beispieldatenbank haben wir so etwas entwickelt, ohne den Aufwand zu hoch zu treiben.<\/p>\n<h2>Switchboard-Formular<\/h2>\n<p>Aussehen soll das Ganze, wie in Bild 2. Der Ribbon ist ausgeblendet und am linken Rand befindet sich das Men&uuml;, &uuml;ber das die Elemente der Anwendung aufgerufen werden.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/AppMyMenu.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/AppMyMenu.png\" alt=\"Ohne Ribbon aber mit Switchboard &auml;ndert sich die verf&uuml;gbare Arbeitsfl&auml;che\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 2: Ohne Ribbon aber mit Switchboard &auml;ndert sich die verf&uuml;gbare Arbeitsfl&auml;che<\/p>\n<p>Die Arbeitsfl&auml;che vergr&ouml;&szlig;ert sich damit vertikal um immerhin 135 Pixel. Dass die horizontale Ausdehnung sich durch das Switchboard verringert, ist zu verschmerzen, denn noch immer haben wir es hier mit einem Breitformat zu tun.<\/p>\n<p>Diese L&ouml;sung sieht einfacher aus, als sie es ist. Denn wir haben es mit folgenden Anforderungen zu tun:<\/p>\n<ul>\n<li>Das Switchboard-Formular muss links angenagelt bleiben<\/li>\n<li>Es sollte sich vertikal den Abmessungen des Access-Rahmenfensters anpassen k&ouml;nnen<\/li>\n<li>Formular und Berichte sollten das Switchboard nicht &uuml;berdecken k&ouml;nnen. Das soll auch f&uuml;r maximierte Fenster gelten. Der linke Rand der Anwendungsformulare muss rechts vom Switchboard liegen.<\/li>\n<\/ul>\n<p>Sowohl das Switchboard-Formular, wie auch die Anwendungsformulare, m&uuml;ssen dazu automatisierten Positionierungsoperationen unterzogen werden. Die Basics dazu erfuhren Sie in der letzten Ausgabe.<\/p>\n<h2>Ribbon ausblenden<\/h2>\n<p>Das geht mit einer Zeile VBA:<\/p>\n<pre>DoCmd.ShowToolbar \"Ribbon\",                         acToolbarNo<\/pre>\n<p>Lassen Sie diese Zeile beim Start der Anwendung ausf&uuml;hren. Ob dies &uuml;ber ein Startformular geschieht, oder &uuml;ber ein <b>AutoExec<\/b>-Makro und eine &ouml;ffentliche Funktion, das bleibt Ihnen &uuml;berlassen. Einblenden k&ouml;nnen Sie den Ribbon im Zweifel wieder &uuml;ber den Aufruf der Methode <b>ShowToolbar<\/b>:<\/p>\n<pre>DoCmd.ShowToolbar \"Ribbon\", acToolbarYes<\/pre>\n<h2>Navigationselemente<\/h2>\n<p>In der Beispieldatenbank nennt sich das Switchboard-Formular <b>frmNavi<\/b>, im Entwurf in Bild 3 dargestellt. Hier sind ein Label f&uuml;r den Titel und einige Schaltfl&auml;chen untergebracht, die unterschiedliche Aktionen ausl&ouml;sen. Die Gestaltung ist willk&uuml;rlich. Passen Sie sie nach ihren Vorstellungen an.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/frmNavi.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/frmNavi.png\" alt=\"Das Switchboard-Formular frmNavi in der Entwurfsansicht\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 3: Das Switchboard-Formular frmNavi in der Entwurfsansicht<\/p>\n<p>Wichtig jedoch ist die Einstellung <b>Ohne<\/b> f&uuml;r die Eigenschaft <b>Rahmenart<\/b> des Formulars, damit das Fenster dann nicht &uuml;ber die Titelzeile verschoben werden kann. Zur Sicherheit ist die Eigenschaft <b>Verschiebbar<\/b> zus&auml;tzlich auf <b>Nein<\/b> eingestellt und <b>MinMaxSchaltfl&auml;chen<\/b> auf <b>Keine<\/b>. Selbstverst&auml;ndlich sind auch <b>Datensatzmarkierer<\/b> und <b>Navigationsschaltfl&auml;chen<\/b> ausgeblendet.<\/p>\n<p>&ouml;ffnen Sie dieses Formular direkt, so gibt es keine M&ouml;glichkeit, es mit der Maus zu schlie&szlig;en. Nur die Tastenkombination <b>STRG-F4<\/b> l&auml;sst es wieder verschwinden. Im Prinzip lie&szlig;e sich auch das verhindern, indem Sie die Eigenschaft <b>Tastenvorschau<\/b> des Formulars (Tab <b>Ereignis<\/b> des Eigenschaftenblatts) auf <b>Ja<\/b> stellten und in die  Ereignisprozedur f&uuml;r <b>Bei Taste Ab<\/b> diese Zeilen schrieben:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>Form_KeyDown( _\r\n                    KeyCode<span style=\"color:blue;\"> As Integer<\/span>, Shift<span style=\"color:blue;\"> As Integer<\/span>)\r\n     <span style=\"color:blue;\">If <\/span>KeyCode = 115 And Shift = 2<span style=\"color:blue;\"> Then<\/span>\r\n         KeyCode = 0\r\n     <span style=\"color:blue;\">End If<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Dann hilft nur ein Ausdruck im VBA-Direktfenster weiter:<\/p>\n<pre>DoCmd.Close acForm, \"frmNavi\"<\/pre>\n<p>Damit Sie derlei w&auml;hrend der Entwicklung nicht bewerkstelligen m&uuml;ssen, ist diese Zeile in das <b>Click<\/b>-Ereignis des Detailbereichs eingebaut. Klicken Sie also auf den grauen Hintergrund des Formulars, so schlie&szlig;t es sich und au&szlig;erdem wird der m&ouml;glicherweise fehlende Ribbon wieder eingeblendet.<\/p>\n<p>In die <b>Click<\/b>-Prozeduren der Schaltfl&auml;chen k&ouml;nnten Sie direkt die gew&uuml;nschten Aktionen programmieren, etwa den Aufruf eines Formulars:<\/p>\n<pre>DoCmd.OpenForm \"frmAdressen\"<\/pre>\n<p>Wir wollten jedoch die Navigationsfunktionen an zentraler Stelle verwalten, weshalb im Modul <b>mdlNavigation<\/b> die Funktion in Listing 1 zu finden ist.<\/p>\n<pre><span style=\"color:blue;\">Public <\/span>Enum eAppFunction\r\n     eAppOpenForm1\r\n     eAppOpenForm2\r\n     eAppOpenForm3\r\n     eAppOpenFormKunden\r\n     eAppOpenDSKunden\r\n     eAppMsg1\r\n     eAppMsg2\r\n     eAppClose\r\nEnd Enum \r\n<span style=\"color:blue;\">Public Function <\/span>NaviFunction(fu<span style=\"color:blue;\"> As <\/span>eAppFunction)\r\n     Select Case fu\r\n     <span style=\"color:blue;\">Case <\/span>eAppOpenForm1\r\n         DoCmd.OpenForm \"frmTest1\"\r\n     <span style=\"color:blue;\">Case <\/span>eAppOpenForm2\r\n         DoCmd.OpenForm \"frmTest2\"\r\n     <span style=\"color:blue;\">Case <\/span>eAppOpenForm3\r\n         DoCmd.OpenForm \"frmTest3\"\r\n     <span style=\"color:blue;\">Case <\/span>eAppOpenFormKunden\r\n         DoCmd.OpenForm \"frmAdressen\"\r\n     <span style=\"color:blue;\">Case <\/span>eAppOpenDSKunden\r\n         DoCmd.OpenForm \"frmAdressenDS\", acFormDS\r\n     <span style=\"color:blue;\">Case <\/span>eAppMsg1\r\n         <span style=\"color:blue;\">MsgBox<\/span> \"Das ist eine beliebige Meldung\", vbInformation\r\n     <span style=\"color:blue;\">Case <\/span>eAppMsg2\r\n         <span style=\"color:blue;\">MsgBox<\/span> \"Das ist eine weitere Meldung\", vbExclamation\r\n     <span style=\"color:blue;\">Case <\/span>eAppClose\r\n         If <span style=\"color:blue;\">MsgBox<\/span>(\"Anwendung wirklich schlie&szlig;en\", _\r\n                   vbQuestion Or vbYesNo,  _\r\n                  \"Best&auml;tigen:\") = vbYes Then\r\n             Application.Quit acQuitSaveAll\r\n         <span style=\"color:blue;\">End If<\/span>\r\n     <span style=\"color:blue;\">End Select<\/span>\r\n<span style=\"color:blue;\">End Function<\/span><\/pre>\n<p class='imagetext'>Listing 1: Navigationsfunktion<\/p>\n<p>Im Kopf des Moduls stehen <b>Enumerationskonstanten<\/b>, die die Aktionen versinnbildlichen. <b>eAppOpenFormKunden<\/b> etwa soll das Kundenformular &ouml;ffnen, <b>eAppOpenDSKunden<\/b> das Datenblatt mit Kundenadressen. Diese Konstanten k&ouml;nnen der Funktion <b>NaviFunction<\/b> als Parameter &uuml;bergeben werden. Der Vorteil besteht darin, dass nun <b>IntelliSense<\/b> bei Schreiben des Funktionsnamens an beliebiger Stelle gleich die Konstanten auflistet. Das Kundenformular rufen Sie also so auf:<\/p>\n<pre>NaviFunction eAppOpenFormKunden<\/pre>\n<p>Genau diese Zeile steht auch im <b>Click<\/b>-Ereignis der entsprechenden Schaltfl&auml;che des Switchboard-Formulars:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cmd4_Click()\r\n     NaviFunction eAppOpenFormKunden\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Die Funktion ermittelt nun &uuml;ber ein <b>Select-Case<\/b>-Statement die gew&uuml;nschte Aktion und &uuml;bernimmt sie dann im Programmzweig. In jeden <b>Case<\/b>-Abschnitt k&ouml;nnen Sie beliebigen VBA-Code unterbringen. Im Beispiel sind das neben dem &ouml;ffnen von Formularen etwa noch Meldungen. <b>eAppClose<\/b> ist eine Aktion, die die Anwendung schlie&szlig;en lassen soll. Das geschieht erst nach Best&auml;tigung eines Nachfragedialogs. Bei Bejahung erfolgt das <b>Application.Quit<\/b>, welches die Anwendung und Access beendet.<\/p>\n<h2>Formulare an den Access-Rahmen anpassen<\/h2>\n<p>Wenn Sie das Access-Fenster vergr&ouml;&szlig;ern oder verkleinern, dann &auml;ndert sich auch die Arbeitsfl&auml;che. Da das Switchboard-Formular grunds&auml;tzlich den linken Rand einnehmen soll, muss es solchen Gr&ouml;&szlig;en&auml;nderungen folgen. Doch wie kriegt es die mit<\/p>\n<p>In der letzten Ausgabe wurde erl&auml;utert, wie Sie mithilfe einer <b>API<\/b>-Funktion (<b>GetWindowRect<\/b>) die Ausdehnung des Access-Fensters zur&uuml;ckbekommen. Diese muss regelm&auml;&szlig;ig abgefragt werden, da es leider kein Ereignis gibt, welches durch Gr&ouml;&szlig;en&auml;nderung des Access-Fensters hervorgerufen w&uuml;rde. Daf&uuml;r kommt, wenn man auf komplizierte <b>API<\/b>-Routinen verzichten m&ouml;chte, eigentlich nur ein Formular-<b>Timer<\/b> infrage. Also ist die Eigenschaft <b>Zeitgeberintervall<\/b> des Formulars <b>frmNavi<\/b> auf den Wert <b>300<\/b> eingestellt. Etwa drei Mal pro Sekunde ermittelt die <b>Timer<\/b>-Prozedur dann die Abmessungen des Rahmenfensters, um darauf gegebenenfalls reagieren zu k&ouml;nnen:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>Form_Timer()\r\n     AdjustSize\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<div class=\"rcp_restricted\"><p><span style=\"color: #ff0000;\">M&ouml;chten Sie weiterlesen? Dann l&ouml;sen Sie Ihr Ticket!<\/span><br \/>\n<span style=\"color: #ff0000;\">Hier geht es zur Bestellung des Jahresabonnements des Magazins <strong>Access &#091;basics&#093;<\/strong>:<\/span><br \/>\n<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/shop.minhorst.com\/magazine\/282\/access-basics?c=77\">Zur Bestellung ...<\/a><\/span><br \/>\n<span style=\"color: #ff0000;\">Danach greifen Sie sofort auf <strong>alle rund 400 Artikel<\/strong> unseres Angebots zu - auch auf diesen hier!<\/span><br \/>\n<span style=\"color: #000000;\">Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:<\/span><\/p>\n<\/div>\n\n\t\n\t<form id=\"rcp_login_form\"  class=\"rcp_form\" method=\"POST\" action=\"https:\/\/access-basics.de\/data\/wp\/v2\/posts\/55000343\/\">\n\n\t\t\n\t\t<fieldset class=\"rcp_login_data\">\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_login\">Username or Email<\/label>\n\t\t\t\t<input name=\"rcp_user_login\" id=\"rcp_user_login\" class=\"required\" type=\"text\"\/>\n\t\t\t<\/p>\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_pass\">Password<\/label>\n\t\t\t\t<input name=\"rcp_user_pass\" id=\"rcp_user_pass\" class=\"required\" type=\"password\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t\t<p>\n\t\t\t\t<input type=\"checkbox\" name=\"rcp_user_remember\" id=\"rcp_user_remember\" value=\"1\"\/>\n\t\t\t\t<label for=\"rcp_user_remember\">Remember me<\/label>\n\t\t\t<\/p>\n\t\t\t<p class=\"rcp_lost_password\"><a href=\"\/index.php\/data\/wp\/v2\/posts\/55000343?rcp_action=lostpassword\"><\/a><\/p>\n\t\t\t<p>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_action\" value=\"login\"\/>\n\t\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_redirect\" value=\"https:\/\/access-basics.de\/data\/wp\/v2\/posts\/55000343\/\"\/>\n\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"22c77db969\"\/>\n\t\t\t\t<input id=\"rcp_login_submit\" class=\"rcp-button\" type=\"submit\" value=\"Login\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t<\/fieldset>\n\n\t\t\n\t<\/form>\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wie Sie die Positionen und Abmessungen von Formularen ermitteln oder per VBA setzen k&ouml;nnen, oder auch die des Access-Rahmenfensters, das erfuhren Sie schon in der letzten Ausgabe von Access Basics. Einige Beispiele, wie Sie solche Routinen gewinnbringend in Ihrer Anwendung einsetzen k&ouml;nnen, folgen in diesem Beitrag.<\/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,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[66012017,662017,44000010],"tags":[],"class_list":["post-55000343","post","type-post","status-publish","format-standard","hentry","category-66012017","category-662017","category-Formulare_mit_VBA_programmieren"],"aioseo_notices":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v15.9.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Anwendungs-Design mit positionierten Formularen - Access [basics]<\/title>\n<meta name=\"description\" content=\"Wie Sie die Positionen und Abmessungen von Formularen ermitteln oder per VBA setzen k\u00f6nnen, oder auch die des Access-Rahmenfensters, das erfuhren Sie schon in der letzten Ausgabe von Access Basics. Einige Beispiele, wie Sie solche Routinen gewinnbringend in Ihrer Anwendung einsetzen k\u00f6nnen, folgen in diesem Beitrag.\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-basics.de\/index.php\/AnwendungsDesign_mit_positionierten_Formularen.html\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Anwendungs-Design mit positionierten Formularen - Access [basics]\" \/>\n<meta property=\"og:description\" content=\"Wie Sie die Positionen und Abmessungen von Formularen ermitteln oder per VBA setzen k\u00f6nnen, oder auch die des Access-Rahmenfensters, das erfuhren Sie schon in der letzten Ausgabe von Access Basics. Einige Beispiele, wie Sie solche Routinen gewinnbringend in Ihrer Anwendung einsetzen k\u00f6nnen, folgen in diesem Beitrag.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-basics.de\/index.php\/AnwendungsDesign_mit_positionierten_Formularen.html\" \/>\n<meta property=\"og:site_name\" content=\"Access [basics]\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-24T15:59:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"-0001-11-30T00:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/..\/tl_files\/images\/Access1920.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Gesch\u00e4tzte Lesezeit\">\n\t<meta name=\"twitter:data1\" content=\"19\u00a0Minuten\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/access-basics.de\/#website\",\"url\":\"https:\/\/access-basics.de\/\",\"name\":\"Access [basics]\",\"description\":\"DAS ACCESS-MAGAZIN F\\u00dcR ALLE, DIE VON 0 AUF 100 WOLLEN\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/access-basics.de\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/access-basics.de\/index.php\/AnwendungsDesign_mit_positionierten_Formularen.html#primaryimage\",\"inLanguage\":\"de\",\"url\":\"..\/tl_files\/images\/Access1920.png\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/index.php\/AnwendungsDesign_mit_positionierten_Formularen.html#webpage\",\"url\":\"https:\/\/access-basics.de\/index.php\/AnwendungsDesign_mit_positionierten_Formularen.html\",\"name\":\"Anwendungs-Design mit positionierten Formularen - Access [basics]\",\"isPartOf\":{\"@id\":\"https:\/\/access-basics.de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/AnwendungsDesign_mit_positionierten_Formularen.html#primaryimage\"},\"datePublished\":\"2020-01-24T15:59:44+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\",\"author\":{\"@id\":\"https:\/\/access-basics.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f\"},\"description\":\"Wie Sie die Positionen und Abmessungen von Formularen ermitteln oder per VBA setzen k\\u00f6nnen, oder auch die des Access-Rahmenfensters, das erfuhren Sie schon in der letzten Ausgabe von Access Basics. Einige Beispiele, wie Sie solche Routinen gewinnbringend in Ihrer Anwendung einsetzen k\\u00f6nnen, folgen in diesem Beitrag.\",\"breadcrumb\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/AnwendungsDesign_mit_positionierten_Formularen.html#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/access-basics.de\/index.php\/AnwendungsDesign_mit_positionierten_Formularen.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/access-basics.de\/index.php\/AnwendungsDesign_mit_positionierten_Formularen.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/\",\"url\":\"https:\/\/access-basics.de\/\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/index.php\/AnwendungsDesign_mit_positionierten_Formularen.html\",\"url\":\"https:\/\/access-basics.de\/index.php\/AnwendungsDesign_mit_positionierten_Formularen.html\",\"name\":\"Anwendungs-Design mit positionierten Formularen\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/access-basics.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/access-basics.de\/#personlogo\",\"inLanguage\":\"de\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","_links":{"self":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts\/55000343","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/comments?post=55000343"}],"version-history":[{"count":0,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts\/55000343\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/media?parent=55000343"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/categories?post=55000343"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/tags?post=55000343"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}