Replica evento di una maschera in un report. Avere l'immagine aggiornata anche nel report

di il
7 risposte

Replica evento di una maschera in un report. Avere l'immagine aggiornata anche nel report

Salve a tutti,

Ho creato in una maschera un evento che mi permettesse di cambiare immagine (Immagine477) in conseguenza alla selezione di un altro campo di testo con l'elenco delle immagini chiamata "CasellaCombinata5). Quindi con due campi ho creato questo evento:
Private Sub CasellaCombinata5_Change()
If CasellaCombinata5.Text <> "" Then
Immagine477.Picture = "C:\Users\(mio utente)\Desktop\" & CasellaCombinata5.Text & ".png"
End If
'Immagine477.Picture = "C:\Users\(mio utente)\Desktop\portafoglio.png"
End Sub
Tuttavia quando mando la maschera al report l'immagine non viene aggiornata.
Premetto che ho già messo il comando che permetta di stampare nel report il record corrente della maschera.

Qualcuno sa come replicare un evento anche nel report?
Grazie

7 Risposte

  • Re: Replica evento di una maschera in un report. Avere l'immagine aggiornata anche nel report

    Non usare png ma usa bmp... soprattutto se distribuirai runtime.
    Passa all'apertura del reportage il parametro Args con il path dell'immagine e su load recuperi da OpenArgs e lo assegni all'immagine.
  • Re: Replica evento di una maschera in un report. Avere l'immagine aggiornata anche nel report

    Ho cambiato in .bmp.
    Comunque non capisco benissimo quello che dici dopo. Sono più o meno agli inizi con access. Mi potresti illustrare quando hai tempo i passaggi precisi?
    non ho mai usato il parametro args e openargs..
    Grazie
  • Re: Replica evento di una maschera in un report. Avere l'immagine aggiornata anche nel report

    elena5 ha scritto:


    Comunque non capisco benissimo quello che dici dopo. Sono più o meno agli inizi con access. ...
    Qui spiega
    Il sesto parametro è appunto OpenArgs che dovrai valorizzare con il Path dell'immagine.
    Nell'evento Open del Report accedendo alla proprietà Me.OpenArgs troverai il path che hai appena passato dalla maschera e lo assegni al controllo del report che ti interessa.

    Attenzione al fatto che se apri il report da altre maschere o con altro codice dove non è previsto l'uso di OpenArgs, nel report dovrai inserire la verifica che sia stato valorizzato e solo in quel caso far eseguire il codice sull'immagine. (una If, in sostanza)
  • Re: Replica evento di una maschera in un report. Avere l'immagine aggiornata anche nel report

    Scusate,

    Riprendendo un po' da quello che avete detto ho

    ripreso l'evento dalla maschera e messa nell'evento report:

    Private Sub Report_Open(Cancel As Integer)
    Me.OpenArgs
    If CasellaCombinata5.Text <> "" Then
    Immagine477.Picture = "C:\Users\OShallaris\Desktop\" & CasellaCombinata5.Text & ".bmp"
    End If
    'Immagine477.Picture = "C:\Users\OShallaris\Desktop\Portafoglio.bmp"
    End Sub

    e poi nel load come diceva su:
    Private Sub Report_Load()
    Me.OpenArgs
    If CasellaCombinata5.Text <> "" Then
    Immagine477.Picture = "C:\Users\OShallaris\Desktop\" & CasellaCombinata5.Text & ".bmp"
    End If
    'Immagine477.Picture = "C:\Users\OShallaris\Desktop\Portafoglio.bmp"
    End Sub

    però non so precisamente come concretizzare quello che avete proposto..
  • Re: Replica evento di una maschera in un report. Avere l'immagine aggiornata anche nel report

    Elena, devi passare al Report il PATH e di conseguenza caricare l'immagine... nel report non serve tutta quella roba della casella combinata, l'hai già gestita nella Form..., quindi se OpenArgs contiene un PATH valido lo assegni alla Picture...!
  • Re: Replica evento di una maschera in un report. Avere l'immagine aggiornata anche nel report

    Ok..
    Ma se il path è C:\Users\OShallaris\Desktop\Portafoglio.bmp e la picture è Immagine477.Picture
    quando vado su vba
    Private Sub Report_Open(Cancel As Integer)
    DoCmd.OpenReport...

    e poi??

    e su

    Private Sub Report_Load()

    ---


    End Sub.

    Qualcuno mi può aiutare a scriverla?
    Come concetto l'ho capito ma non riesco ad applicarlo..
  • Re: Replica evento di una maschera in un report. Avere l'immagine aggiornata anche nel report

    In che sezione hai posizionato il controllo Immagine...?
    Credo sia il Corpo...!
    Quindi su OPEN recuperi il Path, lo validi e su Format del Corpo lo applichi...!
    Non mi piace postare codice PRONTO... ma vorrei non lo CopiaIncollassi, quanto ci riflettessi sopra...!!!!

    Quindi sperando tu sappia come passare il PATH tramite Parametro ARGS del metodo OpenReport...:
    
    Option Compare Database
    Option Explicit
    
    Dim imgPATH As String
    
    Private Sub Corpo_Format(Cancel As Integer, FormatCount As Integer)
        Me.NomeControlloImmagine.Picture = imgPATH
    End Sub
    
    Private Sub Report_Open(Cancel As Integer)
        If Len(Me.OpenArgs) > 0 Then
            ' Verifico che il File esista...!
            If Len(Dir(Me.OpenArgs)) > 0 Then imgPATH = Me.OpenArgs
        End If
    End Sub
Devi accedere o registrarti per scrivere nel forum
7 risposte