Stampare singolo report

di il
29 risposte

29 Risposte - Pagina 2

  • Re: Stampare singolo report

    TRINACRIA FELIX ha scritto:


    1) Allora, per migliorare la funzionalità del database ho la necessità che mi compaia un allarme (o qualsiasi altro avviso) che mi indichi i nominativi del personale inserito quando una parte di essi arriva al compimento dei 32 anni e un'altra parte al compimento dei 39 anni.
    Nello specifico, non ci hai detto dove e quando questo messaggio di allarme deve scattare. In Access si parla di Eventi, dovresti specificarlo...non so, ad es. su apertura di una particolare maschera, dopo il clic di un pulsante...
    Occorre giocare con alcune azioni macro. Riguardo strettamente all'allarme di cui parli, esiste una azione macro FinestraMessaggio. Potresti associare questa azione alla condizione che ti avevo suggerito prima.
    Un'alternativa sarebbe quella di creare una query che filtra i nominativi che soddisfano la sintassi che ti avevo proposto. Se la query avrà alcuni nominativi, avrà n record, altrimenti avrà 0 record. La condizione affinchè appaia la FinestraMessaggio, con un testo del tipo "Attenzione, ci sono n nominativi che...ecc...", potrebbe essere questa:
    DCount("*";"NomeQuery";"")>0

    TRINACRIA FELIX ha scritto:


    2) Esiste la possibilità in un report di poter visualizzare, a fini statistici, il numero di record inseriti?
    Il report dovrebbe poggiare su una tabella oppure una query. Io immagino una query: da essa possiamo calcolare il numero dei suoi record con la funzione DCount. Dai un'occhiata alla guida in linea sul suo significato completo. Poi:
    1. In visualizzazione struttura report, in una zona che non sia il Corpo, aggiungi una casella di testo
    2. Dentro ci scrivi una sintassi simile a questa:
    = DCount("*";"NomeQuery";"")
  • Re: Stampare singolo report

    Iniziamo con le notizie positive. Il suggerimento per la visualizzazione dei record inseriti funziona benissimo!
    Per il resto il messaggio di allarme deve scattare quando si apre il database e compare la maschera principale in modo da portare a conoscenza di chi ha aperto il programma della presenza di personale +32 e + 39 e attivare le procedure previste.

    Purtroppo sono in confusione perché non mi raccapezzo come inserire la condizione che mi avevi suggerito!

    Riepilogando:
    Ho creato due Query +32 e +39 per avere il filtraggio del personale interessato a queste scadenze temporali e funzionano correttamente. La condizione che mi hai suggerito la devo inserire nei criteri delle Query +32 e +39 sotto la colonna ID o sotto la colonna nome?

    Nella condizione che mi hai suggerito (sempre se riesco a farla funzionare) mi servono delle delucidazioni:
    Date() significa la Data Odierna [la data la devo inserire io solo la prima volta oppure viene presa in automatico dal sistema. Se la devo inserire io in quale formato es: 28/08/2013]
    [DataNascita] significa ovviamente la Data di Nascita [che si associa alla colonna della tabella principale]
    DateAdd("yyyy";+32;[DataNascita])
    calcola la data 32 anni in avanti rispetto alla DataNascita
    analogamente
    DateAdd("yyyy";+39;[DataNascita])
    calcola la data 39 anni in avanti rispetto alla DataNascita

    Date()>=DateAdd("yyyy";+32;[DataNascita]) And [Maschere]![NomeMaschera]![OK32]=Falso

    Ho creato la macro allarme con l’azione FinestraMessaggio ma non riesco ad associare questa azione alla condizione che mi avevi suggerito perchè nella sezione Argomenti Azione della macro mi compaiono solo questi campi:
    Messaggio;
    SegnaleAcustico;
    Tipo;
    Titolo.

    Grazie e scusa la mia ignoranza!
  • Re: Stampare singolo report

    Hai detto che le query +32 e +39 ti funzionano correttamente. Io le sfrutterei proprio per calcolare i loro numero-record con DCount. Quindi considera utile le seguenti espressioni-condizione:
    DCount("*";"+32";"")>0
    DCount("*";"+39";"")>0

    Noi dobbiamo dire alla macro che deve visualizzare FinestraMessaggio soltanto quando tale condizione si verifica.
    Hai detto pure che vorresti vedere tale FinestraMessaggio all'apertura del database, subito dopo (o prima, stabilisci tu quando) l'apertura di MascheraPrincipale. Immagino che tu abbia associato la macro Autoexec all'apertura di MascheraPrincipale, allora:
    1. Riapri in visualizzazione struttura, la macro Autoexec
    2. Clicca in alto sul tasto Condizioni (ha una icona indescrivibile, ma la trovi accanto a quella con XYZ e i quadratini in basso), ti si aprirà la colonna Condizione
    3. Vai al rigo successivo a ApriMaschera: MascheraPrincipale,
    in Condizione ci scrivi una delle due DCount che ho scritto sopra e accanto scegli FinestraMessaggio.

    Come usare le proprietà di FinestraMessaggio.
    Quelle più importanti sono:
    Messaggio: qui dentro ci scrivi un testo libero che sarà appunto il testo del messaggio. Ad es. Attenzione, ci sono 32enni non decorati
    Titolo: come per Messaggio, mostrerà il Titolo del messaggio in alto, dovresti scrivere un testo più sintetico ovviamente.
    Le altre due proprietà direi che sono facoltative e stanno al tuo gusto personale.

    Date() è una espressione standard. Access riconosce automaticamente la Data Odierna in base alle informazioni Data/Ora del sistema operativo.
  • Re: Stampare singolo report

    Purtroppo l'apertura della MascheraPrincipale non è associata a nessuna macro Autoexec, per aprirla clicco sull'icona del database e si apre la Maschera Principale. Come devo comportarmi?
  • Re: Stampare singolo report

    Ciò vuol dire che la tua MascheraPrincipale l'hai costruita come Pannello Comandi. Non cambia nulla nella sostanza. Crea una nuova macro che devi chiamare Autoexec e scrivi soltanto le due istruzioni FinestraMessaggio associate alle relative Condizioni.
  • Re: Stampare singolo report

    Sono riuscito a far funzionare le FinestraMessaggio associate alle relative Condizioni:
    DCount("*";"+32";"")>0
    DCount("*";"+39";"")>0
    Si aprono correttamente all'avvio del database anche se ho notato un piccolo "effetto collaterale" cioè, all'apertura del programma, la maschera generale si allarga, sparisce la barra degli strumenti e alcune righe si sovrappongono, quando premo il tasto OK delle FinestreMessaggio il tutto ritorna normale.

    Per quanto riguarda l'inserimento della condizione che mi hai suggerito:

    Date()>=DateAdd("yyyy";+32;[DataNascita]) And [Maschere]![NomeMaschera]![OK32]=Falso

    brancolo nel buio/confusione più totale perchè non ho capito dove inserirla/scriverla! Infatti quando digito il segno di spunta SI/NO +32 e +39 non si ha nessun effetto filtro e si aprono le FinestraMessaggio con qualsiasi altra età.
  • Re: Stampare singolo report

    TRINACRIA FELIX ha scritto:


    Date()>=DateAdd("yyyy";+32;[DataNascita]) And [Maschere]![NomeMaschera]![OK32]=Falso
    Confesso che ho perso il filo del discorso. Questa espressione ha un senso soltanto quando la maschera NomeMaschera è aperta...non ricordo più la sua utilità. Ma tu hai detto di aver creato 2 opportune query (+32 e +39) che funzionano correttamente. Il discorso ha cambiato completamente punto di vista. Le due espressioni DCount...>0 sono sufficienti, sono queste che devi associare alle FinestraMessaggio. Stop.

    Riguardo all'inconveniente visivo iniziale, non so cosa dirti. Tu hai creato il Pannello Comandi con la procedura apposita. Io non l'ho mai capito come funziona e ho sempre preferito costruire una maschera Pannello Comandi creata manualmente. A me questo inconveniente non si presenta.
  • Re: Stampare singolo report

    Scusa per la mia difficoltà nell'esprimere ciò che vorrei realizzare.
    Nelle migliaia di record inseriti nel database vi è una parte del personale che al compimento del 32°e del 39°anno di età tutta la loro documentazione deve essere spedita ad altri enti.

    Le query che ho creato (+32 e +39) servono per un primo filtraggio del personale interessato ed infatti mi ritrovo due elenchi separati.
    Quello che io chiedevo era se esiste la possibilità di poter visualizzare, tramite avviso all'apertura del database, l'elenco dei nominativi in una tabella, di tutti coloro che alla data in cui apro il database hanno già compiuto sia 32 che 39 anni.
    Saluti!
  • Re: Stampare singolo report

    Si tratta di divertirti come ti pare sulle azioni macro, ve ne sono di molto utili e di ovvia comprensione, altre meno. Inizialmente mi hai chiesto l'invio di un allarme, quindi ho pensato a FinestraMessaggio. Per rispondere alla tua ultima domanda, basta cambiare o aggiungere una nuova azione macro ApriQuery, sotto devi dire quale nome query vuoi aprire.
    Se intendi sostituire da FinestraMessaggio in ApriQuery, penso che hai capito cosa fare.
    Se intendi aggiungere ApriQuery o qualsiasi altra azione macro, ricorda che, almeno in questo caso, sono tutte azioni vincolate da Condizione. Quando più azioni hanno questo vincolo, devi scrivere in ogni rigo sottostante la Condizione ... (3 puntini) che equivale a dire "idem come sopra".
  • Re: Stampare singolo report

    Grazie tante! Il database funziona bene e ci sta rendendo molto più agevole il nostro lavoro!
    1) Ho creato una macro "FinestraMessaggio" collegato al tasto “elimina record” per evitare che qualche collega distratto possa, per errore, cancellare dei record. L’avviso “… sei sicuro di voler cancellare…ecc.” compare correttamente, solo che quando premo OK e mi accingo nuovamente a premere il tasto “elimina record” si ripresenta l’avviso e praticamente non mi permette di effettuarne la cancellazione. Vi è la possibilità di dare il consenso per la cancellazione?
    2) E’ possibile ottenere l'apertura della maschera principale a tutto schermo eliminando le barre degli strumenti sia quelli verticali che orizzontali?
    Grazie!
  • Re: Stampare singolo report

    Credo che la discussione stia prendendo una piega che si allontana sempre più dal titolo principale. Altri utenti, ricercando, non troverebbero mai le tue domande. Ti consiglio, ogni volta che cambi radicalmente argomento, di postare un nuovo thread, dal quale puoi sempre indicare un link di post antecedente di riferimento.

    Per ora ti rispondo ugualmente.

    TRINACRIA FELIX ha scritto:


    1) Ho creato una macro "FinestraMessaggio" collegato al tasto “elimina record” per evitare che qualche collega distratto possa, per errore, cancellare dei record. L’avviso “… sei sicuro di voler cancellare…ecc.” compare correttamente, solo che quando premo OK e mi accingo nuovamente a premere il tasto “elimina record” si ripresenta l’avviso e praticamente non mi permette di effettuarne la cancellazione. Vi è la possibilità di dare il consenso per la cancellazione?
    Devi cambiare strategia finestra. La FinestraMessaggio ha soltanto un pulsante di risposta che, volente o nolente lo devi accettare come tale, senza possibilità di scelta. Dovresti costruire una piccola maschera in visualizzazione struttura, magari imposti la proprietà Popup: Sì, con 3 soli oggetti:
    - una Etichetta dove scrivi il testo "...sei sicuro di voler cancellare..."
    - 2 pulsanti [Sì] e [No]. Al pulsante [Sì] associ una macro che deve chiudere la piccola maschera e poi cancellare il record, al pulsante [No] associ la sola chiusura della piccola maschera. Ovviamente alla fine di questa costruzione, devi ricordarti di cambiare azione macro da FinestraMessaggio in ApriMaschera, Nome maschera: nome piccola maschera.

    TRINACRIA FELIX ha scritto:


    2) E’ possibile ottenere l'apertura della maschera principale a tutto schermo eliminando le barre degli strumenti sia quelli verticali che orizzontali?
    Sì. Ti consiglio di impostare le seguenti proprietà:
    Barre scorrimento: No
    Selettori record: No
    Pulsanti spostamento: No
    Linee di divisione: No
    Queste proprietà tornano utili anche per la costruzione della piccola maschera.
    Per ottenere l'apertura maschera a tutto schermo, esiste l'azione macro Ingrandisci.
    Non so come si fa a eliminare le barre menu e strumenti di Access in alto.
  • Re: Stampare singolo report

    Susami, ma mi sono lasciato prendere dalla frenesia! Il database funziona che è una meraviglia e i miei colleghi sono entusiasti. Seguirò il tuo consiglio se dovrò richiede altro aiuto!
    Grazie per la fattiva collaborazione!
  • Re: Stampare singolo report

    Ciao noto che sei anche te un militare e vedi che lavori ad un progettino come ci stto lavorando io ora, avevo anche io quell'inghippo della stampa dei report e anche delle anteprima e quindi ho risolto così:_

    avendo una maschera (chiamata "Gure") dove immetto i dati della persona (che poi li riporta su una tabella dati_personali) mi sono creato un report tipo scheda personale collegata alla maschera, poi ho inserito sulla maschera 2 tasti uno anteprima scheda corrente, e l'altro stampa scheda corrente fatto questo ho creato una query che riporta tutti i dati della tabella dati_personali, e nella colonna "cognomi" ho inserito sulla riga criteri, la seguente stringa ([Forms]![Gure]![Cognome]) quindi scorrendo i nomi nella maschera se clicco su anteprima o stampa , lo fa solo con la scheda corrente e non tutte.
  • Re: Stampare singolo report

    OsvaldoLaviosa ha scritto:


    1. Apri una macro in visualizzazione struttura
    2. Nel primo rigo Azioni scrivi:
    ApriReport
         Nome report: il tuo report
         Condizione WHERE: [NomeCampoID]=[Maschere]![NomeMaschera]![NomeCampoID]
    3. Salva la macro con nome ad es. StampaPersonaCorrente
    4. Crea sulla maschera un pulsante e associa all'evento "Su clic" la macro StampaPersonaCorrente

    Questa soluzione parte dal presupposto che sia la maschera, sia il report abbiano in comune il campo chiave primaria IDPersona (quello che io ho chiamato [NomeCampoID]).
    Buongiorno, scusa se mi intrometto.
    Anche io credo di avere lo stesso problema però ho creato una maschera a scheda, che tutte le schede fanno riferimento ad un singolo record.
    Come posso fare per creare due pulsanti che uno mi fa vedere il report della persona che e suddivesa nelle schede, e che sto visualizzando sullo schermo, e poi creare la macro per stampare come hai consigliato ad un'altra persona.
  • Re: Stampare singolo report

    Non si aprono 3d di 6 a no fa.... leggi il regolamento.
Devi accedere o registrarti per scrivere nel forum
29 risposte