Stampare report con condizione

di
Anonimizzato13002
il
6 risposte

Stampare report con condizione

Ciao a tutti!
E' da poco che mi diletto nell'utilizzo di access e non so se quello che intendo fare sia possibile: ho creato una maschera di inserimento dati che mi salva i record nella tabella "Tabella Inserimento". Ho creato successivamente 3 modelli di report: mi piacerebbe filtrare i record in base a un intervallo di date e stampare il report1 se il campo "Cliente" della tabella ha inserito il nome Rossi, il report2 se il campo "Cliente" della tabella ha inserito il nome Bianchi e il report3 se il campo "Cliente" della tabella ha inserito il nome Neri.
Ho provato a scervellarmi ma non ce ne vado fuori.

Ringrazio chiunque mi possa dare una dritta.
Ciaooo!
Lucio

6 Risposte

  • Re: Stampare report con condizione

    Direi che non mi torna il motivo dei 3 Report che vai a differenziare per CLIENTE... fosse solo questo il motivo sei altamente fuori strada... sembra più un'approccio di EXCEL che di un sistema basato si un Database.
    In sostanza come hai pensato di filtrare per DATA avresti modo di inserire un ulteriore criterio per NOME... o altro...!

    L'azione o metodo OpenReport supporta un Parametro chiamato WHERE che consente di passare una stringa contenente il CRITERIO che verrà applicato alla proprietà FILTER del report, con conseguente restrizione della selezione ai soli Records che soddisfano.

    Detto questo per filtrare per data devi prestare attenzione alla particolarità dei campi data...!

    Ti invito a leggere questo articolo Tutorial:
    http://forum.masterdrive.it/microsoft-office-access-vba-23/vba-jet-tutorial-uso-campi-data-56461/

    Nel Tutorial i concetti sono applicati alla gestione di una QUERY ma, nel tuo caso è esattamente identico dal punto di vista tecnico, alla costruzione della stringa WHERE da passare ad OPENFORM...

    I criteri si possono concatenare con AND e OR
    CRITERIO1 AND CRITERIO2 AND CRITERIO3

    Nel tuo caso avrai:
    
    Data>DataiNIZIO and Data<DataFINE AND Nome=TuoNome
    Attenzione alle formattazioni di Date e Testo.
  • Re: Stampare report con condizione

    Ciao Alex e grazie per la risposta.
    Sicuramente hai ragione tu nel dire che forse sarebbe meglio utilizzare excel piuttosto che access, ma mi sarebbe venuto più comodo l'utilizzo del database.
    Per quanto riguarda il filtro per l'intervallo di date e quello per il cliente diciamo che ho risolto inserendo nella condizione WHERE il codice che posto di seguito:
     [Data] Between CDate(Maschere![Stampa]![Dal data]) And CDate(Maschere![Stampa]![Al data]) And [Cliente]="Rossi" 
    Questo però mi stampa il report1, quello che indico nel "nome Report"...
    Quello che cerco è di stampare, con un unico comando, tutti i report compresi nell'intervallo di tempo che inserisco, differenziandoli a seconda del valore presente nel campo [Cliente].
    Spero di essere stato chiaro, e non mandatemi al se quello che chiedo è impossibile!
    Grazie per la pazienza!
    Lucio
  • Re: Stampare report con condizione

    Devi avermi frainteso, non ti ho suggerito Excel, ma ho detto che l'approccio che usi è tipico di chi usa Excel e probabilmente non adeguato in modo completo all'uso di un Database.

    Non si capisce ad esempio perchè ha 3 REPORT... se l'intento è stampare dati relativi a 3 Persone non si realizzano REPORT per persone singole... immaginati se domani le persone sono 10... che fai 10 Report...?

    Quindi se, oltre al criterio che ormai hai costruito, ci spieghi meglio lo scenario dei 3 REPORT capiamo anche se l'appoccio che hai usato è corretto o va modificato.
  • Re: Stampare report con condizione

    Il fatto è che ho tre report perché hanno impaginazione diversa e soprattutto campi differenti...
    questo purtroppo perché i "clienti" hanno esigenze diverse per la visualizzazione della struttura. mi sarebbe stato molto più semplice un unico modello.
    Grazie per i consigli!
    A presto!
    Lucio
  • Re: Stampare report con condizione

    Io ho capito che tu hai 3 report con 3 impaginazioni diverse: se è sì, questo è accettabile. Quindi li chiameremo semplicemente ReportAllaBianchi, ReportAllaRossi, ReportAllaVerdi. Tu devi avere in maschera 3 pulsanti che ti pemettano di scegliere quale modello report preferisci. Per ogni clic associato a ApriReport, devi scrivere la condizione WHERE sfruttando il campo IDCliente...non so...non ci hai mai detto qual'è il campo chiave (solitamente è il contatore). Per me la tua espressione deve terminare con...
    [Data] Between CDate(Maschere![Stampa]![Dal data]) And CDate(Maschere![Stampa]![Al data]) And [IDCliente]
    ...per il momento ignoro la corretta sintassi della prima parte dell'espressione, ma cerca di cogliere il senso dell'ultima parte per capirci sul da fare...
  • Re: Stampare report con condizione

    Allora devi stampare in fila i 3 Report con 3 istruzioni.
Devi accedere o registrarti per scrivere nel forum
6 risposte