{"id":55000441,"date":"2007-02-01T00:00:00","date_gmt":"2020-12-04T14:35:52","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=441"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Zeitplaene_mit_Access_erstellen_Teil_2","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Zeitplaene_mit_Access_erstellen_Teil_2\/","title":{"rendered":"Zeitpl&auml;ne mit Access erstellen, Teil 2"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg07.met.vgwort.de\/na\/c9243d254d0645dbab50c837f3acb5f2\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>In Ausgabe 3\/2006 hat Access im Unternehmen im Artikel &#8222;Zeitpl&auml;ne mit Access erstellen&#8220; gezeigt, wie man mit reinen Access-Bordmitteln einen grafischen Monatsplan entwickeln kann. Aufgrund zahlreicher Leseranfragen machen wir diesen Monatsplan nun etwas flexibler: etwa, um gr&ouml;&szlig;ere oder kleinere Zeitintervalle anzuzeigen oder eine Kalenderwochenansicht zu pr&auml;sentieren.<\/b><\/p>\n<\/p><\/div>\n<div class=\"story\">\n<p class=\"zwischen-berschrift-oberer-spaltenrand\">Die ver&auml;nderte Oberfl&auml;che<\/p>\n<p>Der Aufbau der Datenbankstruktur ist gegen&uuml;ber dem Artikel aus [1] unver&auml;ndert. Ge&auml;ndert haben sich nur die Oberfl&auml;che und der Code des Zeitplan-Formulars. Bild 1 zeigt die aktuelle Version des Formulars.<\/p>\n<div class=\"abbildungrahmen\">\n            <img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2007_01\/Zeitplan2-web-images\/Abbildung1_opt.jpeg\" alt=\"Abbildung1.tif\" \/>\n        <\/div>\n<div class=\"abbildung\">\n<p><b><span style=\"color:darkgrey\">Bild 1: Zeitplan mit Einstellung auf kompletten Monat<\/span><\/b><\/p>\n<\/p><\/div>\n<p>Die Beispiel-Datenbank ist begrenzt auf Zeitr&auml;ume von einem einzelnen Tag bis zu einem Monat, also maximal 31 Tagen.<\/p>\n<p>Der Hauptgrund daf&uuml;r ist, dass im Plan kurze Texte in jedem Feld lesbar sein sollten, damit der Gast-, Kunden-, Veranstaltungsname oder sonstige mit dem Zeitplan verwaltete Informationen noch gut zu erkennen sind.<\/p>\n<p>Wenn Sie sehr gro&szlig;e Bildschirme oder sehr hohe Aufl&ouml;sungen haben, k&ouml;nnen Sie den maximal darstellbaren Zeitraum mit etwas Anpassungsarbeit, aber bei unver&auml;nderten Prinzipien, nat&uuml;rlich auf zwei oder drei Monate erweitern.<\/p>\n<p>Bild 2 zeigt im Ausschnitt den oberen Rand mit den neuen, vielf&auml;ltigen Einstellm&ouml;glichkeiten f&uuml;r den Zeitraum.<\/p>\n<div class=\"abbildungrahmen\">\n            <img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2007_01\/Zeitplan2-web-images\/Abbildung2_opt.jpeg\" alt=\"Abbildung2.tif\" \/>\n        <\/div>\n<div class=\"abbildung\">\n<p><b><span style=\"color:darkgrey\"> Abb. 2: Erweiterte Zeitauswahl und Anzeigen<\/span><\/b><\/p>\n<\/p><\/div>\n<p>Wenn Sie die erste Version kennen, werden Ihnen sofort die Anzeige des Wochentags und der Kalenderwoche (bei jedem Montag) auffallen. Die Wochentage sind vor allem zur schnelleren Orientierung hinzugef&uuml;gt, die Kalenderwoche hingegen, weil in vielen Branchen vorwiegend mit diesem Zeitraster gearbeitet wird.<\/p>\n<p>&uuml;ber diesen beiden Anzeigeelementen befinden sich die erweiterten Steuerelemente zur Auswahl des darzustellenden Zeitraums und zur Naviga-tion.<\/p>\n<p>Hier wurde zu Demonstrationszwecken bewusst etwas &uuml;bertrieben. Suchen Sie sich die f&uuml;r Ihre Praxis passenden M&ouml;glichkeiten aus und machen Sie die weniger in Betracht kommenden Steuerelemente einfach unsichtbar.<\/p>\n<p>Die Kombinationsfelder links zur Auswahl von Jahr und Monat waren bereits in der ersten Version des Plans vorhanden. Gleich daneben finden Sie nun eine Optionsgruppe, in der Sie ausw&auml;hlen k&ouml;nnen, ob eine einzelne Kalenderwoche dargestellt werden soll oder zwei oder drei Kalenderwochen. <\/p>\n<p>Rechts davon gibt es zwei Datumsfelder, in denen immer die Grenzdaten des aktuell eingestellten Zeitraums angezeigt werden. Sie k&ouml;nnen in diese Textfelder auch direkt ein Start- und Enddatum eingeben und damit einen beliebigen Zeitraum (von maximal 31 Tagen) abseits von Monats- oder Wochenintervallen darstellen. Daneben gibt es noch zwei Schaltfl&auml;chen zum R&uuml;ckw&auml;rts- und Vorw&auml;rtsbl&auml;ttern. Spielen Sie am besten zuerst mit den verschiedenen Steuerelementen.<\/p>\n<p class=\"zwischen-berschrift-oberer-spaltenrand\">Der erweiterte Code<\/p>\n<p>Listing 1 zeigt die Prozedur, die durch das Ereignis <b>Beim &ouml;ffnen <\/b>des Formulars ausgel&ouml;st wird.<\/p>\n<p class=\"kastentabelleheader\">Listing 1: Diese Routine wird beim &ouml;ffnen des Terminformulars ausgel&ouml;st.<\/p>\n<pre>Private Sub Form_Open(Cancel As Integer)\r\n     procFormat\r\n     Me!cboMonat = Month(Date)\r\n     cboMonat_AfterUpdate\r\n     &apos;grpKW_AfterUpdate\r\n     procFill\r\nEnd Sub<\/pre>\n<p>Darin wird zun&auml;chst die Sub <b>procFormat <\/b>aufge-rufen, die mit Hilfe der bedingten Formatierung (<b>FormatConditions<\/b>) f&uuml;r die sp&auml;tere Einf&auml;rbung der Kalendereintr&auml;ge sorgt.<\/p>\n<p>Sie ist unver&auml;ndert gegen&uuml;ber der alten Kalenderversion und wird daher nicht nochmal erl&auml;utert. Danach wird das Monats-Kombinationsfeld mit dem Monat des aktuellen Datums gef&uuml;llt.<\/p>\n<p>Dadurch wird der aktuelle Monat beim &ouml;ffnen des Formulars dargestellt. M&ouml;chten Sie hingegen als Grundeinstellung die aktuelle Kalenderwoche sehen, so m&uuml;ssen Sie nur diese Zeile auskommentieren und daf&uuml;r die n&auml;chste Codezeile aktivieren.<\/p>\n<p>Sie ruft die <b>AfterUpdate<\/b>-Prozedur der Optionsgruppe auf, in der ausgew&auml;hlt werden kann, wie viele Wochen darzustellen sind. Dort wird bei fehlender Angabe die aktuelle Kalenderwoche eingesetzt. Abschlie&szlig;end wird die zentrale Sub <b>procFill <\/b>aufgerufen, die den Kalender mit Daten f&uuml;llt (Listing 2). <\/p>\n<p class=\"kastentabelleheader\">Listing 2: Die Routine procFill f&uuml;llt das Kalenderformular mit Daten und f&auml;rbt die Steuerelemente ein (erster Teil).<\/p>\n<pre>Sub procFill()\r\n     Dim db As DAO.Database\r\n     Dim rsPlan As DAO.Recordset, rsDat As DAO.Recordset\r\n     Dim ctl As Control\r\n     Dim strSQL As String\r\n     Dim dteComp As Date\r\n     Dim i As Long, lngColor As Long, lngLeft As Long, lngWidth As Long\r\n     Dim lngStart As Long, lngEnd As Long, lngDays As Long\r\n     Set db = CurrentDb\r\n     db.Execute &quot;DELETE FROM tblPlan&quot;, dbFailOnError\r\n     db.Execute &quot;INSERT INTO tblPlan (RowCaption1) SELECT RmBez FROM tblRaum&quot;, _<br \/> dbFailOnError\r\n     lngLeft = 645\r\n     lngWidth = 510\r\n     lngStart = Me!txtVon\r\n     lngEnd = Me!txtBis\r\n     lngDays = lng7End - lngStart + 1\r\n     If lngDays &lt; 28 Then\r\n         lngWidth = lngWidth * 31 \/ lngDays\r\n     End If\r\n     strSQL = _<br \/> &quot;SELECT a.RmBez, a.RSStart, a.RSEnde, a.RSId, a.RSStatus, b.KDNachname&quot; &amp; _\r\n     &quot; FROM tblReservierung AS a LEFT JOIN tblKunde AS b ON a.KDId = b.KDId&quot; &amp; _\r\n     &quot; WHERE a.RSStart&lt;=&quot; &amp; lngEnd &amp; _\r\n     &quot; And a.RSEnde &gt;&quot; &amp; lngStart &amp; _\r\n     &quot; ORDER BY a.RSStart, a.RSEnde&quot;\r\n     Set rsPlan = db.OpenRecordset(&quot;tblPlan&quot;, dbOpenDynaset)\r\n     Set rsDat = db.OpenRecordset(strSQL, dbOpenDynaset)\r\n     For i = 1 To 31\r\n         Me(&quot;cptItem&quot; &amp; i).Caption = &quot;&quot;\r\n         Me(&quot;cpt2Item&quot; &amp; i).Caption = &quot;&quot;\r\n         Me(&quot;cptItem&quot; &amp; i).BackColor = vbWhite\r\n         Me(&quot;cpt2Item&quot; &amp; i).BackColor = vbWhite\r\n         Me(&quot;cptKW&quot; &amp; i).Value = Null\r\n         Me(&quot;cptWD&quot; &amp; i).Caption = &quot;&quot;\r\n         Me(&quot;cptItem&quot; &amp; i).Visible = True\r\n         Me(&quot;cpt2Item&quot; &amp; i).Visible = True\r\n         Me(&quot;cptWD&quot; &amp; i).Visible = True\r\n         Me(&quot;cptKW&quot; &amp; i).Visible = True\r\n         Me(&quot;txtItem&quot; &amp; i).Visible = True\r\n     Next i\r\n     For i = 1 To lngDays\r\n         If lngDays &lt; 28 Then\r\n             Me(&quot;cptItem&quot; &amp; i).Caption = Format(lngStart + i - 1, &quot;d.m.&quot;)\r\n             Me(&quot;cpt2Item&quot; &amp; i).Caption = Format(lngStart + i - 1, &quot;d.m.&quot;)\r\n         Else\r\n             Me(&quot;cptItem&quot; &amp; i).Caption = Day(lngStart + i - 1)\r\n             Me(&quot;cpt2Item&quot; &amp; i).Caption = Day(lngStart + i - 1)\r\n         End If\r\n         Me(&quot;cptItem&quot; &amp; i).Left = lngLeft + lngWidth * (i - 1)\r\n         Me(&quot;cptItem&quot; &amp; i).Width = lngWidth\r\n         Me(&quot;cpt2Item&quot; &amp; i).Left = lngLeft + lngWidth * (i - 1)\r\n         Me(&quot;cpt2Item&quot; &amp; i).Width = lngWidth\r\n         Me(&quot;cptWD&quot; &amp; i).Caption = For-mat(lngStart + i - 1, &quot;ddd&quot;)\r\n         Me(&quot;cptWD&quot; &amp; i).Left = lngLeft + lngWidth * (i - 1)\r\n         Me(&quot;cptWD&quot; &amp; i).Width = lngWidth\r\n         Me(&quot;cptKW&quot; &amp; i).Left = lngLeft + lngWidth * (i - 1)\r\n         Me(&quot;cptKW&quot; &amp; i).Width = lngWidth\r\n         Me(&quot;txtItem&quot; &amp; i).Left = lngLeft + lngWidth * (i - 1)\r\n         Me(&quot;txtItem&quot; &amp; i).Width = lngWidth\r\n         Select Case Weekday(lngStart + i - 1, vbMonday)\r\n             Case 1\r\n                 Me(&quot;cptKW&quot; &amp; i).Value = DatePart(&quot;ww&quot;, lngStart + i - 1, _<br \/> vbMonday, vbFirstFourDays)\r\n                 lngColor = vbBlack\r\n             Case 6\r\n                 lngColor = vbBlue\r\n             Case 7\r\n                 lngColor = vbRed\r\n             Case Else\r\n                 lngColor = vbBlack\r\n                 Me(&quot;cptItem&quot; &amp; i).BackColor = lngColor\r\n                 Me(&quot;cpt2Item&quot; &amp; i).BackColor = lngColor\r\n         End Select\r\n     Next i\r\n     For i = i To 31\r\n         Me(&quot;cptItem&quot; &amp; i).Visible = False\r\n         Me(&quot;cpt2Item&quot; &amp; i).Visible = False\r\n         Me(&quot;cptWD&quot; &amp; i).Visible = False\r\n         Me(&quot;cptKW&quot; &amp; i).Visible = False\r\n         Me(&quot;txtItem&quot; &amp; i).Visible = False\r\n     Next i\r\n     Do Until rsDat.EOF\r\n         rsPlan.FindFirst &quot;RowCaption1 = &apos;&quot; &amp; rsDat!RmBez &amp; &quot;'&quot;\r\n         rsPlan.Edit\r\n         For i = 1 To lngEnd - lngStart + 1\r\n             dteComp = lngStart + i - 1\r\n             If dteComp &gt;= rsDat!RSStart And dteComp &lt; rsDat!RSEnde Then\r\n                 rsPlan(&quot;Item&quot; &amp; i) = rsDat!RSStatus\r\n                 rsPlan(&quot;ItemTxt&quot; &amp; i) = rsDat!KDNachname\r\n                 rsPlan(&quot;ItemVal&quot; &amp; i) = rsDat!RSId\r\n             End If\r\n         Next i\r\n         rsPlan.Update\r\n         rsDat.MoveNext\r\n     Loop\r\n     Me.Requery\r\nEnd Sub<\/pre>\n<p><!--30percent--><\/p>\n<p>Strukturell ist der Code &auml;hnlich aufgebaut wie bereits im Vorg&auml;ngerartikel beschrieben. Es wird daher nur ausschnittweise auf einige der &auml;nderungen eingegangen, die sich durch die neuen Intervalle und zus&auml;tzlichen Anzeigen ergeben. Mit den beiden Zeilen<\/p>\n<pre>lngLeft = 645\r\nlngWidth = 510<\/pre>\n<p>werden die linke Startposition und die Breite der Tagesfelder in zwei Variablen geschrieben. Das passiert in Twips und auf Basis von 31 dargestellten Tagen.<\/p>\n<p>Wenn Sie andere Darstellungsgr&ouml;&szlig;en bevorzugen, k&ouml;nnen Sie das im Wesentlichen in diesen zwei Zeilen umstellen.<\/p>\n<p>Die n&auml;chsten Codezeilen sind ebenfalls neu:<\/p>\n<pre>lngStart = Me!txtVon\r\nlngEnd = Me!txtBis\r\nlngDays = lngEnd - lngStart + 1<\/pre>\n<p>Zun&auml;chst werden die Daten aus den beiden Textfeldern im Formular f&uuml;r Start- und Endtag in Variablen gef&uuml;llt. <\/p>\n<p>Danach wird die Anzahl der darzustellenden Tage errechnet. Diese drei Variablen werden im weiteren Verlauf f&uuml;r etliche Berechnungen verwendet. Mit<\/p>\n<pre>If lngDays &lt; 28 Then\r\n lngWidth = _<br \/> lngWidth * 31 \/ lngDays\r\nEnd If<\/pre>\n<p>wird gepr&uuml;ft, ob weniger als 28 Tage dargestellt werden sollen. Nur, wenn es um weniger als diese k&uuml;rzeste Monatsl&auml;nge geht, wird mit der Formel <\/p>\n<pre>Textfeldbreite * 31 maximale Tage \/ darzustellen-de Tage<\/pre>\n<p>die Breite der einzelnen Textfelder erweitert. Dadurch wird auch bei der Darstellung nur einer Kalenderwoche oder sogar nur eines Tages die volle Kalenderbreite genutzt, um mehr Text lesbar in den Kalenderfeldern anzuzeigen.<\/p>\n<p>In Bild 3 werden zum Beispiel nur die sieben Tage der Kalenderwoche 51\/2006 &uuml;ber die ganze Kalenderbreite angezeigt.<\/p>\n<div class=\"abbildungrahmen\">\n            <img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2007_01\/Zeitplan2-web-images\/Abbildung3_opt.jpeg\" alt=\"Abbildung3.tif\" \/>\n        <\/div>\n<div class=\"abbildung\">\n<p><b><span style=\"color:darkgrey\">Bild 3: Eine Kalenderwoche f&uuml;llt den kompletten Plan<\/span><\/b><\/p>\n<\/p><\/div>\n<p>Ebenfalls ver&auml;ndert ist der Abschnitt zum F&uuml;llen der &uuml;berschriftenfelder: <b>lngDays <\/b>ist die Anzahl der darzustellenden Tage.<\/p>\n<p>F&uuml;r jeden Tag gibt es also einen Schleifendurchlauf. Werden weniger als 28 Tage dargestellt, so wird in der oberen und unteren Beschriftung nicht nur der Monatstag angezeigt, sondern im Format <b>d.m.<\/b> auch die Monatszahl. Das hilft bei der Orientierung, wie ebenfalls in Bild 3 zu sehen ist:<\/p>\n<pre>For i = 1 To lngDays\r\n If lngDays &lt; 28 Then\r\n Me(&quot;cptItem&quot; &amp; i).Caption = _<br \/> Format(lngStart + i - 1, &quot;d.m.&quot;)\r\n Me(&quot;cpt2Item&quot; &amp; i).Caption = _<br \/> Format(lngStart + i - 1, &quot;d.m.&quot;)<\/pre>\n<p>In den folgenden, sich &auml;hnlich wiederholenden Zeilen wie<\/p>\n<pre>Me(&quot;txtItem&quot; &amp; i).Left = _<br \/> lngLeft + lngWidth * (i - 1)\r\nMe(&quot;txtItem&quot; &amp; i).Width = lngWidth<\/pre>\n<p>werden die Position von links und die Breite der Kalendereintr&auml;ge und Beschriftungen eingestellt.<\/p>\n<p>Die Position ist abh&auml;ngig von <b>i<\/b>, also der wievielte Tag in der Darstellung es ist. Die Breite hingegen ist f&uuml;r alle Steuerelemente die bereits erl&auml;uterte Tagesbreite.<\/p>\n<p>F&uuml;r die Anzeige der Kalenderwoche sind 31 Textfelder oberhalb der Tages&uuml;berschriften positioniert.<\/p>\n<p>Nur jene Textfelder, die sich &uuml;ber einem Montag befinden, werden mit der Kalenderwoche beschriftet. Daf&uuml;r sorgt diese Codestelle:<\/p>\n<pre>Select Case Weekday(lngStart + i - 1, vbMonday)\r\n Case 1\r\n Me(&quot;cptKW&quot; &amp; i).Value = _<br \/> DatePart(&quot;ww&quot;, lngStart + i - 1, _<br \/> vbMonday, vbFirstFourDays)<\/pre>\n<p>Wenn der Wochentag ein Montag ist (<b>Case 1<\/b>), dann wird das Textfeld mit Hilfe der <b>DatePart<\/b>-Funktion gef&uuml;llt.<\/p>\n<p>Dazu noch ein Hinweis: Wenn Sie im Formular auf eine Kalenderwochenzahl &uuml;ber einem Montag klicken, wechselt der Kalender auf die Anzeige dieser Kalenderwoche beziehungsweise, je nach Optionsfeldeinstellung, auf die Anzeige der n&auml;chsten zwei oder drei Kalenderwochen.<\/p>\n<p>Nach dem F&uuml;llen der anzuzeigenden Steuerelemente folgt <\/p>\n<pre>For i = i To 31\r\n Me(&quot;cptItem&quot; &amp; i).Visible _<br \/> = False<\/pre>\n<p>Die Z&auml;hlvariable <b>i <\/b>ist an dieser Stelle der h&ouml;chste anzuzeigende Tag. Sind das weniger als 31, so werden die aktuell nicht ben&ouml;tigten Steuerelemente auf unsichtbar gesetzt, damit sie nicht im Weg stehen, das hei&szlig;t anzuzeigende Elemente &uuml;berlagern.<\/p>\n<p><b>Neue Prozeduren<\/b><\/p>\n<p>Die weiteren kleinen, neuen Prozeduren regeln die verschiedenen Intervalle im Formular. Als Beispiel zeigt Listing 3 die Prozedur <b>AfterUpdate <\/b>des Optionsfeldes f&uuml;r die Anzahl der Kalenderwochen. <\/p>\n<p class=\"kastentabelleheader\">Listing 3: Auch nach dem Bet&auml;tigen des Kalenderwoche-Optionsfeldes wird die Kalenderansicht aktualisiert.<\/p>\n<pre>Private Sub grpKW_AfterUpdate()\r\n     Me!cboMonat = Null\r\n     If IsNull(Me!cboKW) Then Me!cboKW = DatePart(&quot;ww&quot;, Date)\r\n     Me!txtVon = fctKWMon(Me!cboKW, Me!cboJahr)\r\n     Me!txtBis = Me!txtVon + 7 * Me!grpKW - 1\r\n     procFill\r\nEnd Sub <\/pre>\n<p>Zuerst wird das Kombinationsfeld mit dem Monat geleert, um nicht zu irritieren. Dann wird das Kombinationsfeld mit der aktuellen Kalenderwoche versorgt, falls es leer ist.<\/p>\n<p>Die beiden Textfelder werden mit dem Start- und Endedatum der Kalenderwoche gef&uuml;llt. <b>fctKWMon <\/b>ist dabei eine im Formularmodul enthaltene Funktion, die den Montag einer Kalenderwoche ermittelt. Am Schluss wird der Plan neu aufgebaut.<\/p>\n<p>Die beiden Befehlsschaltfl&auml;chen mit den Pfeilen zum Vor- und R&uuml;ckw&auml;rtsbl&auml;ttern verwenden dabei das aktuell eingestellte Datumsintervall. Listing 4 zeigt den Code hinter dem Vorw&auml;rts-Button.<\/p>\n<p class=\"kastentabelleheader\">Listing 4: Diese Routine springt zum n&auml;chsten Datumsintervall.<\/p>\n<pre>Private Sub btnVor_Click()\r\n     Dim lngDays As Long\r\n     If Not IsNull(Me!cboMonat) Then\r\n         Me!cboJahr = Year(DateSerial(Me!cboJahr, Me!cboMonat + 1, 1))\r\n         Me!cboMonat = Month(DateSerial(Me!cboJahr, Me!cboMonat + 1, 1))\r\n         cboMonat_AfterUpdate\r\n     Else\r\n         Me!cboKW = Null\r\n         lngDays = Me!txtBis - Me!txtVon + 1\r\n         Me!txtVon = Me!txtVon + lngDays\r\n         Me!txtBis = Me!txtBis + lngDays\r\n     End If\r\n     procFill\r\nEnd Sub<\/pre>\n<p>Wenn eine Monatseinstellung aktiv ist, dann werden die Kombinationsfelder f&uuml;r Jahr und Monat mit den Daten f&uuml;r den darauf folgenden Monat versorgt (<b>Me!cboMonat + 1<\/b>). Beide einfach nur um 1 hochzuz&auml;hlen ist nicht ratsam, weil es sich ja bereits um den zw&ouml;lften Monat handeln k&ouml;nnte, also um einen Jahreswechsel. Danach wird die normale Monatsroutine aufgerufen. Ist hingegen kein Monat eingestellt, so wird vorsichtshalber das Kombinationsfeld f&uuml;r die Kalenderwoche geleert.<\/p>\n<p>Die aktuell dargestellte Anzahl Tage wird in die Variable <b>lngDays <\/b>geschrieben und die Textfelder mit Start- und Endedatum werden um diese Anzahl erh&ouml;ht.<\/p>\n<p><b>Zusammenfassung und Ausblick<\/b><\/p>\n<p>Mit den Erl&auml;uterungen im ersten Artikel und den Kommentaren im Code der Beispiel-Datenbank sollten Sie die wichtigsten Codeteile nun verste-hen.<\/p>\n<p>Die Datenbank ist klein und der Code nicht allzu umfangreich. Sollten manche Teile noch nicht ganz klar sein, dann spielen und testen Sie mit dem Formular.<\/p>\n<p>Wenn Sie sich etwas damit auseinandersetzen, werden Sie bald in der Lage sein, den Plan so anzupassen, dass Sie Ihre eigenen zeitlichen Abl&auml;ufe damit visualisieren k&ouml;nnen &#8211; jetzt auch in flexiblen Intervallen.<\/p>\n<p class=\"zwischen-berschriftquellen\">Quellen<\/p>\n<p class=\"quellen\">[1] Zeitpl&auml;ne mit Access erstellen, Ausgabe 3\/2006, Shortlink 353<\/p>\n<h3>Downloads zu diesem Beitrag<\/h3>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>Zeitplan2.mdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/03D77A77-87C4-4047-A9F5-A41E54CE3A63\/aiu_441.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Ausgabe 3\/2006 hat Access im Unternehmen im Artikel &#8222;Zeitpl&auml;ne mit Access erstellen&#8220; gezeigt, wie man mit reinen Access-Bordmitteln einen grafischen Monatsplan entwickeln kann. Aufgrund zahlreicher Leseranfragen machen wir diesen Monatsplan nun etwas flexibler: etwa, um gr&ouml;&szlig;ere oder kleinere Zeitintervalle anzuzeigen oder eine Kalenderwochenansicht zu pr&auml;sentieren.<\/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":[66012007,662007,44000027],"tags":[],"class_list":["post-55000441","post","type-post","status-publish","format-standard","hentry","category-66012007","category-662007","category-Loesungen"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Zeitpl&auml;ne mit Access erstellen, Teil 2 - 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\/Zeitplaene_mit_Access_erstellen_Teil_2\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Zeitpl&auml;ne mit Access erstellen, Teil 2\" \/>\n<meta property=\"og:description\" content=\"In Ausgabe 3\/2006 hat Access im Unternehmen im Artikel &quot;Zeitpl&auml;ne mit Access erstellen&quot; gezeigt, wie man mit reinen Access-Bordmitteln einen grafischen Monatsplan entwickeln kann. Aufgrund zahlreicher Leseranfragen machen wir diesen Monatsplan nun etwas flexibler: etwa, um gr&ouml;&szlig;ere oder kleinere Zeitintervalle anzuzeigen oder eine Kalenderwochenansicht zu pr&auml;sentieren.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Zeitplaene_mit_Access_erstellen_Teil_2\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-12-04T14:35:52+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg07.met.vgwort.de\/na\/c9243d254d0645dbab50c837f3acb5f2\" \/>\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\\\/Zeitplaene_mit_Access_erstellen_Teil_2\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Zeitplaene_mit_Access_erstellen_Teil_2\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Zeitpl&auml;ne mit Access erstellen, Teil 2\",\"datePublished\":\"2020-12-04T14:35:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Zeitplaene_mit_Access_erstellen_Teil_2\\\/\"},\"wordCount\":1494,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Zeitplaene_mit_Access_erstellen_Teil_2\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/c9243d254d0645dbab50c837f3acb5f2\",\"articleSection\":[\"1\\\/2007\",\"2007\",\"L\u00f6sungen\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Zeitplaene_mit_Access_erstellen_Teil_2\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Zeitplaene_mit_Access_erstellen_Teil_2\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Zeitplaene_mit_Access_erstellen_Teil_2\\\/\",\"name\":\"Zeitpl&auml;ne mit Access erstellen, Teil 2 - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Zeitplaene_mit_Access_erstellen_Teil_2\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Zeitplaene_mit_Access_erstellen_Teil_2\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/c9243d254d0645dbab50c837f3acb5f2\",\"datePublished\":\"2020-12-04T14:35:52+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Zeitplaene_mit_Access_erstellen_Teil_2\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Zeitplaene_mit_Access_erstellen_Teil_2\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Zeitplaene_mit_Access_erstellen_Teil_2\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/c9243d254d0645dbab50c837f3acb5f2\",\"contentUrl\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/c9243d254d0645dbab50c837f3acb5f2\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Zeitplaene_mit_Access_erstellen_Teil_2\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Zeitpl&auml;ne mit Access erstellen, Teil 2\"}]},{\"@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":"Zeitpl&auml;ne mit Access erstellen, Teil 2 - 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\/Zeitplaene_mit_Access_erstellen_Teil_2\/","og_locale":"de_DE","og_type":"article","og_title":"Zeitpl&auml;ne mit Access erstellen, Teil 2","og_description":"In Ausgabe 3\/2006 hat Access im Unternehmen im Artikel \"Zeitpl&auml;ne mit Access erstellen\" gezeigt, wie man mit reinen Access-Bordmitteln einen grafischen Monatsplan entwickeln kann. Aufgrund zahlreicher Leseranfragen machen wir diesen Monatsplan nun etwas flexibler: etwa, um gr&ouml;&szlig;ere oder kleinere Zeitintervalle anzuzeigen oder eine Kalenderwochenansicht zu pr&auml;sentieren.","og_url":"https:\/\/access-im-unternehmen.de\/Zeitplaene_mit_Access_erstellen_Teil_2\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-12-04T14:35:52+00:00","og_image":[{"url":"http:\/\/vg07.met.vgwort.de\/na\/c9243d254d0645dbab50c837f3acb5f2","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\/Zeitplaene_mit_Access_erstellen_Teil_2\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Zeitplaene_mit_Access_erstellen_Teil_2\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Zeitpl&auml;ne mit Access erstellen, Teil 2","datePublished":"2020-12-04T14:35:52+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Zeitplaene_mit_Access_erstellen_Teil_2\/"},"wordCount":1494,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Zeitplaene_mit_Access_erstellen_Teil_2\/#primaryimage"},"thumbnailUrl":"http:\/\/vg07.met.vgwort.de\/na\/c9243d254d0645dbab50c837f3acb5f2","articleSection":["1\/2007","2007","L\u00f6sungen"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Zeitplaene_mit_Access_erstellen_Teil_2\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Zeitplaene_mit_Access_erstellen_Teil_2\/","url":"https:\/\/access-im-unternehmen.de\/Zeitplaene_mit_Access_erstellen_Teil_2\/","name":"Zeitpl&auml;ne mit Access erstellen, Teil 2 - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Zeitplaene_mit_Access_erstellen_Teil_2\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Zeitplaene_mit_Access_erstellen_Teil_2\/#primaryimage"},"thumbnailUrl":"http:\/\/vg07.met.vgwort.de\/na\/c9243d254d0645dbab50c837f3acb5f2","datePublished":"2020-12-04T14:35:52+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Zeitplaene_mit_Access_erstellen_Teil_2\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Zeitplaene_mit_Access_erstellen_Teil_2\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Zeitplaene_mit_Access_erstellen_Teil_2\/#primaryimage","url":"http:\/\/vg07.met.vgwort.de\/na\/c9243d254d0645dbab50c837f3acb5f2","contentUrl":"http:\/\/vg07.met.vgwort.de\/na\/c9243d254d0645dbab50c837f3acb5f2"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Zeitplaene_mit_Access_erstellen_Teil_2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Zeitpl&auml;ne mit Access erstellen, Teil 2"}]},{"@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\/55000441","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=55000441"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000441\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000441"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000441"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000441"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}