{"id":55000244,"date":"2004-12-01T00:00:00","date_gmt":"2020-05-06T15:17:53","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=244"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Fehlerverwaltung_mit_OnlineKomponente","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Fehlerverwaltung_mit_OnlineKomponente\/","title":{"rendered":"Fehlerverwaltung mit Online-Komponente"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg08.met.vgwort.de\/na\/b3a69c97052342fd9694d0f70909b1ba\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Andr&eacute; Minhorst, Duisburg<\/b><\/p>\n<p><b>Wenn Sie eine Anwendung nicht gerade f&uuml;r sich selbst oder Ihren Schreibtischnachbarn (sofern Sie einen haben) erstellt haben, sondern f&uuml;r &ouml;rtlich weiter entfernte Personen, wird das Beheben von Fehlern schnell zur Qual: Es besteht dann aus einer Mischung aus Telefonaten und per E-Mail verschickten Screenshots mit Fehlermeldungen &#8211; und das auch nur, wenn der jeweilige Anwender ausreichend versiert ist. Zumindest f&uuml;r Laufzeitfehler k&ouml;nnen Sie hier einiges an Zeit und M&uuml;he einsparen &#8211; durch die richtige Automatisierung.<\/b><\/p>\n<p>Wenn Sie gelegentlich selbst entwickelte Anwendungen verteilen und keine Lust haben, die Fehlermeldungen jeder Kopie der Anwendung separat aufzunehmen und telefonisch oder auf &auml;hnlich zeitraubende Art mit dem Benutzer abzuhandeln, m&uuml;ssen Sie diesen Vorgang so weit wie m&ouml;glich automatisieren. Damit sparen Sie nicht nur sich selbst, sondern auch dem Benutzer Aufwand und &auml;rger &#8211; vor allem wenn dieser einfach nur mit Ihrer Anwendung arbeiten m&ouml;chte und gar nichts mit dem Erstellen von Screenshots von Fehlermeldungen und &auml;hnlichen T&auml;tigkeiten zu tun haben m&ouml;chte.<\/p>\n<p>Das grundlegende Handwerkszeug dazu haben Sie m&ouml;glicherweise bereits vor der Lekt&uuml;re dieses Beitrags kennen gelernt: Es steckt in den Beitr&auml;gen Mails versenden ohne Outlook (4\/2004), Fehlerdokumentation (5\/2004) und Mail abrufen mit Access und POP3 in der aktuellen Ausgabe von Access im Unternehmen.<\/p>\n<p>Im vorliegenden Beitrag erfahren Sie, wie Sie das Know-how dieser drei Beitr&auml;ge verbinden und eine L&ouml;sung erstellen, die dem Anwender und dem Entwickler m&ouml;glichst wenig Aufwand bei der Abhandlung auftretender Fehler bereitet.<\/p>\n<p>Damit Sie einen Eindruck von der Funktionsweise der Fehlerverwaltung gewinnen, spielen wir einfach ein kleines Beispiel durch. Damit Sie alle nachfolgend beschriebenen Schritte nachvollziehen k&ouml;nnen, finden Sie auf der beiliegenden CD vier Beispieldatenbanken zu diesem Beitrag: Die eigentliche Fehlerverwaltung verbirgt sich hinter dem Dateinamen FehlerverwaltungXX.mdb und die Anwendung, die den Fehler ausl&ouml;st, hei&szlig;t Fehlerverwaltung_ClientXX.mdb (wobei &#8222;XX&#8220; durch &#8222;97&#8220; f&uuml;r Access 97 und &#8222;00&#8220; f&uuml;r Access 2000 und h&ouml;her ersetzt wird.<\/p>\n<h2>Fehlermeldung versenden<\/h2>\n<p>Beginnen wir mit der fehlerhaften Datenbank: Diese enth&auml;lt ein Formular namens frmBeispielfehler mit der Schaltfl&auml;che Fehler erzeugen (siehe Bild 1).<\/p>\n<p><IMG height=\"235\" src=\"..\/fileadmin\/_temp_\/{CF3DC94F-DCA5-4D7B-8991-60B5B5AC878C}\/pic001.png\" width=\"327\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 1:  Fehler per Mausklick<\/span><\/b><\/p>\n<pre>Public Function FehlerhafteFunktion() As Long\r\n    On Error GoTo FehlerhafteFunktion_Err\r\n    FehlerhafteFunktion = 1 \/ 0\r\n   ''Fehlerbehandlung\r\nFehlerhafteFunktion_Exit:\r\n    ''Restarbeiten\r\n    Exit Function\r\nFehlerhafteFunktion_Err:\r\n    Call Fehlerbehandlung(\"mdlBeispielfehler \", _        \"FehlerhafteFunktion\", Erl, \"Bemerkungen: .\/.\")\r\n    GoTo FehlerhafteFunktion_Exit\r\nEnd Function<\/pre>\n<p><b>Quellcode 1<\/b><\/p>\n<p><IMG height=\"476\" src=\"..\/fileadmin\/_temp_\/{CF3DC94F-DCA5-4D7B-8991-60B5B5AC878C}\/pic002.png\" width=\"494\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 2:  Das Meldungsfenster der Fehlerbehandlung<\/span><\/b><\/p>\n<p>Ein Klick auf diese Schaltfl&auml;che bewirkt den Aufruf der folgenden Ereignisprozedur: <\/p>\n<pre>Private Sub cmdFehlerErzeugen_Click()\r\n    FehlerhafteFunktion\r\nEnd Sub<\/pre>\n<p>Die dort aufgerufene Funktion FehlerhafteFunktion dividiert 1 durch 0 und l&ouml;st damit einen Fehler aus. Damit hier kein Laufzeitfehler mit einer von Access generierten Fehlermeldung auftritt, f&auml;ngt die Prozedur den Fehler ab (s. Quellcode 1).<\/p>\n<p>Was dann passiert, schauen wir uns zun&auml;chst einmal an und k&uuml;mmern uns im Anschluss um die dahinter stehenden Techniken.<\/p>\n<p>Nach dem Ausl&ouml;sen des Fehlers durch einen Klick auf die Schaltfl&auml;che Fehler erzeugen erscheint das Formular aus Bild 2. Das Formular informiert den Benutzer dar&uuml;ber, dass ein Fehler aufgetreten ist und um welchen Fehler es sich handelt.<\/p>\n<p>Es bietet die M&ouml;glichkeit, eine E-Mail an den Hersteller der Software zu senden, und zeigt in einem separaten Fenster alle Informationen an, die mit dieser E-Mail versendet werden.<\/p>\n<p>Der Benutzer der Software kann zus&auml;tzlich einen Text mit weiteren Hinweisen zum Auftreten des Fehlers eingeben &#8211; beispielsweise mit den Schritten, die zum Fehler f&uuml;hrten.<\/p>\n<p>Damit der Hersteller den Kunden, bei dem der Fehler aufgetreten ist, identifizieren kann, muss dieser seine Kundennummer eingeben &#8211; schlie&szlig;lich soll er mit einer &uuml;berarbeiteten Version der Software f&uuml;r sein Verst&auml;ndnis belohnt werden.<\/p>\n<p>Schlie&szlig;lich legt der Benutzer noch fest, ob sich zwischen seinem Rechner und dem Internet eine Firewall befindet, die gegebenenfalls das Versenden der E-Mail &uuml;ber Port 110 verhindern k&ouml;nnte.<\/p>\n<p>Wenn das nicht der Fall ist, muss er nur noch auf die Schaltfl&auml;che Fehlermeldung senden klicken, um die entsprechende Mail direkt via SMTP zu versenden.<\/p>\n<p>Sollte eine Firewall im Spiel sein, kann die Mail auch &uuml;ber den Standard-E-Mail-Client des Benutzers versendet werden. Dieser wird von der Anwendung automatisch aufgerufen und mit den entsprechenden Daten gef&uuml;llt. Unter Outlook 2003 sieht die zu verschickende E-Mail wie in Bild 3 aus.<\/p>\n<p><IMG height=\"341\" src=\"..\/fileadmin\/_temp_\/{CF3DC94F-DCA5-4D7B-8991-60B5B5AC878C}\/pic003.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 3:  Fehlerversand per Outlook<\/span><\/b><\/p>\n<h2>Verarbeitung der Fehlermeldung<\/h2>\n<p>An diesem Punkt tritt die eigentliche Fehlerverarbeitung in Aktion. Damit ist die Beispieldatenbank FehlerverwaltungXX.mdb gemeint. Mit ihr holt der Entwickler die Fehlermeldungen per POP3 vom Mailserver ab.<\/p>\n<p><IMG height=\"320\" src=\"..\/fileadmin\/_temp_\/{CF3DC94F-DCA5-4D7B-8991-60B5B5AC878C}\/pic004.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 4:  Das Hauptformular der Fehlerverwaltung<\/span><\/b><\/p>\n<p>Das Formular mit dem Titel Fehlermeldungen ist die Steuerzentrale f&uuml;r die Verwaltung der Fehlermeldungen. Interessant ist dort vor allem die Schaltfl&auml;che Fehlermeldungen abrufen (siehe Bild 4).<\/p>\n<p>Mit einem Klick auf diese setzen Sie einen Prozess in Gang, der die auf dem E-Mail-Server vorliegende E-Mail mit der Fehlermeldung herunterl&auml;dt und ihren Inhalt in der Datenbank speichert.<\/p>\n<p>Die Fehlermeldungen werden dann in einem Listenfeld angezeigt, von wo der Entwickler die einzelnen Meldungen in der Detailansicht anzeigen kann. Die Detailansicht (siehe Bild 5) bietet die M&ouml;glichkeit, einem Fehler eine Priorit&auml;t zuzuordnen, den Fehler als behoben zu markieren und Informationen zur Fehlerbehebung einzutragen.<\/p>\n<p><IMG height=\"388\" src=\"..\/fileadmin\/_temp_\/{CF3DC94F-DCA5-4D7B-8991-60B5B5AC878C}\/pic005.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 5:  Detailansicht einer Fehlermeldung<\/span><\/b><\/p>\n<pre>Private Sub ArtikelHinzuf&uuml;gen_Click()\r\n50     On Error GoTo ArtikelHinzuf&uuml;gen_Click_Err\r\n60     Dim strDocName As String\r\n70     strDocName = \"Artikel\"\r\n80     DoCmd.OpenForm strDocName, , , , acAdd, , _           Me!LieferantenNr\r\n90     DoCmd.Close acForm, \"Artikelliste\"\r\n100     Forms![Artikel]!Artikelname.SetFocus\r\n110    ''Fehlerbehandlung\r\n120 ArtikelHinzuf&uuml;gen_Click_Exit:\r\n130     ''Restarbeiten\r\n140     Exit Sub\r\n150 ArtikelHinzuf&uuml;gen_Click_Err:\r\n160     Call Fehlerbehandlung(\"Form_Lieferanten \", _            \"ArtikelHinzuf&uuml;gen_Click\", Erl, _            \"Bemerkungen: .\/.\")\r\n170     GoTo ArtikelHinzuf&uuml;gen_Click_Exit\r\nEnd Sub<\/pre>\n<p><b>Quellcode 2<\/b><\/p>\n<p>Die nachfolgenden Schritte beschreiben, wie Sie den Fehlerverwaltungs-Client in eigene Anwendungen integrieren.<\/p>\n<h2>Import der ben&ouml;tigten Objekte<\/h2>\n<p>Der erste Schritt besteht im Import der Objekte, die f&uuml;r die Verarbeitung eines Fehlers erforderlich sind. Dazu &ouml;ffnen Sie die Zieldatenbank (in diesem Fall eine Kopie der Nordwind-Datenbank) und importieren die gew&uuml;nschten Objekte:<\/p>\n<li>F&uuml;hren Sie den Men&uuml;punkt Datei\/Externe Daten\/Importieren aus.<\/li>\n<li>W&auml;hlen Sie die Beispieldatei Fehlerverwaltung_ClientXX.mdb entsprechend Ihrer Access-Version aus.<\/li>\n<li>Importieren Sie von dort das Formular frmFehlerbehandlung und die Module clsSMTP, clsWinsock, mdlAPI, mdlError, MIMEMessage und RFCHeaderLine. (<\/li>\n<h2>Einbau der Fehlerbehandlung<\/h2>\n<p>Nachdem das Handwerkszeug beisammen ist, legen Sie eine Fehlerbehandlung an. F&uuml;r Beispielzwecke nehmen wir uns das Formular Lieferanten vor. Der hinter der Schaltfl&auml;che Artikel hinzuf&uuml;gen stehende Code enth&auml;lt bereits eine rudiment&auml;re Fehlerbehandlung.<\/p>\n<h3>Praxis-Tipp<\/h3>\n<p><!--30percent--><\/p>\n<p>Eine Fehlerbehandlung sollten Sie prinzipiell f&uuml;r alle Prozeduren einer Anwendung anlegen &#8211; Fehler treten immerhin meistens dort auf, wo man sie nicht erwartet. Und wenn Sie diese l&uuml;ckenlos erfassen und melden k&ouml;nnen, bestehen gute Chancen, eine Anwendung mit der Zeit fast vollst&auml;ndig von Fehlern zu befreien. &#8222;Fast vollst&auml;ndig&#8220; deshalb, weil man nie alle Fehler ausschlie&szlig;en kann. <\/p>\n<p>Ersetzen Sie diese durch Ihre eigene Fehlerbehandlung und f&uuml;gen Sie Zeilennummern hinzu.<\/p>\n<p><IMG height=\"308\" src=\"..\/fileadmin\/_temp_\/{CF3DC94F-DCA5-4D7B-8991-60B5B5AC878C}\/pic006.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 6:  Anlegen von Fehlerbehandlung und Nummerierung per Mausklick<\/span><\/b><\/p>\n<pre>Private Sub cmdFehlermeldungSenden_Click()\r\n    Dim objSMTP As clsSMTP\r\n    Dim strFehlermeldung As String\r\n    ''Validierung aus Platzgr&uuml;nden ausgespart\r\n    strFehlermeldung = Me!txtMailtext\r\n    strFehlermeldung = strFehlermeldung & _        \"KundenBeschreibung: \" & Me!txtBeschreibung _        & \";\" & vbCrLf\r\n    strFehlermeldung = strFehlermeldung _        & \"Kundennummer: \" & Me!txtKundennummer & \";\"\r\n    If Me.ctlFirewall = True Then\r\n        Set objSMTP = New clsSMTP\r\n        With objSMTP\r\n            .MailFrom = \"&lt;E-Mail Absender&gt;\"\r\n            .MailTo = \"&lt;E-Mail Empf&auml;nger&gt;\"\r\n            .Port = 25\r\n            .SenderEMail = \"&lt;E-Mail Absender&gt;\"\r\n            .Sendername = \"&lt;Name Absender&gt;\"\r\n            .SMTPServer = \"&lt;SMTP-Server&gt;\"\r\n            .Subject = \"Fehlermeldung\"\r\n            .Plaintext = strFehlermeldung\r\n            .Send\r\n        End With\r\n    Else\r\n        Call ShellExecute(0&, \"Open\", \"mailto:\" _            + \"&lt;E-Mail Empf&auml;nger&gt;\" + \"Subject=\" + _            \"Fehlermeldung\" + \"&Body=\" + _            Replace(strFehlermeldung, vbCrLf, _            \"%0a%0d\"), \"\", \"\", 1)\r\n    End If\r\n    DoCmd.Close acForm, Me.Name\r\nEnd Sub<\/pre>\n<p><b>Quellcode 3<\/b><\/p>\n<p>Die Prozedur sieht anschlie&szlig;end wie in Quellcode 2 aus.<\/p>\n<h3>Praxis-Tipp<\/h3>\n<p>Am schnellsten f&uuml;gen Sie einer Prozedur die Fehlerbehandlung und Zeilennummerierung &uuml;ber die Funktionen der Men&uuml;leiste VBAExtensions hinzu, die wir im Beitrag Erweitern der VBA-Entwicklungsumgebung in Ausgabe 5\/2004 von Access im Unternehmen vorgestellt haben. Damit kostet Sie der ganze Vorgang genau zwei Mausklicks (siehe Bild 6). Achtung: Verwenden Sie die neue Version der .dll-Datei, die Sie auf der beiliegenden CD finden! <\/p>\n<h2>E-Mail-Daten anpassen<\/h2>\n<p>Damit die E-Mails mit den Fehlermeldungen an die gew&uuml;nschte Adresse gesendet werden, passen Sie einige Zeilen Code an.<\/p>\n<p>Die anzupassenden Anweisungen befinden sich in der Prozedur cmdFehlermeldungSenden des Klassenmoduls des Formulars frmFehlerbehandlung (s. Quellcode 3).<\/p>\n<p>Die Prozedur setzt den Text der E-Mail zusammen, &uuml;bermittelt die E-Mail-Daten an das SMTP-Objekt und st&ouml;&szlig;t das Versenden der E-Mail an. Dort ersetzen Sie die folgenden Platzhalter durch die entsprechenden Werte (Platzhalter sind im Quellcode fett gesetzt):<\/p>\n<li>&lt;E-Mail Absender&gt;: E-Mail-Adresse des Absenders (beliebig)<\/li>\n<pre>Public Sub Fehlerbehandlung(strModul As String, strRoutine As String, _    lngZeile As Long, Optional strBemerkungen As String)\r\n    Dim strBeschreibung As String\r\n    Dim strFehler As String\r\n    Dim strInfo As String\r\n    Dim strAnwendungsname As String\r\n    Dim strVersion As String\r\n    strFehler = Err.Description\r\n    strAnwendungsname = \"&lt;Anwendungsname&gt;\"\r\n    strVersion = \"&lt;Anwendungsversion&gt;\"\r\n    strInfo = strInfo & \"Anwendung: \" & strAnwendungsname & \";\" & vbCrLf\r\n    strInfo = strInfo & \"Version: \" & strVersion & \";\" & vbCrLf\r\n    strInfo = strInfo & \"Datum: \" & Now & \";\" & vbCrLf\r\n    strInfo = strInfo & \"Datenbankpfad: \" & CurrentDb.Name & \";\" & vbCrLf\r\n    strInfo = strInfo & \"Modul: \" & strModul & \";\" & vbCrLf\r\n    strInfo = strInfo & \"Routine: \" & strRoutine & \";\" & vbCrLf\r\n    strInfo = strInfo & \"Benutzer: \" & CurrentUser() & \";\" & vbCrLf\r\n    strInfo = strInfo & \"Fehlernummer: \" & Err.Number & \";\" & vbCrLf\r\n    strInfo = strInfo & \"Fehlerbeschreibung: \" & Err.Description & \";\" & vbCrLf\r\n    strInfo = strInfo & \"Zeile: \" & lngZeile & \";\" & vbCrLf\r\n    strInfo = strInfo & \"Bemerkungen: \" & strBemerkungen & \";\" & vbCrLf\r\n    DoCmd.OpenForm \"frmFehlerbehandlung\", WindowMode:=acDialog, OpenArgs:=strInfo\r\nEnd Sub<\/pre>\n<p><b>Quellcode 4<\/b><\/p>\n<li>&lt;E-Mail Empf&auml;nger&gt;: E-Mail-Adresse, von der Sie die Fehlermeldungen abholen m&ouml;chten<\/li>\n<li>&lt;Name Absender&gt;: Name des Absenders (beliebig)<\/li>\n<li>&lt;SMTPServer&gt;: Adresse des SMTP-Servers<\/li>\n<h2>Anwendungsdaten anpassen<\/h2>\n<p>Damit die E-Mail mit der Fehlermeldung Informationen &uuml;ber die Anwendung und ihre Version enth&auml;lt, &auml;ndern Sie zwei Zeilen in der Prozedur Fehlerbehandlung im Modul mdlError. Die zu &auml;ndernden Zeilen sind in Quellcode 4 fett gedruckt.<\/p>\n<h2>Ansto&szlig;en der Fehlerbehandlung<\/h2>\n<p>Nun m&uuml;ssen Sie nur noch einen Fehler provozieren, um die Funktionalit&auml;t zu testen. Im Beispielformular Lieferanten k&ouml;nnen Sie das folgenderma&szlig;en tun: Legen Sie einen neuen leeren Datensatz an. Klicken Sie dann auf die Schaltfl&auml;che Artikel hinzuf&uuml;gen. Wenn nun die Meldung aus Bild 7 erscheint, haben Sie alles richtig gemacht.<\/p>\n<p><IMG height=\"476\" src=\"..\/fileadmin\/_temp_\/{CF3DC94F-DCA5-4D7B-8991-60B5B5AC878C}\/pic007.png\" width=\"494\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 7:  Fehlermeldung in der Nordwinddatenbank<\/span><\/b><\/p>\n<p>Die Fehlerverwaltung enth&auml;lt neben den eingangs beschriebenen noch einige weitere Funktionen.<\/p>\n<h2>Einstellen des POP3-Servers<\/h2>\n<p>Bevor Sie die Fehlerverwaltung verwenden k&ouml;nnen, m&uuml;ssen Sie noch die Daten des E-Mail-Kontos anpassen, von dem die E-Mails mit den Fehlermeldungen abgeholt werden sollen.<\/p>\n<p><IMG height=\"284\" src=\"..\/fileadmin\/_temp_\/{CF3DC94F-DCA5-4D7B-8991-60B5B5AC878C}\/pic008.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 8:  Anpassen der E-Mail-Einstellungen<\/span><\/b><\/p>\n<p><IMG height=\"320\" src=\"..\/fileadmin\/_temp_\/{CF3DC94F-DCA5-4D7B-8991-60B5B5AC878C}\/pic009.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 9:  Sortieren nach verschiedenen Kriterien<\/span><\/b><\/p>\n<p><IMG height=\"388\" src=\"..\/fileadmin\/_temp_\/{CF3DC94F-DCA5-4D7B-8991-60B5B5AC878C}\/pic010.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 10:  Leeres Formular zur manuellen Eingabe von Fehlern<\/span><\/b><\/p>\n<p>Dazu &ouml;ffnen Sie einfach die Datenbank FehlerverwaltungXX.mdb und klicken im Dialog Fehlermeldungen auf die Schaltfl&auml;che E-Mail-Einstellungen.<\/p>\n<p>Dort k&ouml;nnen Sie mehrere Konten anlegen, f&uuml;r die Sie jeweils den Benutzernamen, das Kennwort und den POP3-Server angeben. F&uuml;r das aktuell zu verwendende Konto setzen Sie ein H&auml;kchen in das Kontrollk&auml;stchen Standard (siehe Bild 8).<\/p>\n<h2>Sortieren der Fehlermeldungen<\/h2>\n<p>Die Liste der Fehlermeldungen im Dialog Fehlermeldungen kann nach drei beliebig zu kombinierenden Kriterien auf- oder absteigend sortiert werden. Dabei dienen drei Kombinationsfelder zur Auswahl der Kriterien und drei entsprechende Optionsgruppen zum Festlegen der Sortierreihenfolge (siehe Bild 9).<\/p>\n<h2>Manuelles Anlegen von Fehlermeldungen<\/h2>\n<p>Wenn doch mal ein Fehler durch das feine Netz von Fehlerbehandlungsroutinen schl&uuml;pft, weil es sich beispielsweise nicht um einen Laufzeitfehler, sondern etwa um einen logischen Fehler handelt, k&ouml;nnen Sie diesen manuell eingeben. Mit einem Mausklick auf die Schaltfl&auml;che Neu &ouml;ffnen Sie ein leeres Formular zur Eingabe der Fehlerinformationen (siehe Bild 10).<\/p>\n<h2>Anwendungen verwalten<\/h2>\n<p>Das Formular zur Bearbeitung der Detailansicht eines Fehlers enth&auml;lt zwei unscheinbare Schaltfl&auml;chen, die weitere Dialoge &ouml;ffnen. Der erste befindet sich neben dem Textfeld zur Eingabe der Anwendung und &ouml;ffnet den Dialog Anwendungen (siehe Bild 11).<\/p>\n<p><IMG height=\"128\" src=\"..\/fileadmin\/_temp_\/{CF3DC94F-DCA5-4D7B-8991-60B5B5AC878C}\/pic011.png\" width=\"321\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 11:  Auswahl der Anwendung mit Schaltfl&auml;che f&uuml;r die Detailansicht<\/span><\/b><\/p>\n<p><IMG height=\"389\" src=\"..\/fileadmin\/_temp_\/{CF3DC94F-DCA5-4D7B-8991-60B5B5AC878C}\/pic012.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 12:  Verwalten von Anwendungen<\/span><\/b><\/p>\n<p><IMG height=\"219\" src=\"..\/fileadmin\/_temp_\/{CF3DC94F-DCA5-4D7B-8991-60B5B5AC878C}\/pic013.png\" width=\"331\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 13:  Anwendungsnamen mit Versionsangabe<\/span><\/b><\/p>\n<p><IMG height=\"299\" src=\"..\/fileadmin\/_temp_\/{CF3DC94F-DCA5-4D7B-8991-60B5B5AC878C}\/pic014.png\" width=\"415\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 14:  Formular zum Verwalten von Kunden<\/span><\/b><\/p>\n<p>Der Dialog zeigt den Namen der ausgew&auml;hlten Anwendung an und bietet die M&ouml;glichkeit, zu der aktuellen Anwendung unterschiedliche Versionsst&auml;nde einzugeben (siehe Bild 12). Diese erscheinen in der &uuml;bersichtsliste der Fehlermeldungen in Kombination mit dem Anwendungsnamen (siehe Bild 13).<\/p>\n<h2>Kunden verwalten<\/h2>\n<p>Das Formular zur Verwaltung von Kunden (siehe Bild 14) &ouml;ffnen Sie ebenfalls vom Dialog Fehlermeldungen Detailansicht aus. Dieses Formular wie auch die Verwaltung der Kunden selbst ist recht einfach gehalten.<\/p>\n<h2>Fehler behoben<\/h2>\n<p>Wenn einer der Fehler in der Liste behoben wurde, k&ouml;nnen Sie das der Anwendung in der Detailansicht des jeweiligen Fehlers durch Bet&auml;tigen der Schaltfl&auml;che Fehler behoben mitteilen. Wenn das Textfeld mit der Bezeichnung Fehlerbehebung bis dahin noch keinen Inhalt hat, fordert die Anwendung Sie dazu auf, einen entsprechenden Text einzugeben.<\/p>\n<p>Die Erl&auml;uterung der Funktionen der Fehlerbehandlung und ihrer Integration in eigene Anwendungen schien dem Autor wichtiger als die dahinter stehende Technik; au&szlig;erdem werden die meisten hier verwendeten Prozeduren in den drei in Kapitel 1 genannten Beitr&auml;gen erl&auml;utert.<\/p>\n<p>Daher beschr&auml;nken wir uns an dieser Stelle auf einige wenige technische Hintergr&uuml;nde.<\/p>\n<h2>Datenmodell<\/h2>\n<p>Die Haupttabelle der Anwendung namens tblFehlermeldungen enth&auml;lt die Detailinformationen zu den Fehlermeldungen. Alle anderen sind mehr oder weniger direkt mit dieser Tabelle verkn&uuml;pft (siehe Bild 15).<\/p>\n<p>Die beiden Tabellen tblKunden und tblPrioritaeten haben jeweils eine 1:n-Beziehung mit der Tabelle tblFehlermeldungen. <\/p>\n<p>Die Tabelle tblAnwendungen ist &uuml;ber die Tabelle tblVersionen mit der Tabelle tblFehlermeldungen verkn&uuml;pft. Die Tabelle tblVersionen ist dabei die Verkn&uuml;pfungstabelle in einer m:n-Beziehung.<\/p>\n<p><IMG height=\"288\" src=\"..\/fileadmin\/_temp_\/{CF3DC94F-DCA5-4D7B-8991-60B5B5AC878C}\/pic015.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 15:  Datenmodell der Fehlerverwaltung<\/span><\/b><\/p>\n<pre>Public Function ExtractMessage() As Boolean\r\n    On Error GoTo ExtractMessage_Err\r\n    Dim intPosStart As Integer\r\n    Dim intPosEnd As Integer\r\n    If Len(mMessage) = 0 Then\r\n        ExtractMessage = False\r\n        Exit Function\r\n    End If\r\n    mMessageFrom = GetHeader(\"From:\")\r\n    '' Weitere Werte ermitteln f&uuml;r To, Subject, ...\r\n    mDateSent = CDate(GetMaildate(GetHeader(\"Date:\")))\r\n    mDateReceived = Now\r\n   ExtractMessage = True\r\nExtractMessage_Exit:\r\n    Exit Function\r\nExtractMessage_Err:\r\n    ExtractMessage = False\r\n    Call Fehlerbehandlung(\"clsMessage \", \"ExtractMessage\", Erl, \"Bemerkungen: .\/.\")\r\n    GoTo ExtractMessage_Exit\r\nEnd Function<\/pre>\n<p><b>Quellcode 5<\/b><\/p>\n<p>Auf diese Weise kann die Fehlerverwaltung mehrere Versionen einer Anwendung enthalten.<\/p>\n<h2>Details zum Fehlerverwaltungs-Client<\/h2>\n<p>Der Fehlerverwaltungs-Client ist die Anwendung, die Fehlermeldungen verschickt. Technisch interessant ist die Verwendung der Klasse clsSMTP, die ja bereits im Beitrag Mails versenden ohne Outlook in Ausgabe 4\/2004 von Access im Unternehmen vorgestellt wurde.<\/p>\n<p>Der Aufruf erfolgt in der Ereignisprozedur, die durch einen Klick auf die Schaltfl&auml;che Fehlermeldung senden des Formulars Fehlerbehandlung ausgel&ouml;st wird (s. Quellcode 3).<\/p>\n<p>Die Prozedur &uuml;berpr&uuml;ft zun&auml;chst, ob das Textfeld zur Angabe der Kundennummer einen numerischen Wert enth&auml;lt (im Quellcode aus Platzgr&uuml;nden ausgespart). Ist das nicht der Fall, fordert die Prozedur den Anwender zur Eingabe einer Kundennummer auf.<\/p>\n<p>Anderenfalls f&auml;hrt die Prozedur fort und setzt aus dem Inhalt des gro&szlig;en Textfelds mit den Fehlerinformationen, des Textfelds mit der manuellen Fehlerbeschreibung des Kunden und des Textfelds mit der Kundennummer den Text der E-Mail zusammen.<\/p>\n<p>Dann erfolgt die &uuml;berpr&uuml;fung, ob der Benutzer die Option Firewall l&auml;sst Zugriff auf Port 110 (SMTP) zu aktiviert hat oder nicht. Sollte ein Unternehmen eine Firewall installiert haben, die den Port 100 sperrt, kann die Fehlermeldung nicht direkt von der Access-Anwendung aus per SMTP versendet werden. Statt dessen verwendet die Anwendung den Standard-E-Mail-Client auf dem aktuellen Rechner. Ist Port 110 frei, instanziiert die Prozedur ein Objekt der Klasse clsSMTP. Anschlie&szlig;end &uuml;bergibt sie die f&uuml;r den Mailversand ben&ouml;tigten Werte an die entsprechenden Eigenschaften des SMTP-Objekts und ruft schlie&szlig;lich dessen Methode Send auf.<\/p>\n<p>Ist der direkte Versand via SMTP nicht m&ouml;glich, setzt die Prozedur &uuml;ber die API-Funktion ShellExecute eine mailto:-Anweisung ab und &uuml;bergibt dabei direkt die entsprechenden Werte f&uuml;r die Parameter Subject und Body.<\/p>\n<pre>Private Function GetHeader(strHeader As String)\r\n    Dim intPosStart As Integer\r\n    Dim intPosEnd As Integer\r\n    Dim intLenHeader As Integer\r\n    Dim intPosInit As Integer\r\n    Dim strEnd As String\r\n    Dim i As Integer\r\n    intLenHeader = Len(strHeader) + 1\r\n    intPosInit = 1\r\n    strEnd = \";\"\r\n    intPosStart = InStr(intPosInit, mMessage, strHeader)\r\n    intPosEnd = InStr(intPosStart + 1, mMessage, strEnd)\r\n    GetHeader = Trim(Replace(Mid(mMessage, intPosStart _        + intLenHeader, intPosEnd - intPosStart - _        intLenHeader), Chr(10), \" \"))\r\nEnd Function<\/pre>\n<p><b>Quellcode 6<\/b><\/p>\n<pre>Private Function GetMaildate(strMaildate As String) _    As Date\r\n    Dim Part() As String\r\n    Const Months = _        \"JanFebMarAprMayJunJulAugSepOctNovDec\"\r\n  Part = Split(strMaildate, \" \")\r\n  GetMaildate = DateSerial(Part(3), 1 + (InStr(Months, _      Part(2)) - 1) \\ 3, Part(1)) + CDate(Part(4))\r\nEnd Function<\/pre>\n<p><b>Quellcode 7<\/b><\/p>\n<h2>Details zur Fehlerverwaltung<\/h2>\n<p>Auf Seiten der Fehlerverwaltung sorgt die Funktion ExtractMessage f&uuml;r das Lesen der Detailinformationen aus der Mail (s. Quellcode 5).<\/p>\n<p>Die Funktion liest die Informationen zu der Fehlermeldung aus der Mail aus. Dazu durchsucht sie den Inhalt der Mail nach den entsprechenden Schl&uuml;sselw&ouml;rtern wie From, To oder Date f&uuml;r die E-Mail-relevanten Informationen und Schl&uuml;sselw&ouml;rter wie Modul, Routine, Fehlernummer, Zeile und so weiter f&uuml;r die fehlerspezifischen Informationen. Dieser Suchvorgang erfolgt in einer eigenen Funktion, die f&uuml;r jede Eigenschaft der Fehlermeldung einmal mit dem jeweiligen Schl&uuml;sselwort als Argument aufgerufen wird.<\/p>\n<p>Diese Funktion hei&szlig;t GetHeader und ermittelt nach dem Finden des jeweiligen Schl&uuml;sselworts den dahinter angegebenen Ausdruck bis zum n&auml;chsten Semikolon (;).<\/p>\n<p>Eventuell enthaltene Zeilenumbr&uuml;che ersetzt die Funktion durch Leerzeichen und gibt dann den gefundenen Wert f&uuml;r das Schl&uuml;sselwort an die aufrufende Funktion zur&uuml;ck (s. Quellcode 6).<\/p>\n<p>Die Funktion GetMailDate ermittelt aus dem Sendedatum einer Mail, das in einem besonderen Format vorliegt, ein von Access lesbares Datumsformat (s. Quellcode 7).<\/p>\n<p>Die hier vorgestellte Fehlerverwaltung bietet die grundlegenden Techniken zum &#8222;Einsammeln&#8220; von Fehlermeldungen, die von m&ouml;glicherweise weit entfernt eingesetzten Anwendungen stammen. Damit sparen Sie sowohl dem Benutzer als auch sich selbst aufw&auml;ndige Kommunikation. Zudem liegen so alle Fehlermeldungen an einem Ort vor und Sie k&ouml;nnen diese nach Priorit&auml;t oder Eingangsdatum abarbeiten.<\/p>\n<p>Wie so viele Musterl&ouml;sungen bietet auch diese eine Menge Erweiterungsm&ouml;glichkeiten:<\/p>\n<li>Verfeinerung der Anzeige der Fehlerliste (etwa Ausblenden behobener Fehler),<\/li>\n<li>Dokumentation der behobenen Fehler in einer Versionshistorie.<\/li>\n","protected":false},"excerpt":{"rendered":"<p>Wenn Sie eine Anwendung nicht gerade f&uuml;r sich selbst oder Ihren Schreibtischnachbarn (sofern Sie einen haben) erstellt haben, sondern f&uuml;r &ouml;rtlich weiter entfernte Personen, wird das Beheben von Feh-lern schnell zur Qual: Es besteht dann aus einer Mischung aus Telefonaten und per E-Mail verschickten Screenshots mit Fehlermeldungen &#8211; und das auch nur, wenn der jeweilige Anwender ausreichend versiert ist. Zumindest f&uuml;r Laufzeitfehler k&ouml;nnen Sie hier einiges an Zeit und M&uuml;he einsparen &#8211; durch die richtige Automatisierung.<\/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":[662004,66062004,44000028,44000025],"tags":[],"class_list":["post-55000244","post","type-post","status-publish","format-standard","hentry","category-662004","category-66062004","category-Ergonomie_und_Benutzeroberflaeche","category-VBA_und_Programmiertechniken"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Fehlerverwaltung mit Online-Komponente - 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\/Fehlerverwaltung_mit_OnlineKomponente\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Fehlerverwaltung mit Online-Komponente\" \/>\n<meta property=\"og:description\" content=\"Wenn Sie eine Anwendung nicht gerade f&uuml;r sich selbst oder Ihren Schreibtischnachbarn (sofern Sie einen haben) erstellt haben, sondern f&uuml;r &ouml;rtlich weiter entfernte Personen, wird das Beheben von Feh-lern schnell zur Qual: Es besteht dann aus einer Mischung aus Telefonaten und per E-Mail verschickten Screenshots mit Fehlermeldungen - und das auch nur, wenn der jeweilige Anwender ausreichend versiert ist. Zumindest f&uuml;r Laufzeitfehler k&ouml;nnen Sie hier einiges an Zeit und M&uuml;he einsparen - durch die richtige Automatisierung.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Fehlerverwaltung_mit_OnlineKomponente\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-06T15:17:53+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg08.met.vgwort.de\/na\/b3a69c97052342fd9694d0f70909b1ba\" \/>\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=\"15\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Fehlerverwaltung_mit_OnlineKomponente\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Fehlerverwaltung_mit_OnlineKomponente\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Fehlerverwaltung mit Online-Komponente\",\"datePublished\":\"2020-05-06T15:17:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Fehlerverwaltung_mit_OnlineKomponente\\\/\"},\"wordCount\":2537,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Fehlerverwaltung_mit_OnlineKomponente\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg08.met.vgwort.de\\\/na\\\/b3a69c97052342fd9694d0f70909b1ba\",\"articleSection\":[\"2004\",\"6\\\/2004\",\"Ergonomie und Benutzeroberfl\u00e4che\",\"VBA und Programmiertechniken\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Fehlerverwaltung_mit_OnlineKomponente\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Fehlerverwaltung_mit_OnlineKomponente\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Fehlerverwaltung_mit_OnlineKomponente\\\/\",\"name\":\"Fehlerverwaltung mit Online-Komponente - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Fehlerverwaltung_mit_OnlineKomponente\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Fehlerverwaltung_mit_OnlineKomponente\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg08.met.vgwort.de\\\/na\\\/b3a69c97052342fd9694d0f70909b1ba\",\"datePublished\":\"2020-05-06T15:17:53+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Fehlerverwaltung_mit_OnlineKomponente\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Fehlerverwaltung_mit_OnlineKomponente\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Fehlerverwaltung_mit_OnlineKomponente\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg08.met.vgwort.de\\\/na\\\/b3a69c97052342fd9694d0f70909b1ba\",\"contentUrl\":\"http:\\\/\\\/vg08.met.vgwort.de\\\/na\\\/b3a69c97052342fd9694d0f70909b1ba\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Fehlerverwaltung_mit_OnlineKomponente\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Fehlerverwaltung mit Online-Komponente\"}]},{\"@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":"Fehlerverwaltung mit Online-Komponente - 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\/Fehlerverwaltung_mit_OnlineKomponente\/","og_locale":"de_DE","og_type":"article","og_title":"Fehlerverwaltung mit Online-Komponente","og_description":"Wenn Sie eine Anwendung nicht gerade f&uuml;r sich selbst oder Ihren Schreibtischnachbarn (sofern Sie einen haben) erstellt haben, sondern f&uuml;r &ouml;rtlich weiter entfernte Personen, wird das Beheben von Feh-lern schnell zur Qual: Es besteht dann aus einer Mischung aus Telefonaten und per E-Mail verschickten Screenshots mit Fehlermeldungen - und das auch nur, wenn der jeweilige Anwender ausreichend versiert ist. Zumindest f&uuml;r Laufzeitfehler k&ouml;nnen Sie hier einiges an Zeit und M&uuml;he einsparen - durch die richtige Automatisierung.","og_url":"https:\/\/access-im-unternehmen.de\/Fehlerverwaltung_mit_OnlineKomponente\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-06T15:17:53+00:00","og_image":[{"url":"http:\/\/vg08.met.vgwort.de\/na\/b3a69c97052342fd9694d0f70909b1ba","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"15\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Fehlerverwaltung_mit_OnlineKomponente\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Fehlerverwaltung_mit_OnlineKomponente\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Fehlerverwaltung mit Online-Komponente","datePublished":"2020-05-06T15:17:53+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Fehlerverwaltung_mit_OnlineKomponente\/"},"wordCount":2537,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Fehlerverwaltung_mit_OnlineKomponente\/#primaryimage"},"thumbnailUrl":"http:\/\/vg08.met.vgwort.de\/na\/b3a69c97052342fd9694d0f70909b1ba","articleSection":["2004","6\/2004","Ergonomie und Benutzeroberfl\u00e4che","VBA und Programmiertechniken"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Fehlerverwaltung_mit_OnlineKomponente\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Fehlerverwaltung_mit_OnlineKomponente\/","url":"https:\/\/access-im-unternehmen.de\/Fehlerverwaltung_mit_OnlineKomponente\/","name":"Fehlerverwaltung mit Online-Komponente - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Fehlerverwaltung_mit_OnlineKomponente\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Fehlerverwaltung_mit_OnlineKomponente\/#primaryimage"},"thumbnailUrl":"http:\/\/vg08.met.vgwort.de\/na\/b3a69c97052342fd9694d0f70909b1ba","datePublished":"2020-05-06T15:17:53+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Fehlerverwaltung_mit_OnlineKomponente\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Fehlerverwaltung_mit_OnlineKomponente\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Fehlerverwaltung_mit_OnlineKomponente\/#primaryimage","url":"http:\/\/vg08.met.vgwort.de\/na\/b3a69c97052342fd9694d0f70909b1ba","contentUrl":"http:\/\/vg08.met.vgwort.de\/na\/b3a69c97052342fd9694d0f70909b1ba"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Fehlerverwaltung_mit_OnlineKomponente\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Fehlerverwaltung mit Online-Komponente"}]},{"@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\/55000244","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=55000244"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000244\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000244"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000244"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000244"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}