PDA

Vollständige Version anzeigen : Fehlerbehandlung


Hopper
05.10.2001, 15:16
Hallo zusammen
Ich habe eine Fehlerroutine und möchte nun, wenn das Bild (auf Netzlaufwerk) nicht vorhanden ist den Bildnamen in einer MessageBox anzeigen. Mein Problem ist, dass es zwei Bilder gibt (Bild1 und Bild2) und ich nicht weiss, wie ich die MsgBox definieren muss. Hier mal mein Versuch :

Private Sub Seitenkopf_Format(Cancel As Integer, FormatCount As Integer)
On Error GoTo Seitenkopf_FormatErr

'Prüfen des Kontrollkästchens, wenn "nein" dann Sortimentsliste OHNE Bild
If Forms!F_Sortimentslistenfilter!chkBildJaNein = False Then Exit Sub

'Beginn der Bildzuordnungen
'Deklaration der einzelnen Variablen
Dim AktSeitenz As Integer
Dim BildStr As String
Dim Bildname1 As String
Dim Bildname2 As String
Dim StrTmpLaenge As Long
Dim StrGesLaenge As Long
Dim PosTrennz As Long
Dim db As Database
Dim X As Variant

Bildname1 = ""
Bildname2 = ""

'aktuelle Seite
AktSeitenz = Me.Page
'Zuweisen der beiden Grafiken der Variable BildStr
BildStr = Trim(GetPictureName(AktSeitenz))

'Wenn BildStr leer, Bild1 und Bild2 ausblenden
If BildStr = "" Then
Me![Bild1].Visible = Not (Me.Page = AktSeitenz)
Me![Bild2].Visible = Not (Me.Page = AktSeitenz)
Exit Sub
End If

'Pfad zu Grafiken
gBildPfad = "\ProdPhotosSortListe\"

'Gibt die Anzahl Zeichen ab dem ersten Zeichen der Zeichenfolge zurück
BildStr = Left(BildStr, (Len(BildStr) - 1))
'Gesamtlänge des Strings
StrGesLaenge = Len(BildStr)
'Bestimmen der Zeichenlänge bis zum ersten Trennzeichen
PosTrennz = InStr(BildStr, ";")

'Wenn PosTrennz gleich null, Bildname1 den String BildStr zuweisen
'Wenn PosTrennz nicht null, für Bildname1 den String BildStr von links bis zum Trennzeichen
'lesen und eine Stelle "abschneiden". Bildname2 von rechts, gesamte Länge minus
'PosTrennz
If PosTrennz = 0 Then
Bildname1 = BildStr
Else
Bildname1 = Left(BildStr, PosTrennz - 1)
Bildname2 = Right(BildStr, StrGesLaenge - PosTrennz)
End If

'Wenn Bildname1 leer, Bild1 auf der entsprechendne Seite ausblenden.
'Sonst Bild im Bild1 anzeigen
If Bildname1 = "" Then
Me![Bild1].Visible = Not (Me.Page = AktSeitenz)
Else
Me![Bild1].Visible = (Me.Page = AktSeitenz)
Me![Bild1].Picture = Left(CurrentDb.Name, Len(CurrentDb.Name) - Len(Dir(CurrentDb.Name))) & gBildPfad & Bildname1
End If

'Wenn Bildname2 leer, Bild2 auf der entsprechendne Seite ausblenden.
'Sonst Bild im Bild2 anzeigen
If Bildname2 = "" Then
Me![Bild2].Visible = Not (Me.Page = AktSeitenz)
Else
Me![Bild2].Visible = (Me.Page = AktSeitenz)
Me![Bild2].Picture = Left(CurrentDb.Name, Len(CurrentDb.Name) - Len(Dir(CurrentDb.Name))) & gBildPfad & Bildname2
End If

Seitenkopf_FormatExit:
'Seitenkopf_Format = gRetVal
Exit Sub

Und hier fängt meine Problem an :

Seitenkopf_FormatErr:
'gRetVal = 0
MsgBox "Die Grafik" & Chr(32) & Chr(32) & Bildname2 & Chr(32) & Chr(32) & "ist nicht vorhanden !", vbOKOnly
Resume Seitenkopf_FormatExit
End Sub

Das ganze passiert in einem Bericht/Report. Kann mit bitte jemand weiterhelfen ?

Danke schon mal zum voraus
Sabine

ransaier
05.10.2001, 16:01
Hallo Hopper,

versuch's mal hiermit:

variable = MsgBox("Die Grafik" & Chr(32) & Chr(32) & "hallo" & Chr(32) & Chr(32) & "ist nicht vorhanden !", vbOKOnly)

varibale deklarieren nicht vergessen.

Gruß,

Michael

Hopper
05.10.2001, 16:19
Hallo Michael

Danke für deine Bemühungen.
Leider verstehe ich es nicht ganz. Ich fülle ja die beiden Bilder bereits in Variablen ab(Bildname1 und Bildname2). Wenn ich jetzt in der MsgBox folgendes angeben : MsgBox "Die Grafik" & Chr(32) & Chr(32) & Bildname1 & Chr(32) & Chr(32) & Bildname2 & Chr(32) & Chr(32) & "ist nicht vorhanden !", vbOKOnly

werden mir beide Grafiken angezeigt und nicht nur die die fehlt. Einmal fehlt Bildname1 und ein andermal halt Bildname2. Anzeigen sollte er jedoch nur die Datei die fehlt. Kompliziert nicht ? Gut, vielleicht liegt es auch an meiner Erklärung.

Hast du noch ne Idee ?

Danke zum voraus
Gruss
Sabine

AWSW
05.10.2001, 16:30
Hallo Sabine,
hast Du schon mal die FileExist-Methode versucht ???

Versuche das mal:

Function DoesFileExist(strDatei As String) As Boolean
'Für Überprüfung ob Datei vorhanden, gibt entsprechend True oder False wieder...
DoesFileExist = IIf(Len(Dir(strDatei)) > 0, True, False)
End Function

und dann in Deinem Code:


Dim Vorhanden1 as String
Dim Vorhanden2 as String

Vorhanden1 = DoesFileExist(Bildname1)
If Vorhanden1 = False Then
MsgBox "Bild fehlt:" & Bildname1
Else
End if


Vorhanden2 = DoesFileExist(Bildname2)
If Vorhanden2 = False Then
MsgBox "Bild fehlt:" & Bildname2
Else
End if


Wenn ich Dich richtig verstehe, dann sollte das schon klappen ;)


Ich hoffe das hilft Dir :D

Hopper
05.10.2001, 23:10
Hallo Axel !

Die FileExist-Methode kannte ich noch gar nicht. Danke für deine Hilfe, es funktioniert genau so wie ich es möchte.

Gruss
Sabine

Hopper
08.10.2001, 08:01
Hallo

Die FileExist-Methode funktioniert ja sehr gut. Nun habe ich noch ein kleines Detail das mich stört. Wenn das Bild nicht gefunden wird, wird nun das Bild von der Seite vorher angezeigt anstatt ein leeres Feld. Woran liegt das den ?

Danke und Gruss
Sabine