Access-o-Mania

Access-Forum (Deutsch/German) => Bericht => Thema gestartet von: carman0103 am Januar 14, 2015, 10:01:34

Titel: Bild kommt nicht
Beitrag von: carman0103 am Januar 14, 2015, 10:01:34
Halli Hallo,

ich hab da mal ne Frage. Ich habe in einem Bericht einen Code eingebaut, mit dem ich ein Bild im Bericht anzeigen lassen möchte. Das hat auch mal funktioniert. Jetzt habe ich das selbe in einer anderen Datenbank versucht und es funzt nicht. Hab ich irgendwas übersehen?

Public Sub form_Current()
    BildAktualisieren1
End Sub

Public Sub BildAktualisieren1()
    On Error GoTo BildAktualisieren1_Err
    Dim strpfad As String
    strpfad = Nz(Me!Pfad & Me!VBild, "")
    If Dir(strpfad) = "" Then
        strpfad = ""
    End If
BildAktualisieren1_Exit:
    Me!picvorschaubild.Picture = strpfad
    Exit Sub
BildAktualisieren1_Err:
    MsgBox "Das Bild konnte nicht geladen werden." & vbCrLf & "Fehler-Nr: " & Err.Number & vbCrLf & "Fehler-Beschreibung: " & Err.Description
    strpfad = ""
    Resume BildAktualisieren1_Exit
End Sub

Private Sub Pfad_Click()
FollowHyperlink Me!Pfad
End Sub

Private Sub picvorschaubild_Click()

End Sub

Function FctNr()
'gibt eine laufende Nummer im Formular zurück
'Anzeige im Formular durch ein Feld mit Steuerelementinhalt: =FctNr()

  On Error GoTo FctNr_Error

  Me.RecordsetClone.Bookmark = Me.Bookmark
  FctNr = Me.RecordsetClone.AbsolutePosition + 1

FctNr_Exit:
  Exit Function

FctNr_Error:
  If Err.Number = 3021 Then FctNr = 0   'bei neuem DS
  Resume FctNr_Exit

End Function


Vielen Dank im Voraus für Eure Hilfe
carman0103
Titel: Re: Bild kommt nicht
Beitrag von: database am Januar 14, 2015, 11:54:18
Hallo,

ZitatIch habe in einem Bericht einen Code eingebaut...
Wenn du ganz sicher bist, dass es sich dabei um einen BERICHT handelt, wirst mit ....
   
    Public Sub form_Current()

nicht ganz glücklich werden.

Schreib statt dessen     Report_Current

Titel: Re: Bild kommt nicht
Beitrag von: carman0103 am Januar 14, 2015, 12:22:28
Ups, ja das konnte ja nicht gehen. Hab das jetzt geändert, aber es funktioniert trotzdem nicht.

Momentan sieht der Code so aus:

Public Sub Report_Current()
    BildAktualisieren1
End Sub

Public Sub BildAktualisieren1()
    On Error GoTo BildAktualisieren1_Err
    Dim strpfad As String
    strpfad = Nz(Me!Pfad & Me!VBild, "")
    If Dir(strpfad) = "" Then
        strpfad = ""
    End If
BildAktualisieren1_Exit:
    Me!picbericht.Picture = strpfad
    Exit Sub
BildAktualisieren1_Err:
    MsgBox "Das Bild konnte nicht geladen werden." & vbCrLf & "Fehler-Nr: " & Err.Number & vbCrLf & "Fehler-Beschreibung: " & Err.Description
    strpfad = ""
    Resume BildAktualisieren1_Exit
End Sub

Private Sub picbericht_Click()

End Sub


Titel: Re: Bild kommt nicht
Beitrag von: MaggieMay am Januar 14, 2015, 12:55:32
Hi,

ein Bericht hat kein Current-Ereignis, statt dessen musst du das Format-Ereignis des zugehörigen Berichtsbereichs nehmen.

Merke: Ereignisprozeduren sollten stets aus der Entwurfsansicht initiiert werden.

Titel: Re: Bild kommt nicht
Beitrag von: DF6GL am Januar 14, 2015, 13:12:46
Hallo,

"ein Bericht hat kein Current-Ereignis"

das stimmt so seit A2010 (A2007?) nicht mehr....
Titel: Re: Bild kommt nicht
Beitrag von: carman0103 am Januar 14, 2015, 13:34:41
Danke für Eure Antworten.

Mit dem, was MaggieMay geschrieben hat komme ich nicht klar, sowas habe ich noch nicht gemacht.
Titel: Re: Bild kommt nicht
Beitrag von: MaggieMay am Januar 14, 2015, 13:35:16
@DF6GL:
Ok, da hast du recht (ab 2007 sogar!), aber das Ereignis tritt nur in der Berichtsansicht auf und ist für diese Aktion nicht geeignet.

@carman0103:
Gehe in den Berichtsentwurf, lass dir die Eigenschaften anzeigen, Register "Ereignis", markiere den Berichtsbereich in dem sich das Bild befindet, wähle beim Ereignis "Beim Formatieren" die Ereignisprozedur und gehe über die drei Punkte in den VBA-Editor.
Titel: Re: Bild kommt nicht
Beitrag von: carman0103 am Januar 14, 2015, 14:01:38
@MaggieMay

Dankeschön für die Erklärung. Habe dort jetzt meinen Code eingegeben. Aber es passiert immer noch nichts.  :'(
Titel: Re: Bild kommt nicht
Beitrag von: MaggieMay am Januar 14, 2015, 14:55:09
Du musst den Bericht in der Seitenvorschau öffnen.
Titel: Re: Bild kommt nicht
Beitrag von: carman0103 am Januar 14, 2015, 15:00:37
Hab ich ja. Aber das Bild erscheint nicht. Muss ich bei dem Code irgendwas anders machen?



Private Sub Detailbereich_Format(Cancel As Integer, FormatCount As Integer)

End Sub

Public Sub Report_Current()
    BildAktualisieren1
End Sub

Public Sub BildAktualisieren1()
    On Error GoTo BildAktualisieren1_Err
    Dim strpfad As String
    strpfad = Nz(Me!Pfad & Me!VBild, "")
    If Dir(strpfad) = "" Then
        strpfad = ""
    End If
BildAktualisieren1_Exit:
    Me!picbericht.Picture = strpfad
    Exit Sub
BildAktualisieren1_Err:
    MsgBox "Das Bild konnte nicht geladen werden." & vbCrLf & "Fehler-Nr: " & Err.Number & vbCrLf & "Fehler-Beschreibung: " & Err.Description
    strpfad = ""
    Resume BildAktualisieren1_Exit
End Sub

Private Sub picbericht_Click()

End Sub

Titel: Re: Bild kommt nicht
Beitrag von: MaggieMay am Januar 14, 2015, 15:24:33
ZitatHabe dort jetzt meinen Code eingegeben.
Nein, hast du nicht.
Fällt dir hierbei gar nichts auf:Private Sub Detailbereich_Format(Cancel As Integer, FormatCount As Integer)

End Sub

Public Sub Report_Current()
    BildAktualisieren1
End Sub
;D
Titel: Re: Bild kommt nicht
Beitrag von: carman0103 am Januar 14, 2015, 15:29:49
Ich bin leider kein VBA-Genie. :-D

Ich schätze mal, dass das Public Sub weg muss ?
Titel: Re: Bild kommt nicht
Beitrag von: MaggieMay am Januar 14, 2015, 15:33:13
Ich dachte eher daran, dass die Prozedur leer ist...  ::)
Titel: Re: Bild kommt nicht
Beitrag von: carman0103 am Januar 14, 2015, 15:37:21
Also so?

Private Sub Detailbereich_Format()

End Sub

Public Sub Report_Current()
    BildAktualisieren1
End Sub
Titel: Re: Bild kommt nicht
Beitrag von: MaggieMay am Januar 14, 2015, 15:54:05
Die Prozedur beginnt mit "Private Sub" und endet mit "End Sub" und dazwischen passiert nichts.
Ist das wirklich so schwer zu verstehen???

Wie gesagt, ich rede hier vom Format-Ereignis.
Titel: Re: Bild kommt nicht
Beitrag von: carman0103 am Januar 14, 2015, 15:59:14
Wie gesagt, bin da nicht so bewandert.  Ich hab es mal so versucht, aber das geht auch nicht.


Private Sub Detailbereich_Format(Cancel As Integer, FormatCount As Integer)
    BildAktualisieren1
End Sub

Public Sub BildAktualisieren1()
    On Error GoTo BildAktualisieren1_Err
    Dim strpfad As String
    strpfad = Nz(Me!Pfad & Me!VBild, "")
    If Dir(strpfad) = "" Then
        strpfad = ""
    End If
BildAktualisieren1_Exit:
    Me!picbericht.Picture = strpfad
    Exit Sub
BildAktualisieren1_Err:
    MsgBox "Das Bild konnte nicht geladen werden." & vbCrLf & "Fehler-Nr: " & Err.Number & vbCrLf & "Fehler-Beschreibung: " & Err.Description
    strpfad = ""
    Resume BildAktualisieren1_Exit
End Sub

Private Sub picbericht_Click()

End Sub



Wie würdest Du denn den Code umbauen?
Titel: Re: Bild kommt nicht
Beitrag von: MaggieMay am Januar 14, 2015, 16:04:12
"Pfad" und "VBild" sind Steuerelemente im Detailbereich des Berichts und "picbericht" befindet sich ebenfalls dort?
Titel: Re: Bild kommt nicht
Beitrag von: carman0103 am Januar 14, 2015, 16:07:27
Ja, ganz genau
Titel: Re: Bild kommt nicht
Beitrag von: MaggieMay am Januar 14, 2015, 16:49:20
Teste den Code im Unterbrechungsmodus, indem du vor dem Öffnen des Berichts einen Haltepunkt in die Prozedur setzt. Danach geht es mit F8 von Zeile zu Zeile. Schau dir an, ob die Zusammensetzung des Bildpfades korrekt ist oder was sonst noch passiert.
Titel: Re: Bild kommt nicht
Beitrag von: carman0103 am Januar 14, 2015, 17:10:58
Ich hab das mal versucht. Ohne Ergebnis...  :'(
Titel: Re: Bild kommt nicht
Beitrag von: MaggieMay am Januar 14, 2015, 17:12:27
Dann lade eine Beispiel-DB hoch - komprimiert und gezippt - damit wir der Sache auf die Spur kommen.
Titel: Re: Bild kommt nicht
Beitrag von: database am Januar 14, 2015, 18:19:06
Hi,

ZitatIch hab das mal versucht. Ohne Ergebnis...  :'(
Ohne Ergebnis heißt was genau bitte ... ?
War die Variable strpfad  mit Daten gefüllt oder war sie beim Durchspringen des Codes leer?
Stehen in den beiden Feldern Pfad und VBild am Bericht Daten drin, wenn dieser angezeigt wird oder ist eines oder beide leer?
Wenn was drin steht, was steht genau in Pfad drinnen?
Was steht genau in VBild drinnen?
Woher kommen die Daten in Pfad und VBild ?
Wenn sie aus der Datenherkunft des Berichts kommen sollten - sind die Daten in der zugrundeliegenden Abfrage / oder Tabelle für den aktuell angezeigten Datensatz vorhanden?
Titel: Re: Bild kommt nicht
Beitrag von: carman0103 am Januar 15, 2015, 09:57:20
Ich hab den Fehler gefunden. Im Feld VBild treffe ich nur die Auswahl der Bildnummer zu einem Datensatz. In diesem Feld steht noch keine Dateierweiterung dabei. Die wird in der Abfrage über ein weiteres Feld hinzugefügt. Also habe ich dieses Feld in den Code eingesetz und siehe da, nun geht es. Manchmanl steht man eben voll auf dem Schlauch  ;). Aber vielen Dank für Eure Hilfe.
Titel: Re: Bild kommt nicht
Beitrag von: carman0103 am Januar 15, 2015, 09:58:00
Vielen Dank nochmal für die Hilfe
Titel: Re: Bild kommt nicht
Beitrag von: database am Januar 15, 2015, 10:28:59
Hallo,

schön dass dir geholfen werden konnte.

Wenn du die Daten in einer Abfrage zusammenstellst, kannst du die Dateiendungen auch gleich in der Abfrage an den Inhalt des Feldes VBild anhängen, heißt du benötigst nicht unbedingt ein zusätzliches Feld im Formular oder im Code.

In der Abfrage schreibst du dann sinngemäß:

VBildX:[VBild] & ".jpg"  ... wenn du immer die gleichen Endungen im Einsatz hast (hier eben *.jpg)
oder

VBildX:[VBild] & "." & [FeldMitDerDateiendung]  ... wenn du diese Endungen in einem eigenen Feld erfasst hast

Am Formular verwendest du dann statt VBild das Feld VBildX und ebenso im Code
Titel: Re: Bild kommt nicht
Beitrag von: carman0103 am Januar 15, 2015, 12:46:23
Genau so hab ich das ja auch gelöst. Aber danke für den Hinweis.