Report da Arguments

di il
4 risposte

Report da Arguments

Buonasera.

Vorrei avere un chiarimento in quanto non riesco ad ottenere ciò che mi serve.

Vengo al dunque:
devo aprire un report da una maschera; per sicurezza apro sempre l'anteprima che poi stampo in seguito, per cui digito

Dim stDocName as String

stDocName="Report_A"
DoCmd.OpenReport stDocName, acPreview, , , , Me.Codice
dove "Me.txtCFColt" è un campo già presente e valorizzato.

Nel caricamento del report ho scritto:

Private Sub Report_Load()

me.Codice = me.OpenArgs
exit sub
Se inserisco l'Argument in Report_Open (Cancel as Integer), mi da errore e si blocca, mentre se lo metto come da codice, la casella la trovo regolarmente valorizzato con l'Argument indicato nella OpenReport.

Da tener presente che, per il report, vado nel Generatori di Query interna allo stesso Report (quindi non basato su una query esterna) dove, come criterio di filtraggio dei dati, vorrei poter usare il valore che già trovo inserito nella Me.Codice (quindi, di conseguenza, ciò che è inserito nell'OpenArgs) presente nell'intestazione del Report in apertura, ma non va.

Il report si carica, escono dei valori calcolati indipendente dal Generatore di query, ma il Corpo esce tutto bianco; in pratica, parlando come per le maschere, "non ha effettuato il Requery". Ho letto qualche vecchio post di cui si parla di come fare il "Requery su un Report", ma mi da errore o non mi restituisce ciò che ho bisogno.

Da tener presente che, nella Query interna al Report, nel Criterio di filtraggio dati, se inserisco direttamente il valore del campo della Maschera da cui richiamo il Report (per esempio: Maschere![Maschera]![Codice]), questo si apre e restituisce i dati che mi servono, solo che non voglio legare il report alla maschera, ma farlo aprire indipendentemente.

Suggerimenti?

4 Risposte

  • Re: Report da Arguments

    A parte aver accennato a [Me.txtCFColt] che poi non usi... nella spiegazione...
    Non ho capito quando dici:

    carlo pots ha scritto:


    ....
    Se inserisco l'Argument in Report_Open (Cancel as Integer), mi da errore e si blocca, mentre se lo metto come da codice, la casella la trovo regolarmente valorizzato con l'Argument indicato nella OpenReport.
    Come fai ad inserire iArgoument in Open...? e cosa significa se lo metti da Codice...?
    
    Private Sub Report_Open(Cancel As Integer)
       If Len(Me.OpenArg)>0 then
          me.Codice=Me.OpenArgs
       End If
    End Sub
    Ovviamente il Controllo [Codice] in questo caso DEVE essere UNBOUND... altrimenti fai dei danni..

    Per il resto non ho ben chiaro...
  • Re: Report da Arguments

    Perdonami, ho trascritto i reali nomi dei campi.
    Cerco di spiegarmi meglio affinché ti mi capisca.

    Ho una tabella denominata "Contabilita", che ha, tra i vari campi del record, i campi "Codice", e "Partita"
    Da un pulsante di una maschera X (basato su tabella "Contabilita") io apro il report A (sempre basato su tabella "Contabilita") inserendo l'argument che mi serve, nel caso specifico il valore di un campo chiamato "me.Codice" e quindi:
    
    Dim stDocName as String
    
    stDocName="Report_A"
    DoCmd.OpenReport stDocName, acPreview, , , , Me.Codice
    
    E questo credo sia pacifico, giusto?

    Ora, considera che, con il Generatore di Query del report che devo aprire, io devo evidenziare tutti i record della tabella Contabilita che hanno il campo "Codice" che ho argomentato, e quindi procedo con:
    
    Private Sub Report_Load()
    
    me.Codice = me.OpenArgs
    exit sub
    
    Se inserisco lo stop a questa riga del report, quando viene aperto me.Codice è regolarmente argomentato ed infatti, nel campo Me.Codice nell'intestazione del report mi ritrovo il valore regolarmente restituito.

    Adesso, il problema sta nel fatto che, usando il Generatore di query (cerco di descrivertelo maccheronicamente, dato che Sql lo sto studiando da un pò, non farmene una colpa) del Report ho inserito i vari campi da farmi restituire, ma, nel Criterio (quindi come filtro), di un campo "Codice" della Query, ho inserito sì il valore di Me.Codice ma, attenzione, NON lo vorrei riprendere dalla Maschera (quindi non vorrei inserire nel criterio la riga
    
    Maschere![X]![Codice]
    da dove apro il Report (altrimento lo legherei esclusivamente a quella maschera), bensì lo vorrei riprendere dall'intestazione del Report e, quindi vorrei inserire
    
    Report![Report_A]![Codice]
    E quindi, diciamo, che dovrei fare il Requery del Report, solo che non me lo permette.
    Infatti, quando apro il report A mi esce regolarmente il campo me.Codice con il valore in OpenArgs, però non vengono restituiti i vari record filtrati.
    Spero di averti reso l'idea.
    Come me ne devo ... uscire con successo?
  • Re: Report da Arguments

    carlo pots ha scritto:


    io devo evidenziare tutti i record di una tabella che hanno il campo "Codice" che ho argomentato
    Devi evidenziare nel report? A me viene in mente la "formattazione condizionale".

    Poi...io non ho capito nulla. Potresti descrivere dettagliatamente un po' tutto:
    - Report_A su quale tabella/query poggia (nome proprio)
    - nomi propri di tutti i campi...per inquadrare meglio il campo [Codice] a quale tabella appartiene
    - cosa devi fare veramente (usando i nomi propri)
  • Re: Report da Arguments

    OsvaldoLaviosa ha scritto:


    carlo pots ha scritto:


    io devo evidenziare tutti i record di una tabella che hanno il campo "Codice" che ho argomentato
    Devi evidenziare nel report? A me viene in mente la "formattazione condizionale".
    Per "Evidenziare" intendo "Farmi restituire l'elenco dei record della tabella che hanno, come [Codice] il valore in Me.Codice".

    Per il resto, se leggi bene il post, sono stato abbastanza dettagliato.
    Non riesco a postare immagini del Generatore di Query, se no ti farei vedere come compongo la Query
Devi accedere o registrarti per scrivere nel forum
4 risposte