{"id":55000075,"date":"2002-08-01T00:00:00","date_gmt":"2021-02-10T20:14:34","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=75"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Stundenzetteldatenbank_zur_Dokumentation_von_Arbeitsleistungen","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Stundenzetteldatenbank_zur_Dokumentation_von_Arbeitsleistungen\/","title":{"rendered":"Stundenzetteldatenbank zur Dokumentation von Arbeitsleistungen"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg01.met.vgwort.de\/na\/86c2799822634d8dbb547957a3505722\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Autor: von Harald Langer, Berlin<\/p>\n<p><\/b><\/p>\n<p><b>Zeit ist Geld. Diese Weisheit ist Grundlage f&uuml;r so manche Rechnung, die der Auftragnehmer seinem Kunden stellt. Nat&uuml;rlich funktioniert dies nur, wenn die Arbeitstunden auch dokumentiert werden. Hierbei unterst&uuml;tzt Sie die hier vorgestellte Musterl&ouml;sung. Als Szenario f&uuml;r die Datenbank dient ein kleiner Industriebetrieb, in dem die Mitarbeiter ihre Arbeitsstunden f&uuml;r die einzelnen Projekte aufschreiben.<\/b><\/p>\n<p>Die Protokollierung von Arbeitsstunden ist sicherlich eine lohnenswerte Angelegenheit. Sp&auml;testens aber dann, wenn die Daten im Netzwerk von mehreren Benutzern erfasst werden, sollte aus Datenschutzgr&uuml;nden eine gewisse Sicherheit der Daten gew&auml;hrleistet werden.<\/p>\n<p>Es sollte  zumindest sichergestellt sein, dass die Mitarbeiter nur ihre eigenen Arbeitsstunden erfassen oder &auml;ndern k&ouml;nnen und nicht die ihrer Kollegen.<\/p>\n<p>Um einen sicheren Schutz der Datenbank zu gew&auml;hrleisten, sollte das Sicherheitssystem von Access bereits vom ersten Schritt an aktiviert sein. Bei dieser L&ouml;sung wird der Schutz durch eine Arbeitsgruppendatei erreicht, sodass bei Bedarf f&uuml;r jeden Benutzer individuelle Zugriffsrechte auf die einzelnen Datenbankobjekte definiert werden k&ouml;nnen.<\/p>\n<p>Dementsprechend muss sich jeder Mitarbeiter vor der Arbeit mit der Datenbank mit einem Benutzernamen und einem Passwort anmelden.<\/p>\n<h3>Hinweis<\/h3>\n<p>Eine ausf&uuml;hrliche Anleitung &uuml;ber das Sichern einer Datenbank finden Sie im Beitrag Skalierbare Datensicherheit mit Access in der vorliegenden Ausgabe von Access im Unternehmen. Daher finden Sie hier nur eine Kurzbeschreibung der wichtigsten Schritte. <\/p>\n<li>Legen Sie eine neue leere Datenbank Stunden.mdb in einem Verzeichnis Ihrer Wahl an.<\/li>\n<li>F&uuml;gen Sie dem gleichen Verzeichnis eine neue leere Arbeitsgruppendatei Stunden.mdw hinzu.<\/li>\n<li>Legen Sie drei neue Benutzergruppen an: SuperAdmins, Mitarbeiter und Verwaltung.<\/li>\n<li>Legen Sie die gew&uuml;nschten Benutzer an (im Beispiel Entwickler, Sabine Meier, Hans Mustermann und Frau Musterfrau) und ordnen Sie diese den einzelnen Benutzergruppen zu. Das Konto Entwickler ist f&uuml;r Sie als Entwickler vorgesehen. In der Beispieldatenbank ist dieses Konto mit dem Passwort berlin gesch&uuml;tzt (bitte Gro&szlig;- und Kleinschreibung bei der Eingabe des Passworts beachten).<\/li>\n<li>Entziehen Sie zun&auml;chst s&auml;mtlichen Benutzern alle Rechte auf alle Objekte. Damit sind alle expliziten Berechtigungen schon einmal entfernt (siehe Bild 1).<\/li>\n<li>Erteilen Sie der Gruppe SuperAdmins alle Rechte (um ein versehentliches Aussperren aus der Datenbank zu verhindern) und ordnen Sie den Benutzer Entwickler dieser Gruppe zu.<\/li>\n<li>Entziehen Sie allen &uuml;brigen Gruppen (insbesondere Administratoren und Benutzer) s&auml;mtliche Objektberechtigungen. <\/li>\n<li>Melden Sie sich unter dem Konto Entwickler an und &auml;ndern Sie die Eigent&uuml;mer. Eigent&uuml;mer der Datenbank ist immer der Benutzer, unter dessen Anmeldenamen die Datenbank erstellt wurde. Er l&auml;sst sich am einfachsten &auml;ndern, indem Sie eine neue Datenbank unter dem gew&uuml;nschten Anmeldenamen anlegen und alle Objekte dort hinein importieren.<\/li>\n<p><IMG height=\"510\" src=\"..\/fileadmin\/_temp_\/{8F2E46F3-5E4F-43AE-82E9-55085E54A418}\/pic001.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 1:  Rechte an Tabellen entziehen<\/span><\/b><\/p>\n<p>In den folgenden beiden Abschnitten finden Sie einige Informationen zu den Tabellen und Abfragen der Beispieldatenbank. Dabei wird besonderer Wert auf den Aspekt der Sicherheit und damit der Berechtigungsproblematik gelegt.<\/p>\n<p><b>Tabellen<\/b><\/p>\n<p>F&uuml;r die Grundfunktionalit&auml;t ben&ouml;tigt die hier vorgestellte Musterl&ouml;sung zur Stundenzettelverwaltung lediglich zwei Tabellen. Die Tabelle tblLeistungen enth&auml;lt die Leistungsbeschreibungen. Die Details der Leistungen werden in der Tabelle tblLeistungsdetails hinterlegt. <\/p>\n<p>Zur Abrechnung der Leistungen des Freiberuflers mit seinem Auftraggeber kann dies auch ausreichen; sinnvoll ist auf jeden Fall eine weitere Tabelle namens tblAdressen, in der die Auftraggeberadressen gespeichert werden.<\/p>\n<p>Die Musterl&ouml;sung enth&auml;lt dar&uuml;ber hinaus noch die Tabelle tblMitarbeiter f&uuml;r die Mitarbeiterdaten und die Tabelle tblGruppen f&uuml;r die Benutzergruppen. Aus Komfortzwecken ist auch noch die Untertabelle tblWaehrungen mit W&auml;hrungsdaten vorhanden. Die Tabelle &uuml;bersichtseintr&auml;ge wird vom Access-&uuml;bersichts-Manager erzeugt und ist f&uuml;r das Beispiel nicht von Bedeutung.<\/p>\n<p>Alle Tabellen finden Sie in den fertigen Beispieldatenbanken Stunden97.mdb und Stunden2000.mdb auf der Heft-CD. Sie k&ouml;nnen die Tabellen, Abfragen und weitere Datenbankobjekte leicht in Ihre neue Datenbank importieren. <\/p>\n<h3>Beziehungen<\/h3>\n<p>Zwischen den genannten Tabellen gibt es einige Beziehungen, die im Folgenden beschrieben werden: Die Tabellen tblLeistungen und tblAdressen sind &uuml;ber das Feld lngAuftraggeber miteinander verkn&uuml;pft.<\/p>\n<p>Die Tabellen tblMitarbeiter und tblGruppen sind &uuml;ber das Feld txtBenutzergruppe miteinander verkn&uuml;pft.<\/p>\n<p>Jede Leistung kann aus mehreren Leistungsdetails bestehen, die wiederum von je einem Mitarbeiter ausgef&uuml;hrt werden. Daher ist die Tabelle tblLeistungsdetails &uuml;ber das Feld lngAuftrag mit der Tabelle tblLeistungen und &uuml;ber das Feld lngMitarbeiter mit dem entsprechenden Mitarbeiter-Datensatz aus der Tabelle tblMitarbeiter verkn&uuml;pft. <\/p>\n<p><b>Abfragen<\/b><\/p>\n<p>Formularen oder Berichten kann lediglich das Recht zugewiesen werden, sie zu &ouml;ffnen bzw. auszuf&uuml;hren (die anderen Formularrechte k&ouml;nnen hier vernachl&auml;ssigt werden). Aber bei beiden muss auch noch eine Verbindung zu den Daten hergestellt werden.<\/p>\n<p>Angenommen, einem Benutzer wird die Berechtigung erteilt, ein Formular zu &ouml;ffnen, aber gleichzeitig wird ihm das Recht verweigert, die Daten der zugrunde liegenden Tabelle zu lesen. Dann kann der Benutzer zwar tats&auml;chlich das Formular &ouml;ffnen, aber er erh&auml;lt eine Fehlermeldung mit dem Hinweis, dass die Datens&auml;tze nicht gelesen werden k&ouml;nnen &#8211; eben weil die Datenherkunft gesperrt ist.<\/p>\n<p>Nun w&auml;re es nat&uuml;rlich relativ einfach, dem Benutzer in solchen F&auml;llen auch die Berechtigungzu erteilen, die Tabellendaten zu lesen. In kritischen F&auml;llen, insbesondere bei Daten, die zum Beispiel mit Lohnabrechnungen in Zusammenhang stehen, ist dies jedoch nicht akzeptabel.<\/p>\n<p>Bei konsequenter Verwendung des Schutzsystems werden keinerlei Berechtigungen auf Tabellen vergeben, sondern f&uuml;r jede Datenmenge Abfragen erstellt und diese f&uuml;r die Rechtevergabe herangezogen.<\/p>\n<p>Das alleine nutzt allerdings noch nichts, denn Abfragen werden standardm&auml;&szlig;ig mit den Ausf&uuml;hrungsberechtigungen des Benutzers angelegt (wenn der Benutzer auf der Tabelle keine Rechte hat, dann liefert auch die Abfrage keine Daten).<\/p>\n<p>Um zu erreichen, dass der Benutzer die Daten der Abfrage auch lesen kann, muss die Abfrage mit Ausf&uuml;hrungsberechtigung des Eigent&uuml;mers angelegt werden. Das wird entweder grunds&auml;tzlich &uuml;ber die Programmoptionen, in den Eigenschaften der Abfrage oder direkt im SQL mit dem Zusatz WITH OWNERACCESS OPTION festgelegt:<\/p>\n<pre>SELECT tblAdressen.* FROM tblAdressen WITH OWNERACCESS OPTION;<\/pre>\n<h3>Hinweis<\/h3>\n<p>Das Setzen des Zusatzes WITH OWNERACCESS OPTION funktioniert nur in gespeicherten Abfragen. Wenn Sie innerhalb einer VBA-Prozedur eine SQL-Abfrage verwenden, k&ouml;nnen Sie diese Option nicht benutzen. <\/p>\n<p>Alle Abfragen in der Musterl&ouml;sungsdatenbank sind mit Berechtigung des Eigent&uuml;mers erstellt und dienen als Datengrundlage.<\/p>\n<p>Nun ist die Datenbank gesch&uuml;tzt und der Einzelne kann nur die Daten sehen, die er auch sehen darf.<\/p>\n<p>Das ist soweit in Ordnung, aber stellen Sie sich jetzt den kleinen Industriebetrieb mit einer Abteilung Schlosserei vor. Der Schlosser soll seine Stunden in den Stundenzettel eingeben.<\/p>\n<p>Welches Entgelt die Firma mit dem Auftraggeber vereinbart hat, ist f&uuml;r ihn nicht relevant (wahrscheinlich soll er es auch nicht wissen). Es muss lediglich sichergestellt sein, dass er &#8222;seinen&#8220; Stundenzettel ausf&uuml;llen und vielleicht auch noch seine Arbeitszeit den vorhandenen Auftr&auml;gen zuordnen kann &#8211; mehr nicht.<\/p>\n<p>Ganz anders verh&auml;lt es sich bei Mitarbeitern in der Verwaltung, die allgemeine T&auml;tigkeiten ausf&uuml;hren. <\/p>\n<p>Die Musterl&ouml;sung verwendet den Access-Schutzmechanismus, um genau dieser Problematik gerecht zu werden, indem der angemeldete Benutzer identifiziert und ein f&uuml;r seine Benutzergruppe festgelegtes Startformular ge&ouml;ffnet wird.<\/p>\n<p><b>Steuerung des Startformulars<\/b><\/p>\n<p>Im Formular frmGruppen kann den vorhandenen Benutzergruppen ein Startformular zugewiesen werden.<\/p>\n<p>Beim &ouml;ffnen des Formulars wird das Kombinationsfeld txtGRUPPE mit den Benutzergruppen des aktuellen Workspaces und das Kombinationsfeld txtSTART mit den Werten der Abfrage qryFormulare gef&uuml;llt (siehe Bild 2).<\/p>\n<p><!--30percent--><\/p>\n<p><IMG height=\"337\" src=\"..\/fileadmin\/_temp_\/{8F2E46F3-5E4F-43AE-82E9-55085E54A418}\/pic002.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 2:  Benutzergruppen und Startformulare<\/span><\/b><\/p>\n<pre>Public Sub GetGroups()\r\n    Dim grp As Group, usr As user\r\n    For Each grp In DBEngine(0).Groups\r\n        For Each usr In grp.Users\r\n            Debug.Print \"Gruppe: \"; grp.Name, _                \"User: \"; usr.Name\r\n        Next\r\n    Next\r\nEnd Sub<\/pre>\n<p><b>Quellcode 1<\/b><\/p>\n<p><b>Mitarbeiter und Benutzergruppen<\/b><\/p>\n<p>Im Anschluss werden die Mitarbeiter mit dem Formular frmMitarbeiter erfasst und ihrer jeweiligen Haupt-Benutzergruppe zugeordnet. <\/p>\n<p>Der Grund daf&uuml;r ist, dass jeder Benutzer mehreren Benutzergruppen zugeteilt sein kann (in der Musterl&ouml;sung ist dies nicht der Fall, sonst aber durchaus g&auml;ngige Praxis). Die Prozedur GetGroups im Modul mdlUsers listet alle Benutzergruppen und Gruppenangeh&ouml;rige auf (s. Quellcode 1).<\/p>\n<p>Wenn nun ein Benutzer in mehreren Gruppen vorkommt (die Gruppe Benutzer kann nicht entfernt werden und ist damit automatisch bei jedem Nutzer vorhanden), welcher Gruppe soll Priorit&auml;t verliehen werden<\/p>\n<p>Diese Entscheidung wird mit dem Formular gef&auml;llt. Die Stundenzetteldatenbank geht davon aus, dass die Namen der Mitarbeiter und die Benutzernamen identisch sind. Auf jeden Fall ist es erforderlich, dass dem jeweiligen Mitarbeiter auch ein Access-Benutzername zugewiesen wird.<\/p>\n<p><b>Starten<\/b><\/p>\n<p>Damit nun das entsprechende Startformular auch beim Start der Datenbank geladen wird, enth&auml;lt die Musterl&ouml;sung ein Autoexec-Makro, das nichts anderes macht, als die Funktion fStart (im Modul mdlStart) auszuf&uuml;hren.<\/p>\n<p>Dass sich das Autoexec-Makro durch Dr&uuml;cken der Umschalt-Taste umgehen l&auml;sst und das wiederum durch andere Mechanismen verhindert werden kann, soll hier nur am Rande bemerkt werden.<\/p>\n<p>Zur Ermittlung des angemeldeten Benutzers stellt Access die Funktion CurrentUser zur Verf&uuml;gung. Beim Aufruf der Funktion wird aus der Abfrage qryMitarbeiter die Haupt-Benutzergruppe des aktuell angemeldeten Mitarbeiters ermittelt.<\/p>\n<p>Wenn sich die Benutzergruppe feststellen l&auml;sst (es w&auml;re ja auch denkbar, dass ein Mitarbeiter zwar angelegt, aber noch nicht in der Datenbank einer Gruppe zugeordnet wurde), wird im folgenden Schritt das f&uuml;r diese Gruppe festgelegte Startformular aufgerufen und angezeigt.<\/p>\n<p>Um die Anmeldung zu pr&uuml;fen, starten Sie die Beispieldatenbank &uuml;ber die Verkn&uuml;pfung mit dem Parameter \/wrkgrp und verwenden Sie den Anmeldenamen Hans Mustermann &#8211; das Kennwort lassen Sie frei (siehe Bild 3). Daraufhin zeigt die Datenbank den Stundenzettel f&uuml;r Hans Mustermann an.<\/p>\n<p><IMG height=\"181\" src=\"..\/fileadmin\/_temp_\/{8F2E46F3-5E4F-43AE-82E9-55085E54A418}\/pic003.png\" width=\"461\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 3:  Anmelden als Benutzer Hans Mustermann<\/span><\/b><\/p>\n<h3>Hinweis<\/h3>\n<p>Im Verzeichnis der Beispieldatenbank finden Sie eine entsprechende Verkn&uuml;pfung, in der der Parameter \/wrkgrp bereits angegeben ist. Kopieren Sie die Datei in das Verzeichnis C:\\Stunden und &ouml;ffnen Sie das Eigenschaftsfenster. Passen Sie hier den Pfad zu MSACCESS.EXE an. &uuml;bernehmen Sie die &auml;nderungen und klicken Sie doppelt auf den Link, um Access mit der Arbeitsgruppendatei zu starten. Voraussetzung f&uuml;r die einwandfreie Funktion ist, dass Sie die Beispieldatenbank zusammen mit allen anderen Dateien des gleichen Verzeichnisses von der CD in das Verzeichnis C:\\Stunden kopiert haben. ( <\/p>\n<p><b>Anzeige des Stundenzettels<\/b><\/p>\n<p><IMG height=\"403\" src=\"..\/fileadmin\/_temp_\/{8F2E46F3-5E4F-43AE-82E9-55085E54A418}\/pic004.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 4:  Das Formular frmStundenzettel<\/span><\/b><\/p>\n<p><IMG height=\"181\" src=\"..\/fileadmin\/_temp_\/{8F2E46F3-5E4F-43AE-82E9-55085E54A418}\/pic005.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 5:  Stundenzettel-Unterformular mit unsichtbaren Steuerelementen.<\/span><\/b><\/p>\n<p>Das Formular frmStundenzettel (siehe Bild 4) greift als Datenherkunft auf die Abfrage qryStundenzettel zur&uuml;ck. In dieser Abfrage wird als Kriterium f&uuml;r den Mitarbeiternamen die Funktion CurrentUser verwendet (h&auml;tten Sie sich als Frau Musterfrau angemeldet, w&uuml;rden Sie den Stundenzettel dieser Mitarbeiterin sehen).<\/p>\n<p>Das Formular besteht aus dem Haupt- und dem Unterformular sfrStundenzettel. Beide Formulare sind &uuml;ber die Felder cntMAID und lngMITARBEITER verkn&uuml;pft. Diese Verkn&uuml;pfung ist auch als Beziehung definiert.<\/p>\n<p>Der Mitarbeiter gibt seine Stunden in das Endlos-Unterformular ein und kann sich &uuml;ber die Schaltfl&auml;che hinter der Auftragsnummer jeweils die offenen Auftr&auml;ge anzeigen lassen (siehe Bild 5).<\/p>\n<h3>Offene Leistungen<\/h3>\n<p>Wie in aller Regel stehen auch f&uuml;r die Auswahl der Auftragsnummer mindestens zwei M&ouml;glichkeiten zur Verf&uuml;gung.<\/p>\n<p>Die erste davon w&auml;re ein Kombinationsfeld, das alle offenen (noch nicht abgerechneten) Auftr&auml;ge aufnimmt. Die zweite Variante verwendet ein PopUp-Formular mit einem Listenfeld und zwei Schaltfl&auml;chen.<\/p>\n<p>In beiden F&auml;llen ist es f&uuml;r die Auswahl des richtigen Auftrags notwendig, dass der Mitarbeiter die Auftragsbeschreibung sehen kann. Die Angabe von Auftragsdatum, Auftraggeber und -ort sind eher zus&auml;tzliche Informationen und sollen die Zuordnung zu erleichtern.<\/p>\n<pre>Me.Monatsstunden = Dsum(\"Stunden\", \"qryLeistungsStunden\", _    \"DatePart(\"\"yyyy\"\",[dtmLEISTUNG])=\" & Nz(Me.cboJahr, Year(Date)) _    & \" AND DatePart(\"\"m\"\",[dtmLEISTUNG])=\" & Nz(Me.cboMonat, Month(Date)) _\r\n    & \" AND [lngMITARBEITER]=\" & Me.cntMAID)\r\nMe.Jahresstunden = Dsum(\"Stunden\", \"qryLeistungsStunden\", _    \"DatePart(\"\"yyyy\"\",[dtmLEISTUNG])=\" & Nz(Me.cboJahr, Year(Date)) _    & \" AND [lngMITARBEITER]=\" & Me.cntMAID)<\/pre>\n<p><b>Quellcode 2<\/b><\/p>\n<p>In der Beispieldatenbank wird f&uuml;r den Auftrag eine Kurzbeschreibung mit maximal 100 Zeichen in einem Textfeld hinterlegt und eine ausf&uuml;hrliche Beschreibung in einem Memofeld.<\/p>\n<p>Wird der Auftrag nicht bereits aus der angezeigten Kurzbezeichnung deutlich, kann der Mitarbeiter aus dem PopUp-Formular ein weiteres Formular mit der kompletten Auftragsbeschreibung aufrufen.<\/p>\n<p>Das Listenfeld wird mit der Abfrage qryLeistungsListe gef&uuml;llt, die wiederum alle Auftr&auml;ge zur&uuml;ckgibt, bei denen noch kein Erledigungsdatum eingesetzt ist.<\/p>\n<p>Erkennbar sind sechs Spalten, die Abfrage selber erstreckt sich jedoch &uuml;ber neun Felder. <\/p>\n<p>F&uuml;r die restlichen drei Felder ist die Spaltenbreite in der Liste auf &#8222;0&#8220; gesetzt. Den Prim&auml;rschl&uuml;ssel der Leistung (Spalte 0) muss der Mitarbeiter sehen, aber den f&uuml;r diese Leistung angesetzten Stundensatz (Spalte 7) und die W&auml;hrung (Spalte 8) soll er nicht erkennen. Die Werte dieser drei Spalten werden bei Auswahl eines Auftrags in der Liste mit in unsichtbare Felder des Stundenzettel-Unterformulars &uuml;bertragen.<\/p>\n<p>Die Felder curStundensatz und txtWaehrung sind im Stundenzettel-Unterformular auf &#8222;unsichtbar&#8220; gesetzt.<\/p>\n<p>In der Prozedur wird der Fokus auf das Feld mit der Auftragsnummer platziert (lngAuftrag) und dessen Eigenschaft Text der Wert des Listenfeldes &uuml;bergeben. Zur Erkl&auml;rung: In sfrStundenzettel soll nach Aktualisierung des Feldes lngAuftrag eine Ereignisprozedur ausgef&uuml;hrt werden, die den soeben eingegebenen Wert als Standardwert f&uuml;r den n&auml;chsten Datensatz einstellt. Das ist kein Problem, solange der Wert auch tats&auml;chlich eingegeben wird. Das Ereignis Nach Aktualisierung wird jedoch nicht ausgel&ouml;st, wenn ein Wert auf die &uuml;bliche Art per Programm in ein Feld eingef&uuml;gt wird.<\/p>\n<p>Bei einem Aufruf Me!Feldname handelt es sich um die verk&uuml;rzte Schreibweise von Me!Feldname.Value und das bedeutet, dass ein &uuml;bertragener Wert der Eigenschaft Value zugewiesen wird. Die Zuweisung an die Eigenschaft Text l&ouml;st das Nach Aktualisierung-Ereignis hingegen aus. Um allerdings die Eigenschaft Text &uuml;berhaupt erfolgreich belegen zu k&ouml;nnen, muss das Steuerelement den Fokus besitzen.<\/p>\n<h3>Zur&uuml;ck zur Schlosserei &#8230;<\/h3>\n<p>Insbesondere, wenn die Stundenzettel auch zur Lohnabrechnung herangezogen werden, ist es f&uuml;r den einzelnen Mitarbeiter interessant zu sehen, wie viele Stunden er in einem Monat gearbeitet hat.<\/p>\n<p>Dazu kann er im Formularfu&szlig; den Monat und das Jahr w&auml;hlen, um nach einem Klick auf die Schaltfl&auml;che die aufgelaufenen Stunden des Monats und des Jahres angezeigt zu bekommen.<\/p>\n<p>Der Code hinter der Schaltfl&auml;che verwendet das Dom&auml;nenaggregat Dsum und die Funktion DatePart, um die Summen aus einer Abfrage zu ermitteln (s. Quellcode 2).<\/p>\n<p>In den vorherigen Abschnitten haben Sie den Schutzmechanismus und seine Wirkung auf Mitglieder der Benutzergruppe Mitarbeiter kennen gelernt. In diesem Abschnitt sollen die M&ouml;glichkeiten der Gruppe Verwaltung behandelt werden.<\/p>\n<p>Ein kleiner, aber bedeutender Teil, dieser M&ouml;glichkeiten wurde mit den Formularen frmGruppen und frmMitarbeiter vorgestellt.<\/p>\n<p><IMG height=\"351\" src=\"..\/fileadmin\/_temp_\/{8F2E46F3-5E4F-43AE-82E9-55085E54A418}\/pic006.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 6:  Das Formular frmAdressen<\/span><\/b><\/p>\n<p>Aber irgendwie m&uuml;ssen die Auftr&auml;ge auch noch in die Datenbank kommen. Starten Sie erneut die Datenbank Stunden.mdb &uuml;ber die Verkn&uuml;pfung mit dem Parameter \/wrkgrp und verwenden Sie diesmal als Anmeldenamen Sabine Meier &#8211; das Kennwort lassen Sie erneut frei.<\/p>\n<p>Sabine Meier geh&ouml;rt zur Gruppe Verwaltung und f&uuml;r diese Gruppe wurde das Formular &uuml;bersicht als Startformular festgelegt (die Eintr&auml;ge sind alphabetisch geordnet).<\/p>\n<p><IMG height=\"312\" src=\"..\/fileadmin\/_temp_\/{8F2E46F3-5E4F-43AE-82E9-55085E54A418}\/pic007.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 7:  frmLeistungen mit den Stundenzetteldaten<\/span><\/b><\/p>\n<p><b>Adressen<\/b><\/p>\n<p>Das wohl wichtigste Kapital eines Unternehmens sind die Kunden. Deshalb sollten diese auch zuallererst angelegt werden (siehe Bild 6). <\/p>\n<p>Neben den &uuml;blichen Adressangaben wie Name, Anschrift etc. wird auch der standardm&auml;&szlig;ig mit jedem Kunden vereinbarte Stundensatz festgehalten (dieser Stundensatz wird bei einem Auftrag vorgetragen).<\/p>\n<p>Im unteren Bereich des Formulars ist das Endlos-Unterformular sfrAdressLeistungen eingef&uuml;gt, das einen &uuml;berblick &uuml;ber alle von einem Kunden erteilten Auftr&auml;ge anzeigt. &uuml;ber die Schaltfl&auml;che auf dem Unterformular l&auml;sst sich das Leistungsformular (frmLeistungen) mit diesem Auftrag &ouml;ffnen.<\/p>\n<p>Haupt- und Unterformular sind &uuml;ber die Felder cntADRID (aus den Adressen) und lngAuftraggeber (aus den Leistungen) miteinander verkn&uuml;pft. Ob es sich bei den Adressen um externe oder interne (Abteilungen) Kunden handelt, spielt keine Rolle.<\/p>\n<p><b>Das Formular frmLeistungen<\/b><\/p>\n<p>Sind erst einmal die Kundendaten angelegt, sollten auch die Auftragsdaten nicht auf sich warten lassen. Zur Erfassung dient das Formular frmLeistungen (siehe Bild 7). Um jeder  Leistung einen Auftraggeber zuzuordnen, ergibt sich wieder die Qual der Wahl zwischen einem Kombinationsfeld oder einem separaten Formular. In der Musterl&ouml;sung wird auch in diesem Fall das separate Formular bevorzugt, das &uuml;ber die Schaltfl&auml;che hinter der Auftraggebernummer erreicht wird.<\/p>\n<p><IMG height=\"348\" src=\"..\/fileadmin\/_temp_\/{8F2E46F3-5E4F-43AE-82E9-55085E54A418}\/pic008.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 8:  rptRechnung mit Gruppierung<\/span><\/b><\/p>\n<pre>Adresse: [txtNAME1] & Zchn(13) & Zchn(10) & Wenn(Nicht (IstNull([txtNAME2]));[txtNAME2] & Zchn(13) & Zchn(10)) & Wenn(Nicht (IstNull([txtNAME3]));[txtNAME3] & Zchn(13) & Zchn(10)) & [txtSTRASSE] & Zchn(13) & Zchn(10) & Zchn(13) & Zchn(10) & ([txtPLZ]+\" \") & [txtORT] & Zchn(13) & Zchn(10) & [txtLAND] <\/pre>\n<p><b>Quellcode 3<\/b><\/p>\n<p>Anstelle eines Listenfeldes wird zur Auswahl des Auftraggebers allerdings ein Einzelformular verwendet. Unter Verwendung des Kontextmen&uuml;s lassen sich so Datens&auml;tze filtern oder sortieren, um die gesuchte Adresse zu finden.<\/p>\n<p>&uuml;ber die Schaltfl&auml;che auf dem PopUp-Formular kann die Adresse in das Leistungsformular &uuml;bernommen werden. Zus&auml;tzlich wird der mit einem Kunden vereinbarte Standard-Stundensatz &uuml;bertragen.<\/p>\n<p>Mit Kurzbeschreibung und Beschreibung des Auftrags wird die Leistungserfassung zun&auml;chst abgeschlossen.<\/p>\n<p>Nun befindet sich auf dem Formular ein Register-Steuerelement.<\/p>\n<p>W&auml;hrend auf der ersten Seite die Auftragsdaten angezeigt werden, enth&auml;lt die zweite Seite ein Unterformular mit den Stundenzettel-Daten.<\/p>\n<p>Haupt- und Unterformular sind &uuml;ber die Felder cntLID und lngAuftrag miteinander verkn&uuml;pft. Im Unterformular sehen Sie , welcher Mitarbeiter wann welche Leistung zu diesem Auftrag erbracht hat, und Sie k&ouml;nnen auch den Preis f&uuml;r die einzelnen Leistungen anpassen.<\/p>\n<p>Durch den Preisvortrag von der Adresse &uuml;ber den Auftrag bis zur einzelnen Leistung lassen sich unterschiedliche Stundens&auml;tze mit einem Auftrag abrechnen.<\/p>\n<p>Ist der Auftrag abgeschlossen (die Meldung und die entsprechende Verarbeitung ist in der Musterl&ouml;sung nicht enthalten), kann die Abrechnung erstellt werden.<\/p>\n<p><b>Leistungsabrechnung<\/b><\/p>\n<p>Der Bericht rptRechnung basiert auf der Abfrage qryLeistungsAbrechnung, wie in Bild 8 zu erkennen ist.<\/p>\n<p><IMG height=\"354\" src=\"..\/fileadmin\/_temp_\/{8F2E46F3-5E4F-43AE-82E9-55085E54A418}\/pic009.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 9:  Das Formular frmMitarbeiterLeistungen<\/span><\/b><\/p>\n<p>Sind Sie bei den Adressen &uuml;ber die Feldbezeichnungen txtName1, txtName2 und txtName3 gestolpert, sehen Sie in der Abfrage, dass die Felder wie in Quellcode 3 zusammengesetzt werden.<\/p>\n<p>Vielleicht wundern Sie sich &uuml;ber die Schreibweise ([txtPLZ]+&#8220; &#8222;). Sie k&ouml;nnen diese Syntax immer dann verwenden, wenn Sie zwischen zwei Ausdr&uuml;cken eine Leerstelle (oder etwas anderes) angezeigt bekommen m&ouml;chten, sofern ein Feldinhalt vorhanden ist.<\/p>\n<p>Im vorliegenden Fall wird ein Leerzeichen eingef&uuml;gt, wenn eine Postleitzahl vorhanden ist. Ist keine Postleitzahl angegeben, wird die h&auml;ssliche Leerstelle vor dem Ort unterdr&uuml;ckt und die Ausgabe erfolgt linksb&uuml;ndig.<\/p>\n<p>Im Bericht wird eine einzige Gruppierungsebene, n&auml;mlich die LeistungsID (cntLID), verwendet. Im Gruppenkopf sind die Adresse und die Grunddaten der Leistung untergebracht, im Gruppenfu&szlig; die Abrechnungssumme. Der Detailbereich wird mit den Leistungsdetails, also den Stundenzetteldaten, gef&uuml;llt.<\/p>\n<p>Beim Schlie&szlig;en des Berichtes wird gepr&uuml;ft, ob das Formular frmLeistungen ge&ouml;ffnet und dort ein Erledigungsdatum eingetragen ist. Ist noch kein Abschlussdatum vorhanden, erfolgt eine Abfrage, ob dieses eingetragen werden soll.<\/p>\n<p>Als angemeldete Sabine Meier zum Beispiel haben Sie selbstverst&auml;ndlich Zugang zu allen wichtigen Daten. Sabine Meier erfasst bzw. ver&auml;ndert Kundendaten und bearbeitet Leistungen bis hin zur Abrechnung. Nun m&ouml;chte sie auch im &uuml;berblick sehen, was die anderen Mitarbeiter so leisten, und ist erstaunt, dass ihr der Zugriff verweigert wird.<\/p>\n<p>In der Musterl&ouml;sung besitzt lediglich die Benutzergruppe SuperAdmins das Recht, das Formular frmMitarbeiterLeistungen zu &ouml;ffnen.<\/p>\n<p>Melden Sie sich ein letztes Mal bei der Datenbank Stunden.mdb &uuml;ber die Verkn&uuml;pfung mit dem Parameter \/wrkgrp an und verwenden Sie nun den Anmeldenamen Entwickler sowie das Kennwort berlin.<\/p>\n<p>Jetzt sind Sie als Eigent&uuml;mer mit unbeschr&auml;nkten Rechten angemeldet. Sie haben sowohl das Recht, s&auml;mtliche Daten und Entw&uuml;rfe einzusehen und nach Belieben zu &auml;ndern, als auch Rechte beliebig zu erteilen.<\/p>\n<p>Zu guter Letzt bleibt noch das Formular frmMitarbeiterLeistungen (siehe Bild 9). Es handelt sich hierbei im Grunde um eine modifizierte Ausgabe des Stundenzettels.<\/p>\n<p>W&auml;hrend ein Angeh&ouml;riger der Gruppe Mitarbeiter jedoch nur seine eigenen Stunden sehen kann, lassen sich mit dem Chefformular die Angaben der einzelnen Mitarbeiter einsehen und die jeweiligen Leistungsdaten ermitteln.<\/p>\n<p>Neben der schon vom Stundenzettel bekannten M&ouml;glichkeit, die Arbeitsstunden des Mitarbeiters anzuzeigen, versetzt dieses Formular den Benutzer zus&auml;tzlich in die Lage, die Leistungen des einzelnen Mitarbeiters in bestimmten Projekten herauszuziehen.<\/p>\n<h3>Downloads zu diesem Beitrag<\/h3>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>Stundenzettel.zip<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/CE0A87B2-BC5C-4EAA-9F9A-AC68F474D8BF\/aiu_75.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Zeit ist Geld. Diese Weisheit ist Grundlage f&uuml;r so manche Rechnung, die der Auftragnehmer seinem Kunden stellt. Nat&uuml;rlich funktioniert dies nur, wenn die Arbeitsstunden auch dokumentiert werden. Hierbei unterst&uuml;tzt Sie die hier vorgestellte Musterl&ouml;sung. Als Szenario f&uuml;r die Datenbank dient ein kleiner Industriebetrieb, in dem die Mitarbeiter ihre Arbeitsstunden f&uuml;r die einzelnen Projekte aufschreiben.<\/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":[662002,66042002,44000027],"tags":[],"class_list":["post-55000075","post","type-post","status-publish","format-standard","hentry","category-662002","category-66042002","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>Stundenzetteldatenbank zur Dokumentation von Arbeitsleistungen - 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\/Stundenzetteldatenbank_zur_Dokumentation_von_Arbeitsleistungen\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Stundenzetteldatenbank zur Dokumentation von Arbeitsleistungen\" \/>\n<meta property=\"og:description\" content=\"Zeit ist Geld. Diese Weisheit ist Grundlage f&uuml;r so manche Rechnung, die der Auftragnehmer seinem Kunden stellt. Nat&uuml;rlich funktioniert dies nur, wenn die Arbeitsstunden auch dokumentiert werden. Hierbei unterst&uuml;tzt Sie die hier vorgestellte Musterl&ouml;sung. Als Szenario f&uuml;r die Datenbank dient ein kleiner Industriebetrieb, in dem die Mitarbeiter ihre Arbeitsstunden f&uuml;r die einzelnen Projekte aufschreiben.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Stundenzetteldatenbank_zur_Dokumentation_von_Arbeitsleistungen\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2021-02-10T20:14:34+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg01.met.vgwort.de\/na\/86c2799822634d8dbb547957a3505722\" \/>\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=\"17\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Stundenzetteldatenbank_zur_Dokumentation_von_Arbeitsleistungen\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Stundenzetteldatenbank_zur_Dokumentation_von_Arbeitsleistungen\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Stundenzetteldatenbank zur Dokumentation von Arbeitsleistungen\",\"datePublished\":\"2021-02-10T20:14:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Stundenzetteldatenbank_zur_Dokumentation_von_Arbeitsleistungen\\\/\"},\"wordCount\":3337,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Stundenzetteldatenbank_zur_Dokumentation_von_Arbeitsleistungen\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/86c2799822634d8dbb547957a3505722\",\"articleSection\":[\"2002\",\"4\\\/2002\",\"L\u00f6sungen\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Stundenzetteldatenbank_zur_Dokumentation_von_Arbeitsleistungen\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Stundenzetteldatenbank_zur_Dokumentation_von_Arbeitsleistungen\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Stundenzetteldatenbank_zur_Dokumentation_von_Arbeitsleistungen\\\/\",\"name\":\"Stundenzetteldatenbank zur Dokumentation von Arbeitsleistungen - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Stundenzetteldatenbank_zur_Dokumentation_von_Arbeitsleistungen\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Stundenzetteldatenbank_zur_Dokumentation_von_Arbeitsleistungen\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/86c2799822634d8dbb547957a3505722\",\"datePublished\":\"2021-02-10T20:14:34+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Stundenzetteldatenbank_zur_Dokumentation_von_Arbeitsleistungen\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Stundenzetteldatenbank_zur_Dokumentation_von_Arbeitsleistungen\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Stundenzetteldatenbank_zur_Dokumentation_von_Arbeitsleistungen\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/86c2799822634d8dbb547957a3505722\",\"contentUrl\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/86c2799822634d8dbb547957a3505722\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Stundenzetteldatenbank_zur_Dokumentation_von_Arbeitsleistungen\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Stundenzetteldatenbank zur Dokumentation von Arbeitsleistungen\"}]},{\"@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":"Stundenzetteldatenbank zur Dokumentation von Arbeitsleistungen - 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\/Stundenzetteldatenbank_zur_Dokumentation_von_Arbeitsleistungen\/","og_locale":"de_DE","og_type":"article","og_title":"Stundenzetteldatenbank zur Dokumentation von Arbeitsleistungen","og_description":"Zeit ist Geld. Diese Weisheit ist Grundlage f&uuml;r so manche Rechnung, die der Auftragnehmer seinem Kunden stellt. Nat&uuml;rlich funktioniert dies nur, wenn die Arbeitsstunden auch dokumentiert werden. Hierbei unterst&uuml;tzt Sie die hier vorgestellte Musterl&ouml;sung. Als Szenario f&uuml;r die Datenbank dient ein kleiner Industriebetrieb, in dem die Mitarbeiter ihre Arbeitsstunden f&uuml;r die einzelnen Projekte aufschreiben.","og_url":"https:\/\/access-im-unternehmen.de\/Stundenzetteldatenbank_zur_Dokumentation_von_Arbeitsleistungen\/","og_site_name":"Access im Unternehmen","article_published_time":"2021-02-10T20:14:34+00:00","og_image":[{"url":"http:\/\/vg01.met.vgwort.de\/na\/86c2799822634d8dbb547957a3505722","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"17\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Stundenzetteldatenbank_zur_Dokumentation_von_Arbeitsleistungen\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Stundenzetteldatenbank_zur_Dokumentation_von_Arbeitsleistungen\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Stundenzetteldatenbank zur Dokumentation von Arbeitsleistungen","datePublished":"2021-02-10T20:14:34+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Stundenzetteldatenbank_zur_Dokumentation_von_Arbeitsleistungen\/"},"wordCount":3337,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Stundenzetteldatenbank_zur_Dokumentation_von_Arbeitsleistungen\/#primaryimage"},"thumbnailUrl":"http:\/\/vg01.met.vgwort.de\/na\/86c2799822634d8dbb547957a3505722","articleSection":["2002","4\/2002","L\u00f6sungen"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Stundenzetteldatenbank_zur_Dokumentation_von_Arbeitsleistungen\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Stundenzetteldatenbank_zur_Dokumentation_von_Arbeitsleistungen\/","url":"https:\/\/access-im-unternehmen.de\/Stundenzetteldatenbank_zur_Dokumentation_von_Arbeitsleistungen\/","name":"Stundenzetteldatenbank zur Dokumentation von Arbeitsleistungen - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Stundenzetteldatenbank_zur_Dokumentation_von_Arbeitsleistungen\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Stundenzetteldatenbank_zur_Dokumentation_von_Arbeitsleistungen\/#primaryimage"},"thumbnailUrl":"http:\/\/vg01.met.vgwort.de\/na\/86c2799822634d8dbb547957a3505722","datePublished":"2021-02-10T20:14:34+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Stundenzetteldatenbank_zur_Dokumentation_von_Arbeitsleistungen\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Stundenzetteldatenbank_zur_Dokumentation_von_Arbeitsleistungen\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Stundenzetteldatenbank_zur_Dokumentation_von_Arbeitsleistungen\/#primaryimage","url":"http:\/\/vg01.met.vgwort.de\/na\/86c2799822634d8dbb547957a3505722","contentUrl":"http:\/\/vg01.met.vgwort.de\/na\/86c2799822634d8dbb547957a3505722"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Stundenzetteldatenbank_zur_Dokumentation_von_Arbeitsleistungen\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Stundenzetteldatenbank zur Dokumentation von Arbeitsleistungen"}]},{"@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\/55000075","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=55000075"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000075\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000075"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000075"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000075"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}