{"id":55000105,"date":"2003-04-01T00:00:00","date_gmt":"2020-05-06T15:17:25","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=105"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Skills_mit_Access_verwalten","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Skills_mit_Access_verwalten\/","title":{"rendered":"Skills mit Access verwalten"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg02.met.vgwort.de\/na\/4d0d608b5df54f5083a6bc360d82d4db\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>von Klaus Giesen, Wuppertal<\/b><\/p>\n<p><b>Skills ist die &#8222;neudeutsche&#8220; Bezeichnung f&uuml;r F&auml;higkeiten oder Kompetenzen von Personen. Dieser Begriff ist vor allem bei freiberuflichen IT-Kr&auml;ften oder Freelancern gang und g&auml;be, die f&uuml;r unterschiedliche Unternehmen arbeiten und dort aufgrund ihrer durch die Skills repr&auml;sentierten F&auml;higkeiten f&uuml;r spezielle Aufgaben herangezogen werden. Der Einsatzbereich der hier vorgestellten Datenbankanwendung ist die Verwaltung von Personen und deren Skills, um zur rechten Zeit einen geeigneten Mitarbeiter zu finden.<\/b><\/p>\n<p>Die im vorliegenden Beitrag vorgestellte Musterl&ouml;sung dient neben der Verwaltung von Personen und deren Kontaktdaten prim&auml;r der Erfassung von F&auml;higkeiten und entsprechenden Bewertungen.<\/p>\n<h2>Erfassung von Bewertungen<\/h2>\n<p>Die Bewertung von F&auml;higkeiten kann im einfachsten Fall durch die Zuordnung von Schulnoten erfolgen.<\/p>\n<p>Aussagekr&auml;ftiger ist die Zuordnung von individuellen Bewertungskriterien je F&auml;higkeit. Die folgenden Beispiele verdeutlichen dies:<\/p>\n<table border=1>\n<tr>\n<td>\n<p><b>F&auml;higkeit<\/b><\/p>\n<\/td>\n<td>\n<p><b>M&ouml;gliche Bewertungen<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>VB-Programmierung<\/p>\n<\/td>\n<td>\n<p>Gut, mittel, schlecht<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Englisch<\/p>\n<\/td>\n<td>\n<p>Keine Kenntnisse, Anf&auml;nger, fortgeschritten, verhandlungssicher, Muttersprache<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>F&uuml;hrerschein<\/p>\n<\/td>\n<td>\n<p>Klasse 1, Klasse 2, Klasse 3<\/p>\n<\/td>\n<\/tr>\n<\/table>\n<p><b>Tab. 1: Beispiele zum Bewertungssystem<\/b><\/p>\n<p>Nur ein solches Bewertungssystem erm&ouml;glicht es, jeder F&auml;higkeit individuelle und vor allem auch aussagekr&auml;ftige Bewertungen zuzuordnen. Falls Sie jedoch Schulnoten vorziehen sollten, k&ouml;nnen Sie diese nat&uuml;rlich ebenfalls verwenden.<\/p>\n<h2>Erfassung von Eindr&uuml;cken<\/h2>\n<p>Bei der Erfassung von Skills sollte die eigene Bewertung des Bewerbers &#8211; beispielsweise aufgrund seines Bewerbungsschreibens &#8211; und eine Bewertung des Bearbeiters &#8211; beispielsweise der Eindruck beim Bewerbungsgespr&auml;ch &#8211; erfasst und gegen&uuml;bergestellt werden k&ouml;nnen.<\/p>\n<h2>Suchen<\/h2>\n<p>Damit die Musterl&ouml;sung den Anforderungen der Praxis gerecht werden kann, sollten differenzierte Suchm&ouml;glichkeiten vorhanden sein. Dazu z&auml;hlen unter anderem die Auswahl verschiedener Vergleichsoperatoren und Verkn&uuml;pfungen mit AND bzw. OR. Au&szlig;erdem soll die Musterl&ouml;sung auch noch die M&ouml;glichkeit zur schnellen Auswahl eines bestimmten Datensatzes bieten.<\/p>\n<h2>Ausdruckm&ouml;glichkeiten<\/h2>\n<p>Da das papierlose B&uuml;ro immer noch eine Fiktion ist, sieht auch diese Musterl&ouml;sung zwei Ausdruckm&ouml;glichkeiten vor.<\/p>\n<p>Der erste Bericht druckt alle relevanten Angaben zu einer Person in Form eines Profils aus, damit diese Angaben &uuml;bersichtlich auf Papier vorliegen.<\/p>\n<p>Die zweite Ausdruckm&ouml;glichkeit betrifft das Ergebnis einer Suche. In solchen F&auml;llen ist es oftmals sinnvoll, die Kontaktangaben zu einer Person wie Telefon- und Faxnummer sowie die E-Mail-Adresse auf Papier griffbereit zu haben.<\/p>\n<h3>Hinweis<\/h3>\n<p>Diese Musterl&ouml;sung zu einer Skill-Verwaltung finden Sie auf der beiliegenden CD-ROM f&uuml;r Access 97 (Skills97.mdb) und Access 2000 (Skills2000.mdb). <\/p>\n<p>Das Datenmodell dieser Musterl&ouml;sung ben&ouml;tigt zun&auml;chst die drei Tabellen tblPersonen, tblFaehigkeiten und tblBewertungen zur Erfassung der betreffenden Daten. Die Tabellen stehen in folgenden Beziehungen zueinander:<\/p>\n<li>Eine Person kann verschiedene F&auml;higkeiten haben.<\/li>\n<li>Jede F&auml;higkeit kann verschiedenen Personen zugeordnet werden.<\/li>\n<li>Gleiches trifft sinngem&auml;&szlig; auch auf die Bewertungen der einzelnen F&auml;higkeiten zu.<\/li>\n<p>Die Realisierung der m:n-Beziehungen zwischen Personen und F&auml;higkeiten sowie Bewertungen erfolgt &uuml;ber die Tabelle tblPersonenUndFaehigkeiten. Die folgenden Abschnitte beschreiben den genauen Aufbau der einzelnen Tabellen.<\/p>\n<h2>Die Tabelle tblPersonen<\/h2>\n<p>Die Tabelle tblPersonen (siehe Bild 1) dient dem Speichern der Stammdaten. Sie enth&auml;lt &#8211; neben den &uuml;blichen personenbezogenen Feldern &#8211; weitere speziell f&uuml;r die vorliegende Aufgabenstellung notwendige Felder. <\/p>\n<p>Die Namen dieser Felder und eine dazugeh&ouml;rende Beschreibung entnehmen Sie Tab. 2.<\/p>\n<table border=1>\n<tr>\n<td>\n<p><b>Feld<\/b><\/p>\n<\/td>\n<td>\n<p><b>Beschreibung<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>StundensatzVon<\/p>\n<\/td>\n<td>\n<p>Untergrenze des Stundensatzes<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>StundensatzBis<\/p>\n<\/td>\n<td>\n<p>Obergrenze des Stundensatzes<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Quelle<\/p>\n<\/td>\n<td>\n<p>Woher stammt der Kontakt Anzeige, Bewerbung, Internet usw.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Verf&uuml;gbarkeitInProzent<\/p>\n<\/td>\n<td>\n<p>Typische Angabe f&uuml;r Freiberufler: Die prozentuale Verf&uuml;gbarkeit f&uuml;r einen bestimmten Auftraggeber<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Taetigkeitsraum<\/p>\n<\/td>\n<td>\n<p>Postleitzahlbereich, deutschland- oder europaweit.<\/p>\n<\/td>\n<\/tr>\n<\/table>\n<p><b>Tab. 2: Spezielle Felder der Tabelle tblPersonen<\/b><\/p>\n<p>Alle Felddatentypen sind in der vorliegenden Musterl&ouml;sung auf Text eingestellt, um f&uuml;r die zu erfassenden Angaben eine gr&ouml;&szlig;tm&ouml;gliche Flexibilit&auml;t zu erlauben.<\/p>\n<p><IMG height=\"373\" src=\"..\/fileadmin\/_temp_\/{663D9CAE-5A9A-43BF-BFDF-5C9642654F2A}\/pic001.png\" width=\"385\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 1:  Die Tabelle tblPersonen in der Entwurfsansicht<\/span><\/b><\/p>\n<h2>Die Tabelle tblFaehigkeiten<\/h2>\n<p>Die Tabelle tblFaehigkeiten (siehe Bild 2) enth&auml;lt neben dem Prim&auml;rschl&uuml;sselfeld lediglich ein weiteres Textfeld zum Speichern von F&auml;higkeiten.<\/p>\n<h2>Die Tabelle tblBewertungen<\/h2>\n<p>Die Tabelle tblBewertungen (siehe Bild 3) enth&auml;lt neben dem Prim&auml;rschl&uuml;sselfeld und einem Textfeld zum Speichern der Bemerkungen noch das Sekund&auml;rschl&uuml;sselfeld FaehigkeitID. Die Bedeutung dieses Sekund&auml;rschl&uuml;sselfelds ist im Abschnitt Beziehungen erkl&auml;rt.<\/p>\n<p><IMG height=\"346\" src=\"..\/fileadmin\/_temp_\/{663D9CAE-5A9A-43BF-BFDF-5C9642654F2A}\/pic002.png\" width=\"439\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 2:  Die Tabelle tblFaehigkeiten in derEntwurfsansicht<\/span><\/b><\/p>\n<p><IMG height=\"332\" src=\"..\/fileadmin\/_temp_\/{663D9CAE-5A9A-43BF-BFDF-5C9642654F2A}\/pic003.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 3:  Die Tabelle tblBewertungen in derEntwurfsansicht<\/span><\/b><\/p>\n<p><IMG height=\"402\" src=\"..\/fileadmin\/_temp_\/{663D9CAE-5A9A-43BF-BFDF-5C9642654F2A}\/pic004.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 4:  Die Tabelle tblPersonenUndFaehigkeiten in der Entwurfsansicht<\/span><\/b><\/p>\n<h2>Die Tabelle tblPersonenUndFaehigkeiten<\/h2>\n<p>Die Tabelle tblPersonenUndFaehigkeiten (siehe Bild 4) dient als Zwischentabelle zur Realisierung der ben&ouml;tigten n:m-Beziehungen. In Tab. 3 finden Sie eine Aufstellung der Tabellenfelder und eine zugeh&ouml;rige Beschreibung.<\/p>\n<table border=1>\n<tr>\n<td>\n<p><b>Feld<\/b><\/p>\n<\/td>\n<td>\n<p><b>Beschreibung<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>PersonUndFaehigkeitID<\/p>\n<\/td>\n<td>\n<p>Prim&auml;rschl&uuml;sselfeld<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>PersonID<\/p>\n<\/td>\n<td>\n<p>Sekund&auml;rschl&uuml;sselfeld zur Tabelle tblPersonen<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>FaehigkeitID<\/p>\n<\/td>\n<td>\n<p>Sekund&auml;rschl&uuml;sselfeld zur Tabelle tblFaehigkeiten<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>BewertungID<\/p>\n<\/td>\n<td>\n<p>Sekund&auml;rschl&uuml;sselfeld zur Tabelle tblBewertungen<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>EindruckID<\/p>\n<\/td>\n<td>\n<p>Verkn&uuml;pfungsfeld zur Erstellung der erweiterten Bewertungen<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Bemerkung<\/p>\n<\/td>\n<td>\n<p>Memo-Feld f&uuml;r Bemerkungen<\/p>\n<\/td>\n<\/tr>\n<\/table>\n<p><b>Tab. 3: Felder und Beschreibung der Tabelle tblPersonenUndFaehigkeiten<\/b><\/p>\n<p>Beim Feld BewertungID ist der Wert f&uuml;r die Eigenschaft Eingabe erforderlich auf den Wert Ja eingestellt, damit sichergestellt ist, dass bei der Datenerfassung jeder F&auml;higkeit auch eine Bewertung zugeordnet wird.<\/p>\n<h3>Zusammengesetzten Index erstellen<\/h3>\n<p>Bei der sp&auml;teren Erfassung von F&auml;higkeiten und Bewertungen soll die mehrfache Zuordnung einer F&auml;higkeit zu einer Person nicht m&ouml;glich sein.<\/p>\n<p>Dies kann beispielsweise durch die Erstellung eines zusammengesetzten Index f&uuml;r die Sekund&auml;rschl&uuml;sselfelder PersonID und FaehigkeitID in der Tabelle tblPersonenUndFaehigkeiten realisiert werden.<\/p>\n<p>Ausgangspunkt f&uuml;r die Erstellung eines zusammengesetzten Index ist die in der Entwurfsansicht ge&ouml;ffnete Tabelle.<\/p>\n<li>Klicken Sie in der Symbolleiste auf das Symbol Indizes und &ouml;ffnen Sie damit das Dialogfenster Indizes (siehe Bild 5).<\/li>\n<li>Geben Sie in die erste leere Zeile der Spalte Indexname einen Namen f&uuml;r den Index ein, beispielsweise MultiIndex.<\/li>\n<li>W&auml;hlen Sie dann in der Spalte Feldname das Feld PersonID aus, das als Erstes indiziert werden soll.<\/li>\n<li>Stellen Sie im Bereich Indexeigenschaften den Wert f&uuml;r die Eigenschaft Eindeutig auf Ja ein.<\/li>\n<li>Markieren Sie in der n&auml;chsten Zeile der Spalte Feldname das zweite Feld FaehigkeitID f&uuml;r den Index. Lassen Sie dabei die Spalte Indexname leer.<\/li>\n<li>Schlie&szlig;en Sie das Dialogfenster Indizes mit einem Klick auf die Schaltfl&auml;che Schlie&szlig;en in der Titelleiste. (<\/li>\n<p><IMG height=\"300\" src=\"..\/fileadmin\/_temp_\/{663D9CAE-5A9A-43BF-BFDF-5C9642654F2A}\/pic005.png\" width=\"477\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 5:  Das Dialogfenster Indizes<\/span><\/b><\/p>\n<h2>Beziehungen<\/h2>\n<p>Die Beziehungen der Musterl&ouml;sungen sind wie bei Access gewohnt im Dialogfenster Beziehungen dargestellt (siehe Bild 6). Alle Beziehungen sind vom Beziehungstyp 1:n mit aktivierter referentieller Integrit&auml;t.<\/p>\n<p>Die Kontrollk&auml;stchen Aktualisierungsweitergabe an verwandte Felder und L&ouml;schweitergabe an verwandte Datens&auml;tze sind bei allen Beziehungen deaktiviert.<\/p>\n<p><IMG height=\"219\" src=\"..\/fileadmin\/_temp_\/{663D9CAE-5A9A-43BF-BFDF-5C9642654F2A}\/pic006.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 6:  Das Dialogfenster Beziehungen<\/span><\/b><\/p>\n<p>Die Forderung, jeder F&auml;higkeit beliebige Bewertungen zuordnen zu k&ouml;nnen, erfordert neben den beiden 1:n-Beziehungen zur Abbildung der n:m-Beziehung eine weitere Verkn&uuml;pfung zwischen den Feldern FaehigkeitID in den Tabellen tblBewertungen und tblFaehigkeiten.<\/p>\n<p>Zu den beiden zentralen Formularen der Musterl&ouml;sungen zum Erfassen, Bearbeiten und Anzeigen von Daten z&auml;hlen das Formular frmPersonen und das mit diesem Formular verbundene Unterformular frmSkillsSub. Diese beiden Formulare werden im Folgenden vorgestellt.<\/p>\n<h2>Das Formular frmPersonen<\/h2>\n<p>Das Formular frmPersonen (siehe Bild 7) basiert auf der Tabelle tblPersonen. Das Formular zeigt als Einzelformular die Stammdaten einer Person an und dient daneben zur Aufnahme des Unterformulars frmSkillsSub. Geschlossen wird das Formular mit einem Klick auf die Schaltfl&auml;che btnClose im Formularfu&szlig;, die die Ereignisprozedur aus Quellcode 1 ausf&uuml;hrt.<\/p>\n<h3>Auswahl von Datens&auml;tzen<\/h3>\n<p>Jede Datenbankanwendung sollte die M&ouml;glichkeit bieten, schnell einen Datensatz als aktuellen Datensatz auszuw&auml;hlen.<\/p>\n<p><IMG height=\"434\" src=\"..\/fileadmin\/_temp_\/{663D9CAE-5A9A-43BF-BFDF-5C9642654F2A}\/pic007.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 7:  Das Formular frmPersonen<\/span><\/b><\/p>\n<pre>Private Sub btnClose_Click()\r\n    On Error Resume Next\r\n    DoCmd.Close acForm, Me.Name\r\nEnd Sub<\/pre>\n<p><b>Quellcode 1<\/b><\/p>\n<pre>Private Sub btnAuswahl_Click()\r\n    If Me!lstAuswahl.Visible Then\r\n        Me!lstAuswahl.Visible = False\r\n    Else\r\n        DoCmd.RunCommand acCmdSaveRecord\r\n        Me!lstAuswahl.Requery\r\n        Me!lstAuswahl.Visible = True\r\n    End If\r\nEnd Sub<\/pre>\n<p><b>Quellcode 2<\/b><\/p>\n<p>In dieser Musterl&ouml;sung wird das &uuml;ber ein unsichtbares Listenfeld bewerkstelligt, das &uuml;ber eine Schaltfl&auml;che sichtbar geschaltet wird.<\/p>\n<p>Diese Schaltfl&auml;che tr&auml;gt die Beschriftung Auswahl. Nach einem Klick auf die Schaltfl&auml;che kann der Benutzer den gew&uuml;nschten Datensatz ausw&auml;hlen. Daraufhin kann auch das Listenfeld wieder geschlossen werden.<\/p>\n<p>Doch was, wenn es sich der Anwender anders &uuml;berlegt und gar nicht mehr zu einem anderen Datensatz wechseln will In diesem Fall wird das Listenfeld durch einen zweiten Klick auf die Schaltfl&auml;che btnAuswahl wieder unsichtbar gemacht.<\/p>\n<p>Genau das leistet die Ereignisprozedur btnAuswahl_Click (s. Quellcode 2).<\/p>\n<p>Nach Pr&uuml;fung der Sichtbarkeit der Auswahlliste speichert die Prozedur zun&auml;chst den aktuellen Datensatz, fragt mit der Requery-Methode die Datensatzherkunft des Listenfelds erneut ab und schaltet das Listenfeld wieder unsichtbar.<\/p>\n<h3>Praxis-Tipp<\/h3>\n<p>Achten Sie beim Erstellen Ihrer Ereignisprozeduren auf vermeintliche Nebens&auml;chlichkeiten wie das vorherige Speichern des aktuellen Datensatzes oder das erneute Abfragen einer Datensatzherkunft wie bei dem gerade gezeigten Beispiel. <\/p>\n<h3>Praxis-Tipp<\/h3>\n<p><!--30percent--><\/p>\n<p>Ist die Auswahlliste beim Klick auf die Schaltfl&auml;che bereits sichtbar, hat es sich der Anwender anders &uuml;berlegt und das Listenfeld kann direkt wieder unsichtbar geschaltet werden.<\/p>\n<h3>Das Listenfeld lstSuchen<\/h3>\n<p>Das Listenfeld lstSuchen ist als ungebundenes Listenfeld im Formular frmPersonen angeordnet (siehe Bild 8). Als Datensatzherkunft f&uuml;r das Listenfeld wird die SQL-Anweisung aus Quellcode 3 verwendet.<\/p>\n<p>Die notwendigen Eigenschaftseinstellungen f&uuml;r das Listenfeld lstSuchen f&uuml;r den hier vorgestellten Zweck entnehmen Sie Tab. 4.<\/p>\n<p><IMG height=\"248\" src=\"..\/fileadmin\/_temp_\/{663D9CAE-5A9A-43BF-BFDF-5C9642654F2A}\/pic008.png\" width=\"387\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 8:  Das Listenfeld im Formular in der Entwurfsansicht <\/span><\/b><\/p>\n<p><IMG height=\"229\" src=\"..\/fileadmin\/_temp_\/{663D9CAE-5A9A-43BF-BFDF-5C9642654F2A}\/pic009.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 9:  Suche per Listenfeld<\/span><\/b><\/p>\n<pre>SELECT tblPersonen.PersonID, tblPersonen.Nachname, tblPersonen.Vorname, tblPersonen.Firma FROM tblPersonen ORDER BY tblPersonen.Nachname, tblPersonen.Vorname;<\/pre>\n<p><b>Quellcode 3<\/b><\/p>\n<pre>Private Sub lstAuswahl_AfterUpdate()\r\n    Dim rsObj As Object\r\n    Set rsObj = Me.Recordset.Clone\r\n    rsObj.FindFirst \"[PersonID] = \" _        & Str(Me![lstAuswahl])\r\n    Me.Bookmark = rsObj.Bookmark\r\nEnd Sub<\/pre>\n<p><b>Quellcode 4<\/b><\/p>\n<pre>Private Sub lstAuswahl_Click()\r\n    Me!Vorname.SetFocus\r\n    Me!lstAuswahl.Visible = False\r\nEnd Sub<\/pre>\n<p><b>Quellcode 5<\/b><\/p>\n<p>Die Verkn&uuml;pfung des Listenfelds zum Formular erfolgt &uuml;ber die PersonalID, deren Eigenschaft Spaltenbreite hier auf den Wert 0cm eingestellt ist.<\/p>\n<table border=1>\n<tr>\n<td>\n<p><b>Eigenschaft<\/b><\/p>\n<\/td>\n<td>\n<p><b>Einstellung<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Spaltenanzahl<\/p>\n<\/td>\n<td>\n<p>4<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Spalten&uuml;berschriften<\/p>\n<\/td>\n<td>\n<p>Ja<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Spaltenbreiten<\/p>\n<\/td>\n<td>\n<p>0cm;3cm;2,501cm;3cm<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Gebundene Spalte<\/p>\n<\/td>\n<td>\n<p>1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Sichtbar<\/p>\n<\/td>\n<td>\n<p>Nein<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>In Reihenfolge<\/p>\n<\/td>\n<td>\n<p>Nein<\/p>\n<\/td>\n<\/tr>\n<\/table>\n<p><b>Tab. 4: Eigenschaftseinstellungen f&uuml;r das Listenfeld lstSuchen<\/b><\/p>\n<h3>Funktionalit&auml;t der Suche<\/h3>\n<p>Die Funktionalit&auml;t der Suche basiert auf den beiden Eigenschaften Nach Aktualisierung und Beim Klicken des Listenfelds mit den entsprechenden Ereignisprozeduren.<\/p>\n<p>Nach der Auswahl des gew&uuml;nschten Datensatzes im Listenfeld (siehe Bild 9) wird mit Hilfe der FindFirst-Methode und der Bookmark-Eigenschaft die PersonID des Listenfelds im Formular frmPersonen gesucht:<\/p>\n<p>Das Ereignis Beim Klicken des Listenfelds setzt dann noch den Fokus auf ein anderes Steuerelement im Formular und schaltet das Listenfeld wieder unsichtbar (s. Quellcode 4).<\/p>\n<h3>Das Kombinationsfeld Quelle<\/h3>\n<p>Das Kombinationsfeld Quelle dient der Erfassung der Herkunft eines Personenkontakts.<\/p>\n<p>Der Einfachheit halber besitzt dieses Kombinationsfeld als Herkunftstyp den Eintrag Wertliste und als Datensatzherkunft eine Werteliste mit den entsprechenden Angaben (siehe Bild 10). Die Werteliste l&auml;sst sich an dieser Stelle bei Bedarf auch bequem aktualisieren.<\/p>\n<p><IMG height=\"247\" src=\"..\/fileadmin\/_temp_\/{663D9CAE-5A9A-43BF-BFDF-5C9642654F2A}\/pic010.png\" width=\"473\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b>Abb. 10 Das Eigenschaftsfenster der Kombinationsfelds Quelle<\/b><\/p>\n<h2>Das Unterformular frmSkillsSub<\/h2>\n<p><IMG height=\"127\" src=\"..\/fileadmin\/_temp_\/{663D9CAE-5A9A-43BF-BFDF-5C9642654F2A}\/pic011.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 11:  Das Formular frmSkillsSub<\/span><\/b><\/p>\n<pre>Private Sub CboFaehigkeit_NotInList(NewData As _    String, Response As Integer)\r\n    If MsgBox(\"Diese F&auml;higkeit ist neu. M&ouml;chten Sie \" _        &\"sie anlegen\", vbYesNo) = vbYes Then\r\n    Dim db As DAO.Database\r\n    Dim rs As DAO.Recordset\r\n    Set db = CurrentDb\r\n    Set rs = db.OpenRecordset(\"tblFaehigkeiten\", _        DB_OPEN_DYNASET)\r\n        rs.AddNew\r\n        rs!Faehigkeit = NewData\r\n        rs.Update\r\n        Response = acDataErrAdded\r\n        rs.Close\r\n        Set rs = Nothing\r\n        Set db = Nothing\r\n    Else\r\n        Response = acDataErrContinue\r\n        CboFaehigkeit.Undo\r\n    End If\r\nEnd Sub<\/pre>\n<p><b>Quellcode 6<\/b><\/p>\n<p>Das Unterformular frmSkillsSub (siehe Bild 11) zeigt in den drei Kombinationsfeldern CboFaehigkeit, CboBewertung und CboEindruck die zu den Skills einer Person geh&ouml;renden relevanten Angaben an. Weiterhin ist im Formular noch ein Memo-Feld zur Erfassung von Bemerkungen vorhanden.<\/p>\n<p>Die Verkn&uuml;pfung des Unterformulars zum Hauptformular frmPersonen erfolgt &uuml;ber das Feld PersonID.<\/p>\n<p>Als Datensatzherkunft f&uuml;r das Unterformular dient die Abfrage qryfrmSkillsSub.<\/p>\n<h3>Das Kombinationsfeld CboFaehigkeit<\/h3>\n<p>Das Kombinationsfeld CboFaehigkeit hat als Datenherkunft eine SQL-Anweisung, die als Resultatset die Felder FaehigkeitID und Faehigkeit der Tabelle tblFaehigkeiten zur&uuml;ckgibt:<\/p>\n<pre>SELECT tblFaehigkeiten.FaehigkeitID, tblFaehigkeiten.FaehigkeitFROM tblFaehigkeiten; <\/pre>\n<p>Das Kombinationsfeld CboFaehigkeit ist au&szlig;erdem so ausgelegt, dass Sie mit ihm neue Datens&auml;tze anlegen k&ouml;nnen.<\/p>\n<p>Dies erm&ouml;glicht eine Ereignisprozedur, die durch das Ereignis Bei Nicht in Liste oder  NotInList ausgel&ouml;st wird.<\/p>\n<p>Dieses Ereignis tritt dann ein, wenn ein nicht vorhandener Wert in ein Kombinationsfeld eingegeben wird und gleichzeitig die Eigenschaft Nur Listeneintr&auml;ge des Kombinationsfelds auf Ja eingestellt ist (s. Quellcode 6).<\/p>\n<h3>Hinweis<\/h3>\n<p>Die beiden anderen Kombinationsfelder CboBewertung und CboEindruck des Unterformulars frmSkillsSub erlauben ebenfalls die Anlage neuer Datens&auml;tze f&uuml;r die Bewertung von F&auml;higkeiten. <\/p>\n<pre>Private Sub Form_Error(DataErr As Integer, _    Response As Integer)\r\n    If DataErr = 3022 Then\r\n        MsgBox (\"Jeder Person kann eine F&auml;higkeit \" _            & \"maximal einmal zugeordnet werden.\" _            & vbCrLf & \"Die mehrdeutigen neu \" _            & \"angelegten Daten werden gel&ouml;scht!\"), _\r\n            vbInformation, \"Eingabe&uuml;berpr&uuml;fung\"\r\n        Me.Undo\r\n        Me!CboFaehigkeit.SetFocus\r\n        Response = acDataErrContinue\r\n    End If\r\nEnd Sub<\/pre>\n<p><b>Quellcode 7<\/b><\/p>\n<h3>Das Kombinationsfeld CboBewertung<\/h3>\n<p>Die Zuordnung von vollkommen unterschiedlichen und individuell angepassten Bewertungen pro F&auml;higkeit wird &uuml;ber das Kombinationsfeld CboBewertung realisiert.<\/p>\n<p>Hierbei ist zu ber&uuml;cksichtigen, dass in dem Kombinationsfeld nur die zu einer bestimmten F&auml;higkeit passenden oder geh&ouml;renden Bewertungen angezeigt werden d&uuml;rfen. Dies erledigt ein entsprechendes Kriterium in der SQL-Anweisung der Datensatzherkunft (siehe Bild 12).<\/p>\n<p><IMG height=\"305\" src=\"..\/fileadmin\/_temp_\/{663D9CAE-5A9A-43BF-BFDF-5C9642654F2A}\/pic012.png\" width=\"499\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 12:  SQL-Anweisung im Abfrage-Generator<\/span><\/b><\/p>\n<p>Damit der im Kombinationsfeld angezeigte Datenbestand pro Skill aktualisiert wird, muss die folgende Codezeile im Beim Hingehen- oder Enter-Ereignis ausgef&uuml;hrt werden:<\/p>\n<pre>Me!CboBewertung.Requery<\/pre>\n<h3>Das Kombinationsfeld CboEindruck<\/h3>\n<p>Das Kombinationsfeld CboEindruck dient zur Auswahl bzw. Anlage f&uuml;r individuelle Eindr&uuml;cke, die ebenfalls in der Tabelle tblBewertungen gespeichert werden.<\/p>\n<p>Auch die Datensatzherkunft dieses Kombinationsfelds muss entsprechend der FaehigkeitID eingeschr&auml;nkt werden. Hierbei kommt die gleiche Technik zum Einsatz wie beim Kombinationsfeld CboBewertung.<\/p>\n<h2>Die Eingabe&uuml;berpr&uuml;fung<\/h2>\n<p>Das Datenmodell stellt sicher, dass jeder Person eine F&auml;higkeit nur ein einziges Mal zugeordnet werden kann. Das Standard-Verhalten von Access bei der Anlage eines solchen Datensatzes kann aufgrund der unverst&auml;ndlichen Fehlermeldung f&uuml;r den Anwender verwirrend sein.<\/p>\n<p>Deshalb ist an dieser Stelle die Erstellung einer eigenen Fehlermeldung sinnvoll, die das Bei Fehler- oder On Error-Ereignis des Formulars auswertet.<\/p>\n<p>Konkret geht es hier darum, den Laufzeitfehler 3022 der Jet-Engine &#8211; Mehrfach vorkommende Werte in Index und Prim&auml;rschl&uuml;ssel &#8211; abzufangen.<\/p>\n<p>Dies erledigt eine Ereignisprozedur, die eine Fehlermeldung anzeigt, die Daten&auml;nderung r&uuml;ckg&auml;ngig macht und vor allem auch die standardm&auml;&szlig;ige Fehlermeldung von Access unterdr&uuml;ckt (s. Quellcode 7).<\/p>\n<p>Zu der hier vorgestellten Suchfunktion geh&ouml;ren zwei Komponenten: Ein Suchformular &#8211; das Formular frmSuche &#8211; und ein Formular zur Anzeige des Suchergebnisses, das Formular frmSuchErgebnis.<\/p>\n<p><IMG height=\"230\" src=\"..\/fileadmin\/_temp_\/{663D9CAE-5A9A-43BF-BFDF-5C9642654F2A}\/pic013.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 13:  Das Formular frmSuche<\/span><\/b><\/p>\n<p><IMG height=\"223\" src=\"..\/fileadmin\/_temp_\/{663D9CAE-5A9A-43BF-BFDF-5C9642654F2A}\/pic014.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 14:  Die Abfrage qryFeldliste in der Entwurfsansicht<\/span><\/b><\/p>\n<h2>Die Vorgehensweise<\/h2>\n<p>Die Methode der Suche, die Sie in dieser Musterl&ouml;sung vorfinden, wird auch als QbF bezeichnet. Diese Abk&uuml;rzung steht f&uuml;r Query by Form und bedeutet Folgendes:<\/p>\n<li>Der Anwender gibt in ein Formular Suchkriterien, Vergleichsoperatoren und logische Operatoren ein bzw. w&auml;hlt diese aus.<\/li>\n<li>Diese Benutzereingaben werden zu einer entsprechenden SQL-Anweisung umgesetzt.<\/li>\n<li>Diese SQL-Anweisung wird entweder als Filter oder als eine Datenherkunft f&uuml;r ein Anzeigeformular verwendet.<\/li>\n<h2>Das Formular frmSuche<\/h2>\n<p>Im Formular frmSuche (siehe Bild 13) finden Sie alle eben beschriebenen Elemente vor:<\/p>\n<p>Das linke Kombinationsfeld Feldname zeigt die zur Verf&uuml;gung stehenden Suchfelder an. Die Datensatzherkunft dieses Kombinationsfelds ist die Abfrage qryFeldliste, deren Entwurfsansicht Sie in Bild 14 erkennen k&ouml;nnen.<\/p>\n<p>Im Kombinationsfeld Vergleichslogik w&auml;hlen Sie die gew&uuml;nschte Vergleichslogik f&uuml;r Ihre Suche aus. Die von Access her bekannten Vergleichsoperatoren sind bei dieser L&ouml;sung in unsere normale Alltagssprache &uuml;bersetzt worden, um den Anwendern die Bedienung zu erleichtern. Anstelle des Zeichens &lt; kann der Anwender beispielsweise die Worte ist kleiner als ausw&auml;hlen. Schlie&szlig;lich ist nicht jeder Anwender mit den doch oft recht kryptischen Zeichenfolgen der Vergleichoperatoren vertraut.<\/p>\n<p>In das dritte Kombinationsfeld Suchbegriff geben Sie den Begriff ein, nach dem Sie suchen wollen. Bei Bedarf wird ein weiteres Feld Suchbegriff eingeblendet, damit auch Sucheingaben wie beispielsweise Zwischen 41999 und 42999 m&ouml;glich sind. Das Ganze ist abh&auml;ngig vom ausgew&auml;hlten Suchoperator.<\/p>\n<p>Sie k&ouml;nnen das ausgew&auml;hlte Suchfeld mit insgesamt vier weiteren Feldern &uuml;ber AND bzw. OR verkn&uuml;pfen. Klicken Sie dazu einfach die entsprechende Option auf der linken Seite des Formulars an.<\/p>\n<p>Nach der Eingabe aller Ihrer Angaben starten Sie die Suche mit einem Klick auf die Schaltfl&auml;che Suchen unten im Formular.<\/p>\n<p>Die gem&auml;&szlig; Ihren Suchbedingungen zusammengesetzte SQL-Anweisung dient dabei als Filter f&uuml;r die Datensatzherkunft eines Anzeigeformulars.<\/p>\n<h3>Hinweis<\/h3>\n<p>Eine genauere Beschreibung dieser Suchmethode finden Sie im Beitrag Datens&auml;tze suchen per Formular im Update-Heft 2\/2002 von Access im Unternehmen, der sich auf der Heft-CD befindet. <\/p>\n<p><IMG height=\"185\" src=\"..\/fileadmin\/_temp_\/{663D9CAE-5A9A-43BF-BFDF-5C9642654F2A}\/pic015.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 15:  Das Formular frmSuchErgebnis<\/span><\/b><\/p>\n<h3>Hinweis<\/h3>\n<p>Die Funktionalit&auml;t der Schaltfl&auml;chen unten im Formular lernen Sie im folgenden Abschnitt Ablauf eines Suchvorgangs genau kennen. <\/p>\n<h2>Das Formular frmSuchErgebnis<\/h2>\n<p>Das Formular frmSuchErgebnis (siehe Bild 15) dient &#8211; mit einer entsprechend dem Suchergebnis gefilterten Datensatzherkunft &#8211; zur Anzeige des Suchergebnisses.<\/p>\n<p>F&uuml;r die Verwendung als Anzeigeformular sollten bestimmte Formulareigenschaften entsprechend eingestellt sein. Entnehmen Sie die Eigenschaften und ihre Werte Tab. 5.<\/p>\n<table border=1>\n<tr>\n<td>\n<p><b>Eigenschaft<\/b><\/p>\n<\/td>\n<td>\n<p><b>Wert<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Standardansicht<\/p>\n<\/td>\n<td>\n<p>Endlosformular<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Bearbeiten zulassen<\/p>\n<\/td>\n<td>\n<p>Nein<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>L&ouml;schen zulassen<\/p>\n<\/td>\n<td>\n<p>Nein<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Anf&uuml;gen zulassen<\/p>\n<\/td>\n<td>\n<p>Nein<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Daten eingeben<\/p>\n<\/td>\n<td>\n<p>Nein<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Datensatzmarkierer<\/p>\n<\/td>\n<td>\n<p>Nein<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Navigationsschaltfl&auml;chen<\/p>\n<\/td>\n<td>\n<p>Nein<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Rahmenart<\/p>\n<\/td>\n<td>\n<p>Dialog<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Mit Systemfeldmen&uuml;<\/p>\n<\/td>\n<td>\n<p>Nein<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>MinMaxSchaltfl&auml;chen<\/p>\n<\/td>\n<td>\n<p>Keine<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Schlie&szlig;en Schaltfl&auml;che <\/p>\n<\/td>\n<td>\n<p>Nein<\/p>\n<\/td>\n<\/tr>\n<\/table>\n<p><b>Tab. 5: Eigenschaften des Formulars frmSuchErgebnis<\/b><\/p>\n<h3>Hinweis<\/h3>\n<p>Die Funktionalit&auml;t der Schaltfl&auml;chen rechts bzw. unten im Formular lernen Sie im folgenden Abschnitt Ablauf eines Suchvorgangs genau kennen. <\/p>\n<p>Diese Beschreibung des Ablaufs eines Suchvorgangs dient gleichzeitig auch zur Erkl&auml;rung der dazu notwendigen Formularsteuerung.<\/p>\n<p>Die Funktionalit&auml;t dieser Formularsteuerung finden Sie in den Ereignisprozeduren der betreffenden Schaltfl&auml;chen in den Formularen frmPersonen, frmSuche und frmSuchErgebnis.<\/p>\n<h2>Start einer Suche<\/h2>\n<p>Ausgangspunkt einer Suche ist die Schaltfl&auml;che btnSearch (Beschriftung: Suche) im Formular frmPersonen.<\/p>\n<h3>Die Schaltfl&auml;che Suche (frmPersonen)<\/h3>\n<p>Beim Klick auf die Schaltfl&auml;che btnSearch wird die folgende Ereignisprozedur ausgef&uuml;hrt, die zun&auml;chst einmal eventuelle Datensatz&auml;nderungen speichert (s. Quellcode 8).<\/p>\n<p>Danach wird das aufrufende Formular frmPersonen unsichtbar geschaltet, das Formular frmSuchErgebnis versteckt &#8211; also unsichtbar &#8211; ge&ouml;ffnet und das Formular frmSuche zur Eingabe der Suchbedingungen ebenfalls ge&ouml;ffnet.<\/p>\n<h2>Suchbedingungen zusammenstellen<\/h2>\n<p>Im Formular frmSuche hat der Anwender drei M&ouml;glichkeiten, die im Folgenden beschrieben werden.<\/p>\n<h3>Abbruch der Suche<\/h3>\n<p>Ein Klick auf die Schaltfl&auml;che Abbrechen im Formular frmSuche schlie&szlig;t das Formular frmSuche, schaltet dann das Formular frmPersonen wieder sichtbar und schlie&szlig;t das nicht ben&ouml;tigte Formular frmSuchErgebnis ebenfalls wieder.<\/p>\n<h3>Suche ohne Suchkriterien<\/h3>\n<p>Obwohl eine Suche ohne Kriterien nat&uuml;rlich keinen Sinn macht, ist ein solcher Ablauf durchaus m&ouml;glich.<\/p>\n<pre>Private Sub btnSearch_Click()\r\n    DoCmd.RunCommand acCmdSaveRecord\r\n    Me.Visible = False\r\n    DoCmd.OpenForm \"frmSuchErgebnis\", , , , _        acFormReadOnly, acHidden\r\n    DoCmd.OpenForm \"frmSuche\"\r\nEnd Sub<\/pre>\n<p><b>Quellcode 8<\/b><\/p>\n<p>In diesem Fall wird eine entsprechende Meldung angezeigt. Bei einem Klick auf die Schaltfl&auml;che Ja wird das Formular frmSuchErgebnis mit allen Datens&auml;tzen angezeigt. Bei einem Klick auf die Schaltfl&auml;che Nein wird lediglich das Meldungsfenster wieder geschlossen und der Anwender hat weiterhin das Suchformular auf dem Bildschirm vor sich.<\/p>\n<h3>Suche mit Suchkriterien<\/h3>\n<p>Im Normalfall stellt der Anwender die gew&uuml;nschten Suchbedingungen zusammen und klickt anschlie&szlig;end auf die Schaltfl&auml;che Suchen.<\/p>\n<p>Der dabei ausgef&uuml;hrte VBA-Code setzt das Formular frmSuche auf unsichtbar, das Formular frmSuchErgebnis auf sichtbar und filtert dessen Datenherkunft gem&auml;&szlig; den Suchbedingungen.<\/p>\n<h2>Das Suchergebnis<\/h2>\n<p>Das Suchergebnis im Formular frmSuchErgebnis bietet dem Anwender folgende vier M&ouml;glichkeiten an, die durch die entsprechenden Schaltfl&auml;chen im Formular repr&auml;sentiert werden:<\/p>\n<li>Die Schaltfl&auml;che Detail zeigt den betreffenden Datensatz im Formular frmPersonen an.<\/li>\n<li>Die Schaltfl&auml;che Schlie&szlig;en beendet den Suchvorgang.<\/li>\n<li>Mit Hilfe der Schaltfl&auml;che Suchformular kann der Anwender zum Formular frmSuche zur&uuml;ckzukehren, um eine neue Suche zu erstellen.<\/li>\n<li>Mit Hilfe der Schaltfl&auml;che Telefonliste kann er eine Telefonliste der Datens&auml;tze des Suchergebnisses drucken.<\/li>\n<p>Die folgenden Abschnitte beschreiben diese Funktionen im Detail.<\/p>\n<h3>Detailangaben zu einem Suchergebnis<\/h3>\n<p>Die Detailangaben zu einem Suchergebnis stellen den kompletten Datensatz dar, also Angaben, die unter Umst&auml;nden von Interesse sein k&ouml;nnen.<\/p>\n<p>Die Ereignisprozedur btnDetailsClick schaltet das aufrufende Formular frmSuchErgebnis unsichtbar und das Formular frmPersonen sichtbar. Au&szlig;erdem wird die im Formular frmPersonen standardm&auml;&szlig;ig unsichtbar eingestellte Schaltfl&auml;che btnBack sichtbar geschaltet und der gew&uuml;nschte Datensatz angesprungen (s. Quellcode 9).<\/p>\n<h3>Zur&uuml;ck zum Suchergebnis<\/h3>\n<p>Die Schaltfl&auml;che btnBack im Formular frmPersonen (siehe Bild 16) erm&ouml;glicht dem Anwender die R&uuml;ckkehr zum Suchergebnis, um dort gegebenenfalls andere Ergebnisse genauer zu betrachten (s. Quellcode 10).<\/p>\n<pre>Private Sub btnDetails_Click()\r\n    Me.Visible = False\r\n    Forms!frmPersonen.Visible = True\r\n    Forms!frmPersonen!btnBack.Visible = True\r\n    Forms!frmPersonen!PersonID.SetFocus\r\n    DoCmd.FindRecord Me![PersonID], acEntire, False, acSearchAll, , acCurrent, True\r\nEnd Sub<\/pre>\n<p><b>Quellcode 9<\/b><\/p>\n<pre>Private Sub btnBack_Click()\r\n    DoCmd.GoToControl \"btnClose\"\r\n    Me!btnBack.Visible = False\r\n    Me.Visible = False\r\n    Forms!frmSuchErgebnis.Visible = True\r\nEnd Sub<\/pre>\n<p><b>Quellcode 10<\/b><\/p>\n<pre>Private Sub btnClose_Click()\r\n    On Error Resume Next\r\n    If IsLoaded(\"frmPersonen\") Then\r\n        Forms(\"frmPersonen\").Visible = True\r\n        DoCmd.Close acForm, Me.Name\r\n    Else\r\n        DoCmd.Close acForm, Me.Name\r\n    End If\r\nEnd Sub<\/pre>\n<p><b>Quellcode 11<\/b><\/p>\n<p><IMG height=\"433\" src=\"..\/fileadmin\/_temp_\/{663D9CAE-5A9A-43BF-BFDF-5C9642654F2A}\/pic016.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 16:  Zur&uuml;ck zum Suchergebnis<\/span><\/b><\/p>\n<p>Bevor die Schaltfl&auml;che btnBack, die ja in diesem Moment den Fokus besitzt, unsichtbar geschaltet werden kann, muss zu irgendeinem anderen Steuerelement gewechselt werden. Ein Steuerelement, das den Fokus besitzt, kann n&auml;mlich nicht unsichtbar geschaltet werden. Diese Aufgabe erledigt die DoCmd.GoToControl-Methode.<\/p>\n<h3>Suchvorgang abschlie&szlig;en<\/h3>\n<p>Ein Klick auf die Schaltfl&auml;che btnClose im Formular frmSuchErgebnis beendet einen Suchvorgang, indem das Formular frmSuchErgebnis geschlossen und das Formular frmPersonen &#8211; sofern geladen &#8211; wieder sichtbar geschaltet wird (s. Quellcode 11).<\/p>\n<h3>R&uuml;ckkehr zum Suchformular<\/h3>\n<p>Eine R&uuml;ckkehr zum Suchformular vom Formular frmSuchErgebnis aus ist erforderlich, wenn eine Suche kein zufrieden stellendes Ergebnis liefert und deshalb mit neuen oder ver&auml;nderten Suchkriterien wiederholt werden soll.<\/p>\n<p>Die zu diesem Zweck ausgef&uuml;hrte Ereignisprozedur ist trivial: Sie schaltet das Formular frmSuchErgebnis unsichtbar und das Formular frmSuche sichtbar.<\/p>\n<h2>Erneute Suche<\/h2>\n<p>Bei einer erneuten Suche hat der Anwender zwei M&ouml;glichkeiten: Er kann entweder die bestehenden Suchkriterien &auml;ndern oder sie mit einem Klick auf die Schaltfl&auml;che Reset im Formular frmSuche (siehe Bild 17) auf einen Schlag entfernen und erneut zusammenstellen. <\/p>\n<p>Der weitere Ablauf der Suche ist genau so, wie bereits beschrieben.<\/p>\n<p><IMG height=\"230\" src=\"..\/fileadmin\/_temp_\/{663D9CAE-5A9A-43BF-BFDF-5C9642654F2A}\/pic017.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 17:  Entfernung bestehender Suchkriterien im Formular frmSuche<\/span><\/b><\/p>\n<p><IMG height=\"389\" src=\"..\/fileadmin\/_temp_\/{663D9CAE-5A9A-43BF-BFDF-5C9642654F2A}\/pic018.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 18:  Der Bericht repSkills in der Vorschau<\/span><\/b><\/p>\n<p>Die Skill-Verwaltung enth&auml;lt die beiden Berichte repSkills und repTelefonliste zum Ausdruck eines Profils und einer Telefonliste. Die beiden Berichte werden im Folgenden beschrieben.<\/p>\n<h2>Der Bericht repSkills<\/h2>\n<p>Der Bericht repSkills (siehe Bild 18) gibt alle relevanten Angaben des aktuellen Datensatzes des Formulars frmPersonen in Form eines Profils aus. Seine Datenherkunft ist die Tabelle tblPersonen.<\/p>\n<p>Der Aufruf erfolgt &uuml;ber die Schaltfl&auml;che btnDruck, die mit der folgenden Codezeile dem Bericht den aktuellen Datensatz des Formulars als &ouml;ffnungsargument &uuml;bergibt und diesen in der Vorschau anzeigt:<\/p>\n<pre>DoCmd.OpenReport \"repSkills\", acViewPreview, , \"PersonID = \" & Me.PersonID<\/pre>\n<h3>Praxis-Tipp<\/h3>\n<p>Achten Sie bei der Erstellung eines solchen Berichts darauf, dass neben den Feldern, die l&auml;ngere Texte enthalten k&ouml;nnen, auch f&uuml;r den Detailbereich des Berichts die Eigenschaft Vergr&ouml;&szlig;erbar auf den Wert Ja eingestellt ist. <\/p>\n<h2>Der Unterbericht repSkillsSub<\/h2>\n<p>Der Unterbericht repSkillsSub fasst die zu einer Person geh&ouml;renden F&auml;higkeiten, Bewertungen und Eindr&uuml;cke zusammen. Die Verkn&uuml;pfung zum Hauptbericht erfolgt &uuml;ber das Feld PersonID.<\/p>\n<h3>Die Datenherkunft<\/h3>\n<p>Der Unterbericht repSkillsSub basiert auf der Abfrage qryrepSkillsSub (siehe Bild 19). Die Erstellung dieser Abfrage erfordert eine kleine Besonderheit, da die Werte f&uuml;r die Felder Bewertung und Eindruck in der gleichen Tabelle gespeichert sind.<\/p>\n<p>Deswegen muss die Tabelle tblBewertungen zweimal in den Abfrageentwurf gezogen und mit der Tabelle tblPersonenUndFaehigkeiten verkn&uuml;pft werden. Access &auml;ndert dabei automatisch den Tabellennamen in tblBewertungen_1.<\/p>\n<p><IMG height=\"254\" src=\"..\/fileadmin\/_temp_\/{663D9CAE-5A9A-43BF-BFDF-5C9642654F2A}\/pic019.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 19:  Die Abfrage qryrepSkillsSub in der Entwurfsansicht <\/span><\/b><\/p>\n<p><IMG height=\"255\" src=\"..\/fileadmin\/_temp_\/{663D9CAE-5A9A-43BF-BFDF-5C9642654F2A}\/pic020.png\" width=\"416\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 20:  Das Dialogfenster Verkn&uuml;pfungseigenschaften<\/span><\/b><\/p>\n<p>Als Verkn&uuml;pfungstyp muss bei dieser Verkn&uuml;pfung ein Right-Join eingestellt werden, damit die Abfrage auch korrekte Ergebnisse zur&uuml;ckgibt (siehe Bild 20).<\/p>\n<h2>6.3 Der Bericht repTelefonliste<\/h2>\n<p><IMG height=\"187\" src=\"..\/fileadmin\/_temp_\/{663D9CAE-5A9A-43BF-BFDF-5C9642654F2A}\/pic021.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 21:  Der Bericht repTelefonliste<\/span><\/b><\/p>\n<p>Der Bericht repTelefonliste (siehe Bild 21) druckt die Telefonliste zu einem Suchergebnis aus.<\/p>\n<p>Damit dies auch in jedem Fall ohne Probleme funktioniert, besitzen das Formular frmSuchErgebnis und der Bericht repTelefonliste die gleiche Abfrage namens qrySearchSource als Datenherkunft.<\/p>\n<p>Der Aufruf erfolgt folgerichtig auch &uuml;ber eine Schaltfl&auml;che aus dem Formular frmSuchErgebnis heraus.<\/p>\n<p>Die Ereignisprozedur der Schaltfl&auml;che btnTelefonliste (s. Quellcode 12) &uuml;bergibt dabei den aktuellen Filter des Formulars als &ouml;ffnungsargument an den Bericht repTelefonliste.<\/p>\n<pre>Private Sub btnTelefonliste_Click()\r\n    DoCmd.OpenReport _        \"repTelefonliste\", _        acViewPreview, , Me.Filter\r\nEnd Sub<\/pre>\n<p><b>Quellcode 12<\/b><\/p>\n<p>Die vorliegende Musterl&ouml;sung erf&uuml;llt alle zu Beginn dieses Beitrags aufgestellten Anforderungen an eine Skill-Verwaltung. Das sind im Wesentlichen:<\/p>\n<li>Erfassung von F&auml;higkeiten und Zuordnung beliebiger, individueller Bewertungen.<\/li>\n<li>Flexible Suche &uuml;ber mehrere Felder mit beliebigen Vergleichsoperatoren und AND- bzw. OR-Verkn&uuml;pfung.<\/li>\n<li>Ausgabe aller wichtigen Informationen in Berichtsform.<\/li>\n<p>Als Erweiterung dieser Musterl&ouml;sung sind folgende Punkte denkbar:<\/p>\n<li>Herstellung einer Verbindung zwischen Projekten und Personen.<\/li>\n<li>Vollst&auml;ndige Integration der Skill-Verwaltung in ein Projektmanagement.<\/li>\n","protected":false},"excerpt":{"rendered":"<p>Skills ist die &#8222;neudeutsche&#8220; Bezeichnung f&uuml;r F&auml;higkeiten oder Kompetenzen von Personen. Dieser Beg-riff ist vor allem bei freiberuflichen IT-Kr&auml;ften oder Freelancern gang und g&auml;be, die f&uuml;r unter-schiedliche Unternehmen arbeiten und dort aufgrund ihrer durch die Skills repr&auml;sentierten F&auml;higkeiten f&uuml;r spezielle Aufgaben herangezogen werden. Der Einsatzbereich der hier vorgestellten Da-tenbankanwendung ist die Verwaltung von Personen und deren Skills, um zur rechten Zeit einen geeigneten Mitarbeiter zu finden.<\/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":[66022003,662003,44000027],"tags":[],"class_list":["post-55000105","post","type-post","status-publish","format-standard","hentry","category-66022003","category-662003","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>Skills mit Access verwalten - 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\/Skills_mit_Access_verwalten\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Skills mit Access verwalten\" \/>\n<meta property=\"og:description\" content=\"Skills ist die &quot;neudeutsche&quot; Bezeichnung f&uuml;r F&auml;higkeiten oder Kompetenzen von Personen. Dieser Beg-riff ist vor allem bei freiberuflichen IT-Kr&auml;ften oder Freelancern gang und g&auml;be, die f&uuml;r unter-schiedliche Unternehmen arbeiten und dort aufgrund ihrer durch die Skills repr&auml;sentierten F&auml;higkeiten f&uuml;r spezielle Aufgaben herangezogen werden. Der Einsatzbereich der hier vorgestellten Da-tenbankanwendung ist die Verwaltung von Personen und deren Skills, um zur rechten Zeit einen geeigneten Mitarbeiter zu finden.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Skills_mit_Access_verwalten\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-06T15:17:25+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg02.met.vgwort.de\/na\/4d0d608b5df54f5083a6bc360d82d4db\" \/>\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=\"21\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Skills_mit_Access_verwalten\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Skills_mit_Access_verwalten\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Skills mit Access verwalten\",\"datePublished\":\"2020-05-06T15:17:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Skills_mit_Access_verwalten\\\/\"},\"wordCount\":3903,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Skills_mit_Access_verwalten\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg02.met.vgwort.de\\\/na\\\/4d0d608b5df54f5083a6bc360d82d4db\",\"articleSection\":[\"2\\\/2003\",\"2003\",\"L\u00f6sungen\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Skills_mit_Access_verwalten\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Skills_mit_Access_verwalten\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Skills_mit_Access_verwalten\\\/\",\"name\":\"Skills mit Access verwalten - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Skills_mit_Access_verwalten\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Skills_mit_Access_verwalten\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg02.met.vgwort.de\\\/na\\\/4d0d608b5df54f5083a6bc360d82d4db\",\"datePublished\":\"2020-05-06T15:17:25+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Skills_mit_Access_verwalten\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Skills_mit_Access_verwalten\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Skills_mit_Access_verwalten\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg02.met.vgwort.de\\\/na\\\/4d0d608b5df54f5083a6bc360d82d4db\",\"contentUrl\":\"http:\\\/\\\/vg02.met.vgwort.de\\\/na\\\/4d0d608b5df54f5083a6bc360d82d4db\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Skills_mit_Access_verwalten\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Skills mit Access verwalten\"}]},{\"@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":"Skills mit Access verwalten - 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\/Skills_mit_Access_verwalten\/","og_locale":"de_DE","og_type":"article","og_title":"Skills mit Access verwalten","og_description":"Skills ist die \"neudeutsche\" Bezeichnung f&uuml;r F&auml;higkeiten oder Kompetenzen von Personen. Dieser Beg-riff ist vor allem bei freiberuflichen IT-Kr&auml;ften oder Freelancern gang und g&auml;be, die f&uuml;r unter-schiedliche Unternehmen arbeiten und dort aufgrund ihrer durch die Skills repr&auml;sentierten F&auml;higkeiten f&uuml;r spezielle Aufgaben herangezogen werden. Der Einsatzbereich der hier vorgestellten Da-tenbankanwendung ist die Verwaltung von Personen und deren Skills, um zur rechten Zeit einen geeigneten Mitarbeiter zu finden.","og_url":"https:\/\/access-im-unternehmen.de\/Skills_mit_Access_verwalten\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-06T15:17:25+00:00","og_image":[{"url":"http:\/\/vg02.met.vgwort.de\/na\/4d0d608b5df54f5083a6bc360d82d4db","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"21\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Skills_mit_Access_verwalten\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Skills_mit_Access_verwalten\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Skills mit Access verwalten","datePublished":"2020-05-06T15:17:25+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Skills_mit_Access_verwalten\/"},"wordCount":3903,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Skills_mit_Access_verwalten\/#primaryimage"},"thumbnailUrl":"http:\/\/vg02.met.vgwort.de\/na\/4d0d608b5df54f5083a6bc360d82d4db","articleSection":["2\/2003","2003","L\u00f6sungen"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Skills_mit_Access_verwalten\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Skills_mit_Access_verwalten\/","url":"https:\/\/access-im-unternehmen.de\/Skills_mit_Access_verwalten\/","name":"Skills mit Access verwalten - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Skills_mit_Access_verwalten\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Skills_mit_Access_verwalten\/#primaryimage"},"thumbnailUrl":"http:\/\/vg02.met.vgwort.de\/na\/4d0d608b5df54f5083a6bc360d82d4db","datePublished":"2020-05-06T15:17:25+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Skills_mit_Access_verwalten\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Skills_mit_Access_verwalten\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Skills_mit_Access_verwalten\/#primaryimage","url":"http:\/\/vg02.met.vgwort.de\/na\/4d0d608b5df54f5083a6bc360d82d4db","contentUrl":"http:\/\/vg02.met.vgwort.de\/na\/4d0d608b5df54f5083a6bc360d82d4db"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Skills_mit_Access_verwalten\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Skills mit Access verwalten"}]},{"@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\/55000105","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=55000105"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000105\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000105"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000105"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000105"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}