Access-o-Mania

Access-Forum (Deutsch/German) => Bericht => Thema gestartet von: carman0103 am August 14, 2011, 08:34:36

Titel: Bild anzeigen im Bericht
Beitrag von: carman0103 am August 14, 2011, 08:34:36
Hallo,

ich stehe vor einem Problem. In einem Formular lasse ich mir zu einem DS ein Bild anzeigen. Dies erscheint, sobald der DS angezeigt wird. Habe dafür folgenden Code verwendet:

Private Sub BildAktualisieren1()
    On Error GoTo BildAktualisieren1_Err
    Dim strpfad As String
    strpfad = Nz(Me!Pfad & Me!Vorschau, "")
    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


Funktioniert auch super. Doch wenn ich diesen Code in einem Bericht verwende, erscheint das Bild erst, nachdem ich auf die dafür vorgesehene Fläche klicke. Was muss ich ändern?

LG
carman0103

Titel: Re: Bild anzeigen im Bericht
Beitrag von: database am August 14, 2011, 08:53:45
Hallo,

... und aus welchem (Berichts)-Ereignis rufst du diese Aktualisierung auf?

Der Code einer Sub alleine bewirkt nichts, wenn diese nicht in irgendeiner Form aufgerufen wird.

Beispiel:


Private Sub Report_Open(Cancel As Integer)
Call BildAktualisieren
End Sub


..oder ein anderes geeignetes Ereignis des Berichts, wobei Pfad und Vorschau Felder sein müssen, die sich am Bericht befinden sonst läuft das mit Me! nicht

HTH
Titel: Re: Bild anzeigen im Bericht
Beitrag von: carman0103 am August 14, 2011, 09:34:48
also im Moment sieht der komplette Code so aus:

Private Sub picbericht_Click()

End Sub



Private Sub Report_Current()
    BildAktualisieren1
End Sub


Private Sub BildAktualisieren1()
    On Error GoTo BildAktualisieren1_Err
    Dim strpfad As String
    strpfad = Nz(Me!Pfad & Me!Vorschau, "")
    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


Titel: Re: Bild anzeigen im Bericht
Beitrag von: DF6GL am August 14, 2011, 09:41:21
Hallo,

ruf die Sub beim Berichtsereignis "Beim Formatieren" bzw. "Beim Drucken" auf.
Titel: Re: Bild anzeigen im Bericht
Beitrag von: carman0103 am August 14, 2011, 09:47:58
bin in VBA nicht so fit. Hab mir den Code bis hier schon aus dem Forum besorgt.  Wie sähe denn der Code aus?
Titel: Re: Bild anzeigen im Bericht
Beitrag von: database am August 14, 2011, 12:16:12
Hallo,

wenn du den Bericht im Enwurfsmodus offen hast, klick auf 'Detailbereich' des Berichts mit der rechten Maustaste und wähle 'Eigenschaften'

Dann gehst du auf die Registerkarte 'Ereignisse' und dort auf 'Beim Formatieren' und wählst aus dem Dropdown [Ereignisprozedur], danach klickst auf die 3 Punkte daneben.

Du befindest dich in der Ereignisprozedur 'Beim Formatieren' des Detailbereichs deines Berichts.


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

Call BildAktualisieren1

End Sub


Wobei der Code der Sub BildAktualisieren1 als Public Sub in einem Standardmodul stehen sollte.
Me! ist dann durch Forms!DeinFormularName zu ersetzen wenn sich die Pfadfelder am Formular befinden aus dem du den Bericht aufrufst.

Das Bildsteuerelement am Bericht MUSS picbericht heissen!

Den code der Sub änderst du dann wie folgt:



Public Sub BildAktualisieren1()
   On Error GoTo BildAktualisieren1_Err
   Dim strpfad As String
   strpfad = Nz(Forms!DeinFormularName!Pfad & Forms!DeinFormularName!Vorschau, "")
   If Dir(strpfad) = "" Then
       strpfad = ""
   End If

   Me!picbericht.Picture = strpfad


BildAktualisieren1_Exit:
       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



HTH
Titel: Re: Bild anzeigen im Bericht
Beitrag von: carman0103 am August 14, 2011, 12:24:44
funktioniert leider nicht. Kommt ne Meldung Fehler beim Kompilieren.....
Titel: Re: Bild anzeigen im Bericht
Beitrag von: database am August 14, 2011, 12:27:32
Langsam, langsam ... ich hab' noch eine Änderung nachgeliefert.

Titel: Re: Bild anzeigen im Bericht
Beitrag von: carman0103 am August 14, 2011, 13:08:23
es funzt immer noch nicht  ???

hab jetzt folgenden Code da stehen:

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

Call BildAktualisieren1

End Sub


Public Sub BildAktualisieren1()
    On Error GoTo BildAktualisieren1_Err
    Dim strpfad As String
    strpfad = Nz(Forms!MeinFormularName!Pfad & Forms!MeinFormularName!Vorschau, "")
    If Dir(strpfad) = "" Then
        strpfad = ""
    End If

    Me!picbericht.Picture = strpfad


BildAktualisieren1_Exit:
        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


kommt immer wieder die Meldung: "Fehler beim Kompilieren"
Titel: Re: Bild anzeigen im Bericht
Beitrag von: DF6GL am August 14, 2011, 17:40:50
Hallo,


ich nehme mal an, Dein Bericht heißt nicht "Forms!MeinFormularName"  und die Felder "Pfad" und "Vorschau" sind im Bericht selber vorhanden (und der Schrägstrich fehlt darin nicht ;-)  )


Wenn der folgende Code im Berichtsmodul (nicht in einem Standardmodul) steht, dann sollte (könnte) der so lauten:

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

Call BildAktualisieren1

End Sub


Private Sub BildAktualisieren1()
    On Error GoTo BildAktualisieren1_Err
    Dim strpfad As String
    strpfad = "" & Me!Pfad & Me!Vorschau
    If Dir(strpfad) = "" Then
        strpfad = ""
    End If

    Me!picbericht.Picture = strpfad


BildAktualisieren1_Exit:
        Exit Sub

BildAktualisieren1_Err:
    MsgBox "Das Bild konnte nicht geladen werden." & vbCrLf & "Fehler-Nr: " & Err.Number & vbCrLf & "Fehler-Beschreibung: " & Err.Description
    Resume BildAktualisieren1_Exit
End Sub




Wenn das Bild immer noch nicht richtig bei allen DS gedruckt wird, dann versuch, den Code in der "Detailbereich_Print"-Ereignisprozedur einzubauen.
Titel: Re: Bild anzeigen im Bericht
Beitrag von: database am August 14, 2011, 18:52:06
Hallo,

@Franz
Pffftt,....
Leider hat er nicht bekanntgegeben, WO er den Code stehen hat noch wissen wir bislang ob die Felder im Bericht sind oder am Aufruf-Form....
Des is scho a bissl schwierig ...   ;)

Aaaaaberrr ...

@carman0103
hier ...    Nz(Forms!MeinFormularName!Pfad & Forms!MeinFormularName!Vorschau, "")  ...  solltest du MeinFormularName  durch den Namen deines Formulars ersetzen, von dem aus der Aufruf erfolgt, wenn sich die Felder Pfad und Vorschau auf selbigem befinden und am Bericht nicht vorhanden sind und der Code dieser Sub sich in enem Standardmodul befindet.
Sind die Felder am Bericht vorhanden und der Code der Sub ist ebenfalls im Berichtsmodul und NICHT in einem Standardmodul dann steht dort Me!Pfad und Me!Vorschau.

Verrate uns doch bitte mal GENAU deine Gegebenheiten.  8)

Zitatkommt immer wieder die Meldung: "Fehler beim Kompilieren"
Stell dich mal in den VBA-Editor und wähle im Menü den Punkt 'Debuggen' und hier gleich den ersten Unterpunkt 'Kompilieren von DeinDatenbankname'

Wo motzt Access wegen des Kompilierungsfehlers? Welche Zeile wird dabei markiert?
Titel: Re: Bild anzeigen im Bericht
Beitrag von: carman0103 am August 15, 2011, 10:37:33
Danke an alle. Der Code von DF6GL funktioniert. Vielen Dank.