Fehler Übergehen

Hi ich habe so ein toll geschrieben das mit eine rekrusive suche macht bloss wenn er ein verzeichniss fident in dem er keine zugriffsrechte hat dann stürzt es ab da muss man ein Resume next if error oder so was einbauen kan mir jemand sagen wie man das schreibt das er bei dem fehler weiter macht und die nächsten anweisungen ausführt danke

Erste Zeile in der Sub/Function muss lauten:

On Error resume next

Grüße
Heinrich

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

und dann kommt er zum nexten verzeichniss kann ich ihm irgendwie sagen dass er bei einem fehler das verzeichniss speichert ich will es wissen was für ein verzeichniss das ist damit ich mir die rechte gebe

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

dann schreibe in die erste zeile
on error goto fehler
dann am ende folgendes:
exit sub / function ( je nachdem ob es ein sub oder function ist)
naechste zeile
fehler:
deine Anweisung ( Verzeichniss speichern etc.)
resume next ( Springe zurueck und mache mit der naechsten anweisung weiter)

LG Alex

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Thomas,

hier ein Beispiel:

Private Sub DBGrid1_HeadClick(ByVal ColIndex As Integer)

Dim rec1, rec2 As Recordset
Dim mitKlammer As Boolean
Dim Sortierfeldmerker As Integer

On Error GoTo Fehler
Screen.MousePointer = vbHourglass
DBGrid1.HoldFields
Set rec1 = Data1.Recordset
mitKlammer = True
Sortierfeldmerker = sortierFeld
Einsprung_falls_Feldname_nicht_erkannt:
If sortierFeld = ColIndex Then
If mitKlammer Then
rec1.Sort = „[“ & DBGrid1.Columns(ColIndex).DataField & „] DESC“
Else
rec1.Sort = DBGrid1.Columns(ColIndex).DataField & " DESC"
End If
sortierFeld = -1
Else
If mitKlammer Then
rec1.Sort = „[“ & DBGrid1.Columns(ColIndex).DataField & „]“
Else
rec1.Sort = DBGrid1.Columns(ColIndex).DataField
End If
sortierFeld = ColIndex
End If
Set rec2 = rec1.OpenRecordset(rec1.Type)
Set Data1.Recordset = rec2
Screen.MousePointer = vbDefault

Exit Sub
Fehler:
Select Case Err.Number
Case 3117
MsgBox Err.Description, vbOKOnly
Screen.MousePointer = vbDefault
Exit Sub
Case 3070 ’ Feldname nicht erkannt
If mitKlammer Then
mitKlammer = False
sortierFeld = Sortierfeldmerker
Resume Einsprung_falls_Feldname_nicht_erkannt
Else
MsgBox DBGrid1.Columns(ColIndex).DataField & vbCr & Err.Description, vbOKOnly
Exit Sub
End If
Case Else
Select Case FrageFehlerbehandlung(„DBGrid1_HeadClick“)
Case vbYes: Exit Sub
Case vbNo: Resume Next
Case Else: On Error GoTo 0: Resume
End Select
End Select
End Sub

Public Function FrageFehlerbehandlung(ByVal Mldg As String) As Integer
Dim Fehlertext As String
Dim Fehler As Error
Fehlertext = „“
For Each Fehler In DBEngine.Errors
Fehlertext = Fehlertext & "Fehler # " & Str(Err.Number) & _
" wurde ausgelöst von " _
& Err.Source & vbCr & vbCr & Err.Description & vbCr
Next Fehler

Mldg = "Fehlerort : " & Mldg & vbCr & vbCr & _
Fehlertext & vbCr _
& „Soll die fehlerverursachende Procedure verlassen werden ?“ & vbCr
FrageFehlerbehandlung = MsgBox(Mldg, vbCritical + vbYesNoCancel, „Ein Fehler ist aufgetreten“, Err.HelpFile, Err.HelpContext)
Err.Clear
End Function

Gruß Frank

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]