collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 126
  • Punkt Versteckte: 1
  • Punkt Mitglieder: 1

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 14260
  • stats Beiträge insgesamt: 69842
  • stats Themen insgesamt: 9396
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Fehlerbehandlung Hilfe  (Gelesen 121 mal)

Offline silentwolf

  • Access-Meister
  • ***
  • Beiträge: 842
Fehlerbehandlung Hilfe
« am: März 12, 2019, 08:11:47 »
Hallo,
Ich habe hier einen Code von Herrn Lorenz Hölscher ,) der auch sehr gut funktioniert.

Nur würde ich zusätzlich gerne eine bessere Fehlerbehandlung einbauen.
Wenn das Blatt Existiert soll der Code kein neues Worksheet einfügen und wksQuelle wieder schliessen.
    Dim wbkQuelle As Workbook
    Dim wksQuelle As Worksheet
    Dim varPfadDatei As Variant
    Dim wksZiel As Worksheet
   
    varPfadDatei = Application.GetOpenFilename("Alle Daten,*.xl*,Text Dateien, *.txt*", 1, "Daten auswählen", , False)
       
    If varPfadDatei = False Then
        Exit Sub
    End If
   
    Set wbkQuelle = Workbooks.Open(varPfadDatei)
    Set wksQuelle = wbkQuelle.Worksheets(1)
   
    Set wksZiel = ThisWorkbook.Worksheets.Add()     'Dieses Blatt wäre aber ganz leer
   
'    ThisWorkbook.Worksheets("Leer").Copy , ThisWorkbook.Worksheets("Leer")          'kann verwendet werden wenn eine Vorlage verwendet werden möchte
   
    Set wksZiel = ActiveSheet
   
    wksZiel.Name = Replace(NurDatei(varPfadDatei), ".xlsx", "")
   
    If ExistiertBlatt(wksZiel.Name) Then
        MsgBox "Blatt wurde bereits importiert!", vbCritical, p_cstrAppTitel
        wbkQuelle.Close xlDoNotSaveChanges
        Exit Sub
    Else
        wksQuelle.UsedRange.Copy wksZiel.Cells(1, 1)
    End If
   
    wbkQuelle.Close xlDoNotSaveChanges
   
    Set wbkQuelle = Nothing
    Set wksZiel = Nothing
End Sub

Public Function ExistiertBlatt(strBlattName As String) As Boolean
    Dim objBlatt As Object
   
    ExistiertBlatt = False
    For Each objBlatt In ThisWorkbook.Sheets
        If objBlatt.Name = strBlattName Then
            ExistiertBlatt = True
            Exit For
        End If
    Next objBlatt
End Function

Function NurDatei(ByVal strPfadDatei As String) As String
    Dim intPos As Integer
   
    intPos = InStrRev(strPfadDatei, "\")
    If intPos = 0 Then                  'dann war keine Datei darin enthalten
        NurDatei = ""
    Else
        NurDatei = Mid(strPfadDatei, intPos + 1)
    End If
End Function

und die functions...

Also wie würde hier eine Fehlerbehandlung aussehen müssen das worksheet.add nicht ausgeführt wird wenn die Datei bereist vorhanden ist und die wksQuelle auch wieder ordnungsgemäß geschlossen wird.

Danke für Eure Hilfe!

 

Offline ebs17

  • Access Guru
  • ****
  • Beiträge: 1070
Re: Fehlerbehandlung Hilfe
« Antwort #1 am: März 12, 2019, 08:21:49 »
Zitat
... wenn die Datei bereist vorhanden ist ...
Einen solchen erwarteten Zustand kann man doch prüfen, um dann bedingt von der Prüfung weiterzumachen (Abbrechen, Ersatzwert verwenden, Umgehen).
Eine Fehlerbehandlung sollte überwiegend auf unerwartete und/oder nicht konkret prüfbare Fehlerzustände reagieren. Wenn die Tür zu niedrig ist, würde man doch eher den Kopf einziehen statt sich nachfolgend Schmerztabletten einzuwerfen, u.a. auch, weil es einfach weitergehen kann.
Mit freundlichem Glück Auf!

Eberhard
 

Offline silentwolf

  • Access-Meister
  • ***
  • Beiträge: 842
Re: Fehlerbehandlung Hilfe
« Antwort #2 am: März 12, 2019, 08:27:09 »
Hallo Eberhard,
eigentlich ist es ja nicht die Datei hab mich verschrieben sondern das worksheet.
Ja verstehe schon was Du sagst nur irgendwie geht das noch nicht ganz nach Wunsch.
Werde weiter probieren )

Gruß
Albert
 

Offline ebs17

  • Access Guru
  • ****
  • Beiträge: 1070
Re: Fehlerbehandlung Hilfe
« Antwort #3 am: März 12, 2019, 09:03:52 »
Zitat
eigentlich ist es ja nicht die Datei hab mich verschrieben ...
Ja, Deine Beschreibung war mir aus sich alleine heraus nicht logisch auflösbar, und das Hinzufügen von eigenen Interpretationen  ist dann so eine Sache.

Empfehlung - Uraltlehre:
Ehe Du Codes hin- und herwirfst, schreibe einen Ablaufplan, also eine Übersicht, was wann warum erfolgen soll. Mit höherem Abstraktionsvermögen gelingt da einiges rein im Kopf, ansonsten nimmt man ein Blatt Papier und macht sich ein Bild mit Linien, Kästchen, Prüfungen usw.
Der Code muss dann nur umsetzen, was man geplant hat.
Mit freundlichem Glück Auf!

Eberhard
 

Offline silentwolf

  • Access-Meister
  • ***
  • Beiträge: 842
Re: Fehlerbehandlung Hilfe
« Antwort #4 am: März 12, 2019, 09:22:29 »
Hallo,
Zitat
Ehe Du Codes hin- und herwirfst, schreibe einen Ablaufplan, also eine Übersicht, was wann warum erfolgen soll. Mit höherem Abstraktionsvermögen gelingt da einiges rein im Kopf, ansonsten nimmt man ein Blatt Papier und macht sich ein Bild mit Linien, Kästchen, Prüfungen usw.
Tut mir sehr leid .. dachte wäre ein wenig verständlicher mit Code.
Danke aber für den Hinweis und werde mich bemühen es in Zukunft besser zu machen.


 

Offline Sebi

  • AOM Team
  • Global Moderator
  • Access-Meister
  • *****
  • Beiträge: 819
Re: Fehlerbehandlung Hilfe
« Antwort #5 am: März 13, 2019, 18:33:49 »
Ist das Problem gelöst oder sind noch Faregn offen?
Liebe Grüße Sebi
 

Offline silentwolf

  • Access-Meister
  • ***
  • Beiträge: 842
Re: Fehlerbehandlung Hilfe
« Antwort #6 am: März 15, 2019, 18:06:54 »
Hallo Selbi,

ja Danke ich hab es lösen können.
Hat zwar ein wenig gedauert aber immerhin.

Vielen Dank für die Nachfrage!

Gruß
Albert
 

 

Allgemeine Fehlerbehandlung möglich? - Alternative?

Begonnen von traggerBoard Access Programmierung

Antworten: 1
Aufrufe: 3300
Letzter Beitrag August 03, 2010, 17:40:26
von oma
Fehlerbehandlung bei starten des Formulars

Begonnen von skorwiBoard Formular

Antworten: 1
Aufrufe: 2319
Letzter Beitrag Februar 25, 2011, 21:09:16
von database
Fehlerbehandlung bei On Timer

Begonnen von MrMojoRisinBoard Access Programmierung

Antworten: 8
Aufrufe: 1740
Letzter Beitrag Juni 27, 2017, 15:00:22
von Lachtaube