PDA

Vollständige Version anzeigen : Fehlermeldung bei Listenfeld - "nicht in Liste"


H.Elmer
11.05.2004, 05:33
Hallo,

ich versuche in einem Formular die Fehlermeldung von Access 2000 zu beseitigen, aber es gelingt mir nicht.
Im Listenfeld "Beratername" sollen nur die Berater lt. Liste ausgewählt werden. Bei fehlerhafter Eingabe will ich meine kurze Meldung bringen und danach die vorige Eingabe in diesem Feld löschen (nach OK) - mein Wunsch.
Jetzt kommt zwar nach dem Behandeln des FehlerNr. 20 meine Meldung, aber danach eben auch noch die Meldung von AC, dass diese Eingabe kein Element der Liste ist. Die ist der Teil im Modul:

Private Sub Beratername_NotInList(NewData As String, Response As Integer)
On Error GoTo Beratername_NotInList_Err

Dim Mldg, Stil, Titel, Antwort, Text1

Mldg = "Der ausgewählte Berater ist noch nicht erfasst, möchten Sie fortfahren ?" ' Meldung definieren.
Stil = vbYesNo + vbCritical + vbDefaultButton2 ' Schaltflächen
' definieren.
Titel = "kein Berater erfasst" ' Titel definieren.

Beratername_NotInList_Err:
If Err.Number = 20 Then 'Der Fehler 20 - nicht in Liste
Resume Next
End If

If Err.Number <> 0 Then
Mldg = "Fehler # " & Str(Err.Number) & " wurde ausgelöst von " _
& Err.Source & Chr(13) & Err.Description
MsgBox Mldg, , "Fehler", Err.HelpFile, Err.HelpContext
End If
Resume Beratername_NotInList_Exit

Beratername_NotInList_Exit:
Exit Sub

End Sub

Habe ich hier noch irgend einen Fehler ??
Dies ist doch eigentlich eine alltägliche Angelegenheit.
(Wo finde ich einen Link zu allen Fehlernummern in AC 2000???)

Vielen Dank

Harald

TommyK
11.05.2004, 06:12
Hallo Harald,

es müßte so etwa lauten:

Private Sub Beratername_NotInList(NewData As String, Response As Integer)
Response = acDataErrContinue
MsgBox "Der ausgewählte Berater ist noch nicht erfasst." & vbNewLine & "Sie können nur einen User aus der Liste auswählen", vbOKOnly + vbExclamation, "Kein Berater erfasst"
End Sub

reinir
11.05.2004, 06:15
<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Private Sub</span> Beratername_NotInList(NewData <span class="TOKEN">As</span> String, Response <span class="TOKEN">As</span> <span class="TOKEN">Integer</span>)
<span class="TOKEN">On Error GoTo</span> Beratername_NotInList_Err
&nbsp;
<span class="TOKEN">Dim</span> Mldg, Stil, Titel, Antwort, Text1
&nbsp;
Mldg = &quot;Der ausgew&auml;hlte Berater ist noch nicht erfasst, m&ouml;chten Sie fortfahren ?&quot; <span class="REM">' Meldung definieren.</span>
Stil = vbYesNo + vbCritical + vbDefaultButton2 <span class="REM">' Schaltfl&auml;chen</span>
<span class="REM">' definieren.</span>
Titel = &quot;kein Berater erfasst&quot; <span class="REM">' Titel definieren.</span>
&nbsp;
Beratername_NotInList_Err:
<span class="TOKEN">If</span> Err.Number = 20 <span class="TOKEN">Then</span> <span class="REM">'Der Fehler 20 - nicht in Liste</span>
Err.Number = 0
<span class="TOKEN">Resume</span> <span class="TOKEN">Next</span>
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
&nbsp;
<span class="TOKEN">If</span> Err.Number &lt;&gt; 0 <span class="TOKEN">Then</span>
Mldg = &quot;Fehler # &quot; &amp; Str(Err.Number) &amp; &quot; wurde ausgel&ouml;st von &quot; _
&amp; Err.Source &amp; Chr(13) &amp; Err.Description
MsgBox Mldg, , &quot;Fehler&quot;, Err.HelpFile, Err.HelpContext
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="TOKEN">Resume</span> Beratername_NotInList_Exit
&nbsp;
Beratername_NotInList_Exit:
<span class="TOKEN">Exit Sub</span>
&nbsp;
<span class="TOKEN">End</span> <span class="TOKEN">Sub</span></pre></div>
Code eingefügt mit dem MOF Code Converter (http://www.ms-office-forum.net/forum/codeconverter.php)

EDIT
Tommys Lösung is natürlich eleganter - zu früh noch dazu :)

Arne Dieckmann
11.05.2004, 08:17
Übrigens handelt es sich hier wohl um ein Kombinationsfeld (Combobox). Ein Listenfeld hat meiner Meinung nach kein "Nicht in Liste"-Ereignis und ist von der Bedienung her doch etwas anders als eine Combobox.


Zu den Fehlernummern findest Du hier etwas: http://www.ms-office-forum.net/forum/showthread.php?s=&threadid=40950

H.Elmer
11.05.2004, 11:03
Vielen Dank !

- der Tip von TommyK funktioniert großartig
- auch das Modul zu den Fehlermeldungen ist toll, warum kann MS diese nicht veröffentlichen!

Danke Harald