PDA

Vollständige Version anzeigen : Allgemein: Wie kann ich mir eine Übersicht der Fehlercodes verschaffen?


Manuela Kulpa
31.12.2002, 15:40
Am einfachsten ist es natürlich, fehlerfrei zu programmieren, denn dann erspart man sich die mühsame Suche nach den Fehlern. Ich möchte dir aber im Folgenden eine Möglichkeit zeigen, wie du dir eine Übersicht der allgemeinen Fehlercodes (ohne DAO & ADO) verschaffen kannst.

Wie gehst du vor: Erstell dir eine neue Tabelle
Name der Tabelle: tblFehlercodes
Felder:
Feld: ErrNumber, Feldtyp: Zahl, Feldgröße: LongInteger, Primärschlüssel,
Feld: ErrDescription, Feldtyp: Text, Feldgröße: 255
Öffne ein bestehendes Modul oder erstell ein neues Modul und füge folgende Prozedur ein:<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Public Sub</span> FillFehlerCodes()
&nbsp;
<span class="TOKEN">Const</span> csObjektFehler <span class="TOKEN">As</span> <span class="TOKEN">String</span> = _
&quot;Anwendungs- oder objektdefinierter Fehler&quot;
&nbsp;
<span class="REM"> ' Ein Verweis (Extras - Verweise) muss auf</span>
<span class="REM"> ' die DAO 3.X Object-Library gesetzt sein!</span>
<span class="TOKEN">Dim</span> dbs <span class="TOKEN">As</span> DAO.Database
<span class="TOKEN">Dim</span> rst <span class="TOKEN">As</span> DAO.Recordset
&nbsp;
<span class="TOKEN">Dim</span> l <span class="TOKEN">As</span> <span class="TOKEN">Long</span>
<span class="TOKEN">Dim</span> sDescription <span class="TOKEN">As</span> <span class="TOKEN">String</span>
&nbsp;
<span class="TOKEN">Set</span> dbs = CurrentDb
&nbsp;
<span class="REM"> ' Recordset &ouml;ffnen</span>
<span class="TOKEN">Set</span> rst = dbs.OpenRecordset(&quot;tblFehlercodes&quot;)
&nbsp;
<span class="REM"> ' Schleife &uuml;ber alle m&ouml;glichen Fehler</span>
<span class="TOKEN">For</span> l = 1 <span class="TOKEN">To</span> 65535
<span class="REM"> ' Sanduhr einschalten</span>
DoCmd.Hourglass <span class="TOKEN">True</span>
<span class="REM"> ' Fehlerbeschreibung ermitteln</span>
sDescription = AccessError(l)
&nbsp;
<span class="REM"> ' Gibt es eine Beschreibung</span>
<span class="TOKEN">If</span> <span class="TOKEN">Not</span> Len(Left(sDescription, 250)) = 0 <span class="TOKEN">Then</span>
<span class="REM"> ' Alle Fehlernummern &uuml;berspringen, die anwendungs-</span>
<span class="REM"> ' oder objektdefinierte Fehler hervorrufen</span>
<span class="TOKEN">If</span> <span class="TOKEN">Not</span> Left(sDescription, 250) = csObjektFehler <span class="TOKEN">Then</span>
rst.AddNew
rst![ErrNumber] = l
rst![ErrDescription] = Left(sDescription, 250)
rst.Update
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
&nbsp;
<span class="TOKEN">Next</span> l
&nbsp;
<span class="REM"> ' Speicher freigeben</span>
<span class="TOKEN">If</span> <span class="TOKEN">Not</span> rst <span class="TOKEN">Is</span> <span class="TOKEN">Nothing</span> <span class="TOKEN">Then</span> rst.Close: <span class="TOKEN">Set</span> rst = <span class="TOKEN">Nothing</span>
<span class="TOKEN">If</span> <span class="TOKEN">Not</span> dbs <span class="TOKEN">Is</span> <span class="TOKEN">Nothing</span> <span class="TOKEN">Then</span> dbs.Close: <span class="TOKEN">Set</span> dbs = <span class="TOKEN">Nothing</span>
&nbsp;
DoCmd.Hourglass <span class="TOKEN">False</span>
&nbsp;
<span class="TOKEN">End</span> <span class="TOKEN">Sub</span></pre></div>Der Aufruf erfolgt zum Beispiel mit: Call FillFehlerCodes Das war's schon! Weitere Informationen findest du in der Microsoft Visual Basic-Referenz Onlinehilfe: Stichwort AccessError-Methode. Denk bitte auch immer an die [F1]-Taste (Wort markieren, F1-Taste betätigen), falls du nähere Informationen zu den im Code verwendeten Befehlen benötigst!

Pittchen
13.03.2003, 16:49
Hallo Manuela,

das ist ein Klasse Tip!!!

Danke dir auch für deine anderen FAQ-Beiträge ....

wenn es dieses Forum nicht gäbe, wäre ich -programmiertechnisch - immer noch in der Steinzeit

Grüße aus Frankfurt und

macht weiter so

Pittchen ;)

rolf2
01.04.2004, 16:24
Super,

genau so was brauchte ich!

mactoolz
02.08.2005, 23:13
Hi,

kann man eigentlich den Fehlercode den man auslöst,

also z.B. man legt einen Datensatz an der aber nicht vervollständigt wird weil z.B. Fremdschlüssel noch fehlen, dann kommt die nette Meldung das der Datensatz nicht vollständig ist und ob man ihn speichern möchte oder weiter bearbeiten will.

Mein Frage dazu ist, das ich durch VBA Code meine Wahl zwischen JA/Nein festlegen kann.

Sprich, ich wähle nicht mehr aus, sondern ich lege direkt fest das diese MEldung direkt mit Nein gesetzt wird.

MacToolz

J_Eilers
03.08.2005, 08:06
Hi,

auch wenn man hier keine Fragen stellen soll, du kannst mit dem Formularereignis bei Fehler, die Fehlernummer auswerten und entsprechend darauf reagieren (Me.Undo).