{"id":55000118,"date":"2003-08-01T00:00:00","date_gmt":"2020-05-06T15:17:29","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=118"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Schulungen_und_Kurse_verwalten_Teil_2","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Schulungen_und_Kurse_verwalten_Teil_2\/","title":{"rendered":"Schulungen und Kurse verwalten, Teil 2"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg01.met.vgwort.de\/na\/e08275c2e3224d5496b5a4ec1ea66e66\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Mit den Anleitungen des ersten Teils dieses Beitrags aus der letzten Ausgabe k&ouml;nnen Sie eine Schulungsverwaltung erstellen, mit der Schulungsprogramme sowie die angemeldeten Teilnehmer und deren Abschl&uuml;sse verwaltet werden. In dieser Ausgabe lernen Sie, wie Sie die Software um eine Raum- und Kursleiterplanung erweitern k&ouml;nnen.  Au&szlig;erdem erfahren Sie, wie Sie ein Auswahlformular zum Druck von Stunden- und Raumbelegungspl&auml;nen entwerfen k&ouml;nnen.<\/b><\/p>\n<p>In der bisherigen Version der Kursverwaltung k&ouml;nnen Sie zu jedem Kurs mehrere Starttermine jeweils mit einem Kursleiter und einer Raumnummer angeben. Pro Termin lassen sich dabei  mehrere Kurseinheiten mit Start- und Enddatum erfassen (siehe Bild 1).<\/p>\n<p><IMG height=\"266\" src=\"..\/fileadmin\/_temp_\/{CB8EEEEE-F6A4-433C-AE49-036DD787D04B}\/pic001.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 1:  Alte Version der Kursverwaltung<\/span><\/b><\/p>\n<p>Mit dieser Variante haben Sie programmtechnisch aber nicht die M&ouml;glichkeit zu pr&uuml;fen, ob f&uuml;r eine angegebene Kurseinheit der gew&auml;hlte Raum bzw. Kursleiter frei ist.<\/p>\n<p>Folglich kann es passieren, dass R&auml;ume doppelt belegt werden oder Kursleiter zwei Kurse gleichzeitig halten m&uuml;ssten.<\/p>\n<h2>Anpassung der Datenstruktur<\/h2>\n<p>Um einen Pr&uuml;fmechanismus einbauen zu k&ouml;nnen, erg&auml;nzen Sie die Datenstruktur so, dass zus&auml;tzlich zu jeder in der Tabelle tblTermindetails gespeicherten Kurseinheit der Raum und der Kursleiter gespeichert werden.<\/p>\n<p>F&uuml;gen Sie dazu in der Tabelle tblTermindetails die Felder RaumID und KursleiterID ein.<\/p>\n<p>Verkn&uuml;pfen Sie anschlie&szlig;end die Felder mit den entsprechenden Prim&auml;rschl&uuml;sseln der Tabellen tblRaeume und tblKursleiter unter Verwendung der referenziellen Integrit&auml;t. <\/p>\n<p>Bild 2 zeigt die neue Datenstruktur f&uuml;r den entsprechenden Teilbereich.<\/p>\n<h2>Das neue FormularfrmTermineBearbeiten<\/h2>\n<p><IMG height=\"249\" src=\"..\/fileadmin\/_temp_\/{CB8EEEEE-F6A4-433C-AE49-036DD787D04B}\/pic002.png\" width=\"444\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 2:  Neue Datenstruktur f&uuml;r die Kursverwaltung<\/span><\/b><\/p>\n<p><IMG height=\"382\" src=\"..\/fileadmin\/_temp_\/{CB8EEEEE-F6A4-433C-AE49-036DD787D04B}\/pic003.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 3:  Das neue Formular frmTermineBearbeiten<\/span><\/b><\/p>\n<p>Im n&auml;chsten Schritt passen Sie zun&auml;chst das Unterformular frmTerminDetails an. F&uuml;gen Sie dazu die zwei Kombinationsfelder KursleiterID und RaumID ein, &uuml;ber die die Auswahl des Kursleiters und des Raumes zu einer Kurseinheit erfolgt.<\/p>\n<h3>Praxis-Tipp<\/h3>\n<p>Am einfachsten erstellen Sie die Kombinationsfelder, indem Sie diese aus dem Formular frmTermineBearbeiten kopieren. Die Kombinationsfelder sind absolut identisch und das Anlegen ist mit nur zwei Mausklicks erledigt. <\/p>\n<p>Nun ordnen Sie die Steuerelemente im Formular frmTermineBearbeiten noch neu an. Verbreitern Sie das Unterformular-Steuerelement, damit die neuen Felder in der Liste sichtbar sind, und platzieren Sie die Schaltfl&auml;chen unterhalb der Liste. Das neue Formular k&ouml;nnte wie in Bild 3 gezeigt aussehen.<\/p>\n<h2>Verf&uuml;gbarkeit pr&uuml;fen<\/h2>\n<p>Die Verf&uuml;gbarkeit eines Raumes oder Kursleiters kann jetzt f&uuml;r jede Kurseinheit separat gepr&uuml;ft werden. Die &uuml;berpr&uuml;fung erfolgt an zwei Stellen: zum einen in der Prozedur TermindetailsAnlegen, die &uuml;ber die Schaltfl&auml;che Einheiten anlegen aufgerufen wird und in einem Schritt mehrere Kurseinheiten einf&uuml;gt; zum anderen nach der manuellen &auml;nderung von Werten direkt in den Kombinationsfeldern f&uuml;r den Raum und den Kursleiter.<\/p>\n<h3>Hinweis<\/h3>\n<p>Die Pr&uuml;fmechanismen werden im Folgenden nur noch f&uuml;r R&auml;ume beschrieben, da sie mit denen f&uuml;r Kursleiter identisch sind. Dabei muss lediglich das Feld RaumID durch das Feld KursleiterID ersetzt werden. <\/p>\n<h3>Der Pr&uuml;fmechanismus<\/h3>\n<p>Die eigentliche Verf&uuml;gbarkeitspr&uuml;fung erfolgt &uuml;ber die Funktion IstRaumVerf&uuml;gbar (s. Quellcode 1). Der Funktion werden die Raumnummer und der zu pr&uuml;fende Zeitraum mit Start- und Enddatum &uuml;bergeben.<\/p>\n<pre>Public Function IstRaumVerf&uuml;gbar(RaumID, Startdatum, Enddatum) As Boolean\r\n    Dim WhereKlausel As String\r\n    If IsNull(Startdatum) Or IsNull(Enddatum) Then\r\n        IstRaumVerf&uuml;gbar = False\r\n    Else\r\n        WhereKlausel = \"RaumID = \" & Nz(RaumID, 0) _\r\n            & \" AND ((\" & SQLDatum(Startdatum) _            & \" Between DateAdd(\"\"s\"\",1,[Startdatum]) \" _            & \"And DateAdd(\"\"s\"\",-1,[Enddatum]))\" _\r\n            & \" OR (\" & SQLDatum(Enddatum) & \" Between \" _            & \"DateAdd(\"\"s\"\",1,[Startdatum]) And DateAdd(\"\"s\"\",-1,[Enddatum]))\" _            & \" OR (\" & SQLDatum(Startdatum) & \"=[Startdatum])\" _\r\n            & \" OR (\" & SQLDatum(Enddatum) & \"=[Enddatum]))\"\r\n        If IsNull(DLookup(\"TermindetailID\", \"tblTermindetails\", WhereKlausel)) Then\r\n            IstRaumVerf&uuml;gbar = True\r\n        Else\r\n            IstRaumVerf&uuml;gbar = False\r\n        End If\r\n    End If\r\nEnd Function<\/pre>\n<p><b>Quellcode 1<\/b><\/p>\n<p>Die Besonderheit liegt bei der Datumsbetrachtung. Die Prozedur schaut in der Tabelle tblTermindetails nach, ob das zu pr&uuml;fende Start- bzw. Enddatum f&uuml;r die angegebene Raumnummer bereits innerhalb eines anderen in der Tabelle gespeicherten Zeitraums liegt. Der folgende Ausdruck dient dabei (exemplarisch f&uuml;r das Startdatum) als Bedingung:<\/p>\n<pre>SQLDatum(Startdatum) & \" Between DateAdd(\"s\",1,[Startdatum]) And DateAdd(\"s\",-1,[Enddatum])\"<\/pre>\n<p>In der Bedingung werden nicht die exakten Datumswerte gepr&uuml;ft, da sonst ein Kurs, der um 14:00 Uhr endet, mit einem zu pr&uuml;fenden Kurs, der um 14:00 Uhr beginnt, zusammenfallen w&uuml;rde.<\/p>\n<p>Die Abfrage w&uuml;rde dann als Ergebnis liefern, dass um 14:00 Uhr bereits ein Kurs vorhanden ist. Um das zu vermeiden, wird beim Startdatum eine Sekunde addiert und beim Enddatum eine Sekunde subtrahiert.<\/p>\n<p>Folglich w&uuml;rde der Kurs, der um 14:00 Uhr endet, mit dem Wert 13:59:59 Uhr gepr&uuml;ft.<\/p>\n<h3>Hinweis<\/h3>\n<p>Alternativ zur DateAdd-Funktion k&ouml;nnen Sie auch mit Gr&ouml;&szlig;er- und Kleiner-Zeichen arbeiten.  Die Bedingung s&auml;he dann wie folgt aus: <\/p>\n<h3>Hinweis<\/h3>\n<p>SQLDatum(Startdatum) &#038; &#8222;&gt;Startdatum And &#8220; &#038; SQLDatum(Startdatum) &#038; &#8222;&lt;Enddatum&#8220; <\/p>\n<p>Ferner pr&uuml;ft die gesamte Bedingung, ob Start- oder Enddatum f&uuml;r den Raum schon vorhanden sind. Diese F&auml;lle m&uuml;ssen ebenfalls ausgeschlossen werden.<\/p>\n<p>Liefert die Gesamtbedingung f&uuml;r die Tabelle tblTermindetails keine Ergebnisse zur&uuml;ck, dann ist der Raum verf&uuml;gbar.<\/p>\n<h3>Einbau in die Funktion TermindetailsAnlegen<\/h3>\n<p>Die Funktion IstRaumVerf&uuml;gbar kann jetzt beim Anlegen von Kurseinheiten mittels der Funktion TermindetailsAnlegen eingesetzt werden. &uuml;ber die Abfrage aus Quellcode 2 wird zun&auml;chst die Raumnummer ermittelt, die beim Anlegen einer neuen Kurseinheit verwendet werden soll.<\/p>\n<pre>If IstRaumVerf&uuml;gbar(RaumID, MyStartdatum, MyEnddatum) = False Then\r\n    MyRaumID = \"Null\"\r\n    RaumErrorstring = RaumErrorstring & MyStartdatum & \" - \" & MyEnddatum & vbCrLf\r\nElse\r\n    MyRaumID = RaumID\r\nEnd If<\/pre>\n<p><b>Quellcode 2<\/b><\/p>\n<pre>Errorstring = \"\"\r\nIf RaumErrorstring &lt;&gt; \"\" Then\r\n    Errorstring = Errorstring & \"Bei den folgenden Kursentermine konnte kein \" & _\r\n    \"Raum angelegt werden, da der vorgegebene Raum bereits belegt war:\"\r\n    Errorstring = Errorstring & vbCrLf & vbCrLf & RaumErrorstring & vbCrLf & vbCrLf\r\nEnd If\r\nIf KursleiterErrorstring &lt;&gt; \"\" Then\r\n    Errorstring = Errorstring & \"Bei den folgenden Kursentermine konnte kein \" & _\r\n    \"Kursleiter angelegt werden, da der vorgegebene Kursleiter bereits einen \" & _    \"anderen Kurs hat:\"\r\n    Errorstring = Errorstring & vbCrLf & vbCrLf & KursleiterErrorstring\r\nEnd If\r\nIf Errorstring &lt;&gt; \"\" Then\r\n    MsgBox Errorstring, vbOKOnly + vbExclamation, \"Fehler...\"\r\nEnd If<\/pre>\n<p><b>Quellcode 3<\/b><\/p>\n<p>Wenn der Raum verf&uuml;gbar ist, wird die RaumID verwendet, die bei den Termindaten als Standard definiert wurde. Im anderen Fall setzt die Prozedur den Wert auf Null. Der Raum wird also freigelassen. Au&szlig;erdem merkt sich die Prozedur den gepr&uuml;ften Zeitraum in der Variablen RaumErrorstring, um dem Anwender nach Anlage aller Kurseinheiten eine &uuml;bersicht &uuml;ber die Kurse zu geben, f&uuml;r die der Standardraum nicht festgelegt werden konnte.<\/p>\n<p><!--30percent--><\/p>\n<p>Diese Meldung wird wie folgt zusammengesetzt und zeigt zus&auml;tzlich die Kursleiter an, die nicht eingef&uuml;gt werden konnten (s. Quellcode 3).<\/p>\n<p><IMG height=\"479\" src=\"..\/fileadmin\/_temp_\/{CB8EEEEE-F6A4-433C-AE49-036DD787D04B}\/pic004.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 4:  Fehlermeldung beim automatischen Anlegen von Kurseinheiten<\/span><\/b><\/p>\n<p>Bild 4 zeigt eine solche Fehlermeldung. Dabei wurden die Kurseinheiten einfach doppelt angelegt, ohne die schon bestehenden vorher zu l&ouml;schen.<\/p>\n<h3>Pr&uuml;fen bei &auml;nderung von Kursdaten<\/h3>\n<p><IMG height=\"232\" src=\"..\/fileadmin\/_temp_\/{CB8EEEEE-F6A4-433C-AE49-036DD787D04B}\/pic005.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 5:  Fehlermeldung bei manueller Eingabe von Kurseinheiten<\/span><\/b><\/p>\n<p><IMG height=\"284\" src=\"..\/fileadmin\/_temp_\/{CB8EEEEE-F6A4-433C-AE49-036DD787D04B}\/pic006.png\" width=\"464\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 6:  Tabellenstruktur f&uuml;r die Abfrage qryWochenplanDrucken<\/span><\/b><\/p>\n<pre>If IstRaumVerf&uuml;gbar(Me!RaumID, Me!Startdatum, _    Me!Enddatum) = False Then\r\n    MsgBox \"Der ausgew&auml;hlte Raum ist zum angegebenen \" _        & \"Zeitraum bereits besetzt. Bitte w&auml;hlen \" _        & \"Sie einen anderen Raum aus.\", _\r\n        vbOKOnly + vbExclamation, \"Fehler...\"\r\n    Cancel = True\r\nEnd If<\/pre>\n<p><b>Quellcode 4<\/b><\/p>\n<p>Da im Terminformular die Kurseinheiten nachtr&auml;glich vom Anwender ver&auml;ndert oder auch komplett manuell eingegeben werden k&ouml;nnen, m&uuml;ssen Sie die Verf&uuml;gbarkeit auch im Formular frmTermindetails abpr&uuml;fen. <\/p>\n<p>Verwenden Sie dazu das Ereignis Vor Aktualisierung des Kombinationsfeldes RaumID, um ggf. eine ung&uuml;ltige Eingabe per Programm abzubrechen.<\/p>\n<p>Die Ereignisprozedur pr&uuml;ft erst, ob Start- und Enddatum eingegeben sind. Fehlt einer der beiden Werte, kann die Verf&uuml;gbarkeit nicht ermittelt werden und die Prozedur bricht die Eingabe mit einem Hinweis f&uuml;r den Anwender ab.<\/p>\n<p>Sind beide Datumswerte vorhanden, verwendet die Prozedur wieder die Funktion IstRaumVerf&uuml;gbar. <\/p>\n<p>Falls der eingegebene Raum nicht verf&uuml;gbar ist, erh&auml;lt der Anwender eine Meldung und die Eingabe wird mit dem Ausdruck Cancel=True abgebrochen (siehe Bild 5).<\/p>\n<p>Nachdem Sie die Erfassung der Kurseinheiten nun vervollst&auml;ndigt haben, k&ouml;nnen Sie auf Basis der Kursdaten sowohl Wochenpl&auml;ne f&uuml;r die Kursleiter als auch Raumbelegungspl&auml;ne drucken.<\/p>\n<p>Beide Berichte basieren auf den gleichen Daten, lediglich die Anordnung der Steuerelemente und die Gruppierung ist eine andere.<\/p>\n<h2>Die Datenquelle f&uuml;r die Berichte<\/h2>\n<p>Erstellen Sie zun&auml;chst die Basisabfrage f&uuml;r die Berichte. Die Abfrage verwendet die in Bild 6 gezeigten Tabellen.<\/p>\n<p>Die folgenden Felder werden ben&ouml;tigt: RaumID und -name, KursleiterID und -name, Start- und Enddatum sowie die Kursnummer und -bezeichnung.<\/p>\n<p><IMG height=\"273\" src=\"..\/fileadmin\/_temp_\/{CB8EEEEE-F6A4-433C-AE49-036DD787D04B}\/pic007.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 7:  Der Wochenbericht in der Entwurfsansicht<\/span><\/b><\/p>\n<p>Zus&auml;tzlich enth&auml;lt die Abfrage drei berechnete Felder. Das Feld AnzahlTeilnehmer ermittelt mit der bereits bekannten Funktion GetAnzahlAngemeldeteTeilnehmer die Anzahl der angemeldeten Teilnehmer f&uuml;r einen Kurs: <\/p>\n<pre>AnzahlTeilnehmer: GetAnzahlAngemeldeteTeilnehmer([tblTermindetails].[TerminID])<\/pre>\n<p>Die Felder Kalenderwoche und KalenderwocheJahr werden zur Filterung ben&ouml;tigt. <\/p>\n<pre>Kalenderwoche: Format([tblTermindetails].[Startdatum];\"ww\")\r\nKalenderwocheJahr: Jahr([tblTermindetails].[Startdatum])<\/pre>\n<p>&uuml;ber diese Felder k&ouml;nnen Sie sp&auml;ter gezielt eine Woche oder einen Wochenbereich ausw&auml;hlen. Die fertige Abfrage finden Sie in der Musterl&ouml;sung unter dem Namen qryWochenplanDrucken.<\/p>\n<h2>Erstellen der Berichte<\/h2>\n<p>Als N&auml;chstes entwerfen Sie die Berichte auf Basis der eben erstellen Abfrage qryWochenplanDrucken.<\/p>\n<h3>Wochenplan f&uuml;r Kursleiter<\/h3>\n<p>Legen Sie f&uuml;r den Wochenplan einen Bericht an, den Sie nach den Feldern Leiter, Woche von Startdatum und Tag von Startdatum gruppieren, um eine w&ouml;chentliche Auswertung pro Kursleiter zu erhalten. Im Detailbereich f&uuml;gen Sie die Felder Kursnummer, Kursbezeichnung, Raumnummer und AnzahlTeilnehmer ein.<\/p>\n<p>Die Uhrzeit der Kurseinheit ermitteln Sie aus dem Start- und Enddatum mit dem folgenden Ausdruck:<\/p>\n<pre>=Format([Startdatum];\"hh:nn\") & \" - \" & Format([Enddatum];\"hh:nn\")<\/pre>\n<p>Legen Sie ein Textfeld mit dem Namen txtZeitraum an und tragen Sie den Ausdruck bei der Eigenschaft Steuerelementinhalt ein.<\/p>\n<p>Den fertigen Bericht repWochenplanDrucken_Kursleiter sehen Sie in Bild 7 in der Entwurfsansicht.<\/p>\n<h3>Raumbelegungsplan<\/h3>\n<p>Den Bericht f&uuml;r die Raumbelegung k&ouml;nnen Sie aufgrund der gleichen Datenbasis beider Berichte einfach kopieren. <\/p>\n<p>Speichern Sie den Bericht repWochenplanDrucken_Kursleiter unter dem Namen repWochenplanDrucken_Raeume ab. &auml;ndern Sie dann die erste Gruppierung von Leiter in Raumnummer und passen Sie den Text im Gruppierungsbereich an. Zum Schluss m&uuml;ssen Sie nur noch im Detailbereich das Feld Raumnummer gegen Leitername austauschen.<\/p>\n<h2>Das Auswahlformular<\/h2>\n<p>Damit der Anwender die Wochenpl&auml;ne komfortabel aufrufen kann, erstellen Sie ein Formular, &uuml;ber das vor dem &ouml;ffnen des Berichts der Zeitraum und der Kursleiter bzw. die Raumnummer ausgew&auml;hlt werden k&ouml;nnen. <\/p>\n<p>Das Formular frmWochenplanDrucken ist in Bild 8 dargestellt. Es ist in drei Bereiche aufgeteilt. &uuml;ber den ersten Bereich erfolgt die Auswahl des Zeitraums mittels Jahr und Kalenderwoche. Im zweiten Bereich k&ouml;nnen Sie einen Kursleiter w&auml;hlen und die zugeh&ouml;rigen Wochenpl&auml;ne drucken, w&auml;hrend der dritte Bereich dem Druck der Raumbelegungspl&auml;ne dient.<\/p>\n<pre>Sub JahreslisteFuellen()\r\n    Me!cmbJahr.RowSource = GetJahresliste()\r\n    Me!cmbJahr.Requery\r\n    Me!cmbJahr = Year(Date)\r\nEnd Sub<\/pre>\n<p><b>Quellcode 5<\/b><\/p>\n<pre>Function GetJahresliste() As String\r\n    Dim i As Integer\r\n    Dim Jahresliste As String\r\n    For i = Year(Date) - 20 To Year(Date) + 5\r\n        Jahresliste = Jahresliste & CStr(i) & \";\"\r\n    Next i\r\n    GetJahresliste = Jahresliste\r\nEnd Function<\/pre>\n<p><b>Quellcode 6<\/b><\/p>\n<h3>Datumsauswahl<\/h3>\n<p>Die Auswahl des Zeitraums erfolgt &uuml;ber drei Kombinationsfelder. Alle Felder werden vom Programm automatisch beim &ouml;ffnen des Formulars jeweils mit einer Werteliste gef&uuml;llt.<\/p>\n<p>Das F&uuml;llen des Kombinationsfeldes zur Auswahl des Jahres erfolgt mittels der Funktion JahreslisteFuellen (s. Quellcode 5).<\/p>\n<p>Die Prozedur setzt &uuml;ber die Funktion GetJahresliste (s. Quellcode 6) die Werteliste zusammen, weist sie dem Kombinationsfeld zu und fragt es neu ab. Anschlie&szlig;end wird noch das aktuelle Jahr im Formular angezeigt.<\/p>\n<p>Die Werteliste wird &uuml;ber eine For Next-Schleife in der Funktion GetJahresliste zusammengef&uuml;gt. Dabei werden r&uuml;ckwirkend die letzten 20 Jahre genauso wie die n&auml;chsten f&uuml;nf Jahre ber&uuml;cksichtigt.<\/p>\n<p><IMG height=\"319\" src=\"..\/fileadmin\/_temp_\/{CB8EEEEE-F6A4-433C-AE49-036DD787D04B}\/pic008.png\" width=\"271\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 8:  Das Auswahlformular frmWochenplanDrucken<\/span><\/b><\/p>\n<p>Die Einschr&auml;nkung des Zeitraums erfolgt weiter durch die Kombinationsfelder zur Auswahl der Kalenderwochen. Die Zusammenstellung der Wertelisten f&uuml;r diese Kombinationsfelder ist prinzipiell mit der f&uuml;r die Jahre identisch.<\/p>\n<p>In einer Schleife werden die Zahlen 1 bis 52 mit Semikolon getrennt zur Werteliste zusammengef&uuml;gt. <\/p>\n<p>Allerdings sollen zus&auml;tzlich zur Kalenderwoche auch die genauen Daten der Woche im folgenden Format angezeigt werden:<\/p>\n<pre>25 (16.06.2003 - 22.06.2003)<\/pre>\n<p>Leider bietet Access keine eingebaute Funktion, um f&uuml;r eine Kalenderwoche das Datum eines bestimmten Tages der Woche auszugeben &#8211; f&uuml;r den vorliegenden Fall den Montag. Deshalb ben&ouml;tigen Sie eine eigene Funktion, die diese Aufgabe erledigt. Die Funktion hat den Namen GetKWMontag (Quellcode 7).<\/p>\n<pre>Public Function GetKWMontag(MyKW, MyJahr)\r\n    Dim Wochendatum As Variant\r\n    Dim Wochentag As Variant\r\n    Wochendatum = DateSerial(MyJahr, 1, 1) + 7 * (MyKW - 1)\r\n    Wochentag = WeekDay(Wochendatum, vbMonday)\r\n    GetKWMontag = Wochendatum - Wochentag + 1\r\nEnd Function<\/pre>\n<p><b>Quellcode 7<\/b><\/p>\n<pre>For i = 1 To 52\r\n    Wochentag = GetKWMontag(i, Nz(Me!cmbJahr, Date))\r\n    KWliste = KWliste & CStr(i) & \";\" & CStr(i) & _\r\n        \" (\" & Wochentag & \"-\" & DateAdd(\"d\", 6, Wochentag) & \");\"\r\nNext i<\/pre>\n<p><b>Quellcode 8<\/b><\/p>\n<pre>Sub KWlistenFuellen()\r\n    Me!cmbKWVon.RowSource = GetKWListe()\r\n    Me!cmbKWVon.Requery\r\n    Me!cmbKWVon = Format(Date, \"ww\")\r\n    Me!cmbKWBis.RowSource = GetKWListe()\r\n    Me!cmbKWBis.Requery\r\n    Me!cmbKWBis = Format(Date, \"ww\")\r\nEnd Sub<\/pre>\n<p><b>Quellcode 9<\/b><\/p>\n<p>Als &uuml;bergabeparameter erwartet die Funktion eine Kalenderwoche und eine Jahreszahl. Mit diesen beiden Parametern berechnet die Funktion zun&auml;chst einen beliebigen Tag in der angegebenen Woche, ausgehend vom 01.01. des gew&uuml;nschten Jahres.<\/p>\n<p>Anschlie&szlig;end ermittelt die Funktion den Wochentag des zuvor berechneten Datums. Nachdem ein Datum der Woche und der Wochentag bekannt sind, m&uuml;ssen Sie zur Bestimmung des Montags-Datums lediglich beide Werte voneinander subtrahieren. <\/p>\n<p>Die Funktion GetKWMontag verwenden Sie jetzt, um die Werteliste nach dem gew&uuml;nschten Muster zusammenzustellen. Die Funktion GetKWListe erstellt in einer Schleife eine zweispaltige Werteliste. Pro Kalenderwoche bestimmt die Funktion das Montags-Datum der Woche und f&uuml;gt es zusammen mit dem Sonntags-Datum in die Liste ein (s. Quellcode 8).<\/p>\n<p>Zum Schluss m&uuml;ssen Sie noch die Werteliste den beiden Kombinationsfeldern cmbKWVon und cmbKWBis zuweisen und die aktuelle Woche einstellen (s. Quellcode 9).<\/p>\n<h3>Kursplan drucken<\/h3>\n<p>Die Auswahl des Kursleiters, f&uuml;r den Sie Wochenpl&auml;ne drucken m&ouml;chten, erfolgt &uuml;ber ein Kombinationsfeld, in dem alle Kursleiter alphabetisch aufgelistet sind. <\/p>\n<p>Wenn kein Kursleiter ausgew&auml;hlt worden ist, werden alle Kursleiter im Bericht ausgegeben (siehe Bild 9).<\/p>\n<p>Damit der Anwender das Kombinationsfeld nicht manuell leeren muss, befindet sich auf dem Formular die Schaltfl&auml;che btnAlleKursleiter. Die Ereignisprozedur l&ouml;scht den Inhalt des Kombinationsfeldes und besteht nur aus einer Zeile:<\/p>\n<pre>Me!cmbKursleiter = Null<\/pre>\n<p><IMG height=\"319\" src=\"..\/fileadmin\/_temp_\/{CB8EEEEE-F6A4-433C-AE49-036DD787D04B}\/pic009.png\" width=\"271\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 9:  Drucken der Wochenpl&auml;ne<\/span><\/b><\/p>\n<pre>Private Sub btnKursplanDrucken_Click()\r\n    Dim SQL As String\r\n    If IsNull(Me!cmbJahr) Or IsNull(Me!cmbKWVon) Or IsNull(Me!cmbKWBis) Then\r\n        MsgBox \"Bitte f&uuml;llen SIe die Felder Jahr, Von KW und Bis KW aus.\", _\r\n                vbOKOnly + vbInformation, \"Fehler...\"\r\n    Else\r\n        If IsNull(Me!cmbKursleiter) Then\r\n            SQL = \"KursleiterID Is Not Null AND Kalenderwoche Between \" & _\r\n                  Me!cmbKWVon & \" And \" & Me!cmbKWBis & _\r\n                  \" AND Kalenderwochejahr=\" & Me!cmbJahr\r\n        Else\r\n            SQL = \"KursleiterID=\" & Me!cmbKursleiter & _\r\n                  \" AND Kalenderwoche Between \" & Me!cmbKWVon & \" And \" & _\r\n                  Me!cmbKWBis & \" AND Kalenderwochejahr=\" & Me!cmbJahr\r\n        End If\r\n        DoCmd.OpenReport \"repWochenplanDrucken_Kursleiter\", acViewPreview, , SQL\r\n    End If\r\nEnd Sub<\/pre>\n<p><b>Quellcode 10<\/b><\/p>\n<p><IMG height=\"98\" src=\"..\/fileadmin\/_temp_\/{CB8EEEEE-F6A4-433C-AE49-036DD787D04B}\/pic010.png\" width=\"271\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 10:  Wochenplan f&uuml;r einen Kursleiter<\/span><\/b><\/p>\n<p>Die Prozedur pr&uuml;ft zun&auml;chst, ob alle Felder zur Bestimmung des Zeitraums ausgef&uuml;llt sind. Anschlie&szlig;end wird, abh&auml;ngig vom Inhalt des Kombinationsfeldes, die Bedingung f&uuml;r den Bericht zusammengesetzt. Wenn ein Kursleiter ausgew&auml;hlt ist, wird &uuml;ber die KursleiterID gefiltert, damit nur der gew&auml;hlte Leiter ber&uuml;cksichtigt wird. Im anderen Fall werden alle Kurseinheiten ausgegeben, bei denen ein beliebiger Kursleiter eingetragen ist. Den Druck startet der Anwender &uuml;ber die Schaltfl&auml;che btnKursplanDrucken. Die Ereignisprozedur der Schaltfl&auml;che ist in Quellcode 10 abgebildet.<\/p>\n<p>Bild 11 zeigt beispielhaft einen Wochenplan &uuml;ber mehrere Kalenderwochen f&uuml;r einen Kursleiter.<\/p>\n<h3>Raumbelegungsplan drucken<\/h3>\n<p>Der Druck der Raumbelegungspl&auml;ne ist mit dem Druck der Wochenpl&auml;ne nahezu identisch. Die Auswahl erfolgt wieder &uuml;ber ein Kombinationsfeld, in dem alle Raumnummern aufgef&uuml;hrt werden (siehe Bild 12).  Au&szlig;erdem k&ouml;nnen Sie den Belegungsplan entweder f&uuml;r einen Raum oder f&uuml;r alle R&auml;ume drucken. <\/p>\n<p>F&uuml;r die Ausgabe wird der Bericht repWochenplanDrucken_Raeume verwendet. Ein m&ouml;gliches Ergebnis sehen Sie in Bild 13.<\/p>\n<p><IMG height=\"476\" src=\"..\/fileadmin\/_temp_\/{CB8EEEEE-F6A4-433C-AE49-036DD787D04B}\/pic011.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 11:  Wochenplan f&uuml;r einen Schulungsleiter<\/span><\/b><\/p>\n<p><IMG height=\"103\" src=\"..\/fileadmin\/_temp_\/{CB8EEEEE-F6A4-433C-AE49-036DD787D04B}\/pic012.png\" width=\"271\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 12:  Drucken der Raumbelegung<\/span><\/b><\/p>\n<p>In diesem Beitrag haben Sie die Schulungsverwaltung um eine Raum- und Kursleiterplanung erg&auml;nzt. Der Schwerpunkt lag dabei auf der Pr&uuml;fung der Verf&uuml;gbarkeit eines Raumes bzw. Kursleiters, um Doppelbuchungen zu vermeiden. <\/p>\n<p><IMG height=\"219\" src=\"..\/fileadmin\/_temp_\/{CB8EEEEE-F6A4-433C-AE49-036DD787D04B}\/pic013.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 13:  Belegungsplan f&uuml;r den Raum 7B01<\/span><\/b><\/p>\n<p>Ferner haben Sie aufbauend auf dem neuen Datenmodell ein Formular zum Druck von Stundenpl&auml;nen f&uuml;r Kursleiter und Raumbelegungspl&auml;nen entwickelt, &uuml;ber das sich ein Kursleiter schnell die ben&ouml;tigten Informationen zusammenstellen kann.<\/p>\n<p>Neben den hier beschriebenen Erg&auml;nzungen k&ouml;nnen insbesondere Auswertungen zus&auml;tzlich in die Software integriert werden. So ist zum Beispiel eine Auslastungs&uuml;bersicht w&uuml;nschenswert, bei der alle Kurse mit Teilnehmerzahl, Verh&auml;ltnis der Zahl der Teilnehmer zur maximalen Teilnehmerzahl und der durchschnittlichen Teilnehmerzahl pro Kurs aufgef&uuml;hrt werden.<\/p>\n<p>Ebenso wichtig ist eine Erfolgs&uuml;bersicht, in der Sie sich die Kursliste eines Mitarbeiters mit Durchschnittsnote und der Erfolgsquote (Bestanden\/nicht bestanden) ausgeben lassen k&ouml;nnen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mit den Anleitungen des ersten Teils dieses Beitrags aus der letzten Ausgabe k&ouml;nnen Sie eine Schulungsverwaltung erstellen, mit der Schulungsprogramme sowie die angemeldeten Teilnehmer und deren Abschl&uuml;sse verwaltet werden. In dieser Ausgabe lernen Sie, wie Sie die Software um eine Raum- und Kursleiterplanung erweitern k&ouml;nnen.  Au&szlig;erdem erfahren Sie, wie Sie ein Auswahlformular zum Druck von Stunden- und Raumbelegungspl&auml;nen entwerfen k&ouml;nnen.<\/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":[662003,66042003,44000027],"tags":[],"class_list":["post-55000118","post","type-post","status-publish","format-standard","hentry","category-662003","category-66042003","category-Loesungen"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Schulungen und Kurse verwalten, 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\/Schulungen_und_Kurse_verwalten_Teil_2\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Schulungen und Kurse verwalten, Teil 2\" \/>\n<meta property=\"og:description\" content=\"Mit den Anleitungen des ersten Teils dieses Beitrags aus der letzten Ausgabe k&ouml;nnen Sie eine Schulungsverwaltung erstellen, mit der Schulungsprogramme sowie die angemeldeten Teilnehmer und deren Abschl&uuml;sse verwaltet werden. In dieser Ausgabe lernen Sie, wie Sie die Software um eine Raum- und Kursleiterplanung erweitern k&ouml;nnen. Au&szlig;erdem erfahren Sie, wie Sie ein Auswahlformular zum Druck von Stunden- und Raumbelegungspl&auml;nen entwerfen k&ouml;nnen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Schulungen_und_Kurse_verwalten_Teil_2\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-06T15:17:29+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg01.met.vgwort.de\/na\/e08275c2e3224d5496b5a4ec1ea66e66\" \/>\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=\"14\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Schulungen_und_Kurse_verwalten_Teil_2\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Schulungen_und_Kurse_verwalten_Teil_2\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Schulungen und Kurse verwalten, Teil 2\",\"datePublished\":\"2020-05-06T15:17:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Schulungen_und_Kurse_verwalten_Teil_2\\\/\"},\"wordCount\":2427,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Schulungen_und_Kurse_verwalten_Teil_2\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/e08275c2e3224d5496b5a4ec1ea66e66\",\"articleSection\":[\"2003\",\"4\\\/2003\",\"L\u00f6sungen\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Schulungen_und_Kurse_verwalten_Teil_2\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Schulungen_und_Kurse_verwalten_Teil_2\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Schulungen_und_Kurse_verwalten_Teil_2\\\/\",\"name\":\"Schulungen und Kurse verwalten, Teil 2 - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Schulungen_und_Kurse_verwalten_Teil_2\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Schulungen_und_Kurse_verwalten_Teil_2\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/e08275c2e3224d5496b5a4ec1ea66e66\",\"datePublished\":\"2020-05-06T15:17:29+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Schulungen_und_Kurse_verwalten_Teil_2\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Schulungen_und_Kurse_verwalten_Teil_2\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Schulungen_und_Kurse_verwalten_Teil_2\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/e08275c2e3224d5496b5a4ec1ea66e66\",\"contentUrl\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/e08275c2e3224d5496b5a4ec1ea66e66\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Schulungen_und_Kurse_verwalten_Teil_2\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Schulungen und Kurse verwalten, 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":"Schulungen und Kurse verwalten, 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\/Schulungen_und_Kurse_verwalten_Teil_2\/","og_locale":"de_DE","og_type":"article","og_title":"Schulungen und Kurse verwalten, Teil 2","og_description":"Mit den Anleitungen des ersten Teils dieses Beitrags aus der letzten Ausgabe k&ouml;nnen Sie eine Schulungsverwaltung erstellen, mit der Schulungsprogramme sowie die angemeldeten Teilnehmer und deren Abschl&uuml;sse verwaltet werden. In dieser Ausgabe lernen Sie, wie Sie die Software um eine Raum- und Kursleiterplanung erweitern k&ouml;nnen. Au&szlig;erdem erfahren Sie, wie Sie ein Auswahlformular zum Druck von Stunden- und Raumbelegungspl&auml;nen entwerfen k&ouml;nnen.","og_url":"https:\/\/access-im-unternehmen.de\/Schulungen_und_Kurse_verwalten_Teil_2\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-06T15:17:29+00:00","og_image":[{"url":"http:\/\/vg01.met.vgwort.de\/na\/e08275c2e3224d5496b5a4ec1ea66e66","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"14\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Schulungen_und_Kurse_verwalten_Teil_2\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Schulungen_und_Kurse_verwalten_Teil_2\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Schulungen und Kurse verwalten, Teil 2","datePublished":"2020-05-06T15:17:29+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Schulungen_und_Kurse_verwalten_Teil_2\/"},"wordCount":2427,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Schulungen_und_Kurse_verwalten_Teil_2\/#primaryimage"},"thumbnailUrl":"http:\/\/vg01.met.vgwort.de\/na\/e08275c2e3224d5496b5a4ec1ea66e66","articleSection":["2003","4\/2003","L\u00f6sungen"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Schulungen_und_Kurse_verwalten_Teil_2\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Schulungen_und_Kurse_verwalten_Teil_2\/","url":"https:\/\/access-im-unternehmen.de\/Schulungen_und_Kurse_verwalten_Teil_2\/","name":"Schulungen und Kurse verwalten, Teil 2 - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Schulungen_und_Kurse_verwalten_Teil_2\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Schulungen_und_Kurse_verwalten_Teil_2\/#primaryimage"},"thumbnailUrl":"http:\/\/vg01.met.vgwort.de\/na\/e08275c2e3224d5496b5a4ec1ea66e66","datePublished":"2020-05-06T15:17:29+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Schulungen_und_Kurse_verwalten_Teil_2\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Schulungen_und_Kurse_verwalten_Teil_2\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Schulungen_und_Kurse_verwalten_Teil_2\/#primaryimage","url":"http:\/\/vg01.met.vgwort.de\/na\/e08275c2e3224d5496b5a4ec1ea66e66","contentUrl":"http:\/\/vg01.met.vgwort.de\/na\/e08275c2e3224d5496b5a4ec1ea66e66"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Schulungen_und_Kurse_verwalten_Teil_2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Schulungen und Kurse verwalten, 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\/55000118","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=55000118"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000118\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000118"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000118"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000118"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}