Aggiornare report dopo immissione dati

di il
8 risposte

Aggiornare report dopo immissione dati

Salve,
Ormai c ho preso gusto a scrivere, oggi ho questo problema
Ho un report collegato ad una query, che a sua volta prende i valori da piu tabelle (non è una query di unione). Sul report c è un pulsante che mi consente di aprire una maschera. Tale maschera mi consente di inserire dei dati in delle caselle che sono collegate ad una delle tabelle della suddetta query.
Il mio problema è questo: ho il report aperto, clicco sul bottone, si apre la maschera, inserisco i dati, salvo e chiudo la maschera... ma tali dati inseriti, che dovrebbero comparire nel report, non compaiono. Compaiono solo se dal menù clicco su "Aggiorna tutto".
Ho bisogno che in maniera automatica il report si aggiorni senza che qualcuno manualmente lo faccia dal menù. Ho provato le macro "aggiorna" "aggiorna oggetto" e "aggiorna record", ma nesssuna mi dà alcun risultato.

PS a causa di alcune macro legate all apertura del report, non posso mettere le macro "chiudi" e "apri report" alla chiusura della maschera.

Vi ringrazio moltissimo per l ascolto

Jibi

8 Risposte

  • Re: Aggiornare report dopo immissione dati

    Il problema a monte è concettuale... il Report ha la funzione di STAMPA non di gestione... quella spetta alla Maschera, quindi nessun Pulsante o comandi strani nei Report.
    QUesto è quanto sarebbe doveroso osservare nello sviluppo di interfacce... poi tu fai come credi.

    Di fatto, i Report, fino ad una certa Versione di Access non disponevano del Requey... ma ora pare ci sia... non so dirti se funziona, ma se funziona fa quello che stai chiedendo..., ma, devi gestire l'apertura della Maschera di Modifica in modo SINCRONO, quindi apertura in modalità Dialogo, al rientro della quale si esegue il Me.Requery da dentro al Report...!

    Se non usi codice VBA non vado oltre io le macro non le uso e non vorrei darti indicazioni non complete.
  • Re: Aggiornare report dopo immissione dati

    Grazie mille Alex! Sempre disponibile.
    Sí, sarebbe stato meglio evitare pulsanti sul report e creare una machera con tali pulsanti, ma conoscendo chi userà tale database, ho cercato di ridurre al minimo le schede e creare un qualcosa di molto intuitivo e semplice; ciò non toglie che sarebbe stato meglio evitare di inserire pulsanti in un report.
    Grazie mille dell'ottimo consiglio sul RieseguiQuery, non ci avevo pensato. La maschera di cui ho parlato nel primo messaggio, si apre già in forma Dialogo, ma sinceramente non saprei come fare quanto tu mi hai suggerito alla fine "gestire l'apertura della maschera in modo sincrono [...] al rientro della quale si esegue il Me.Query da dentro il report". Ho capito cosa intendi, ma non saprei farlo....
    Ti ringrazio ancora per la tua disponibilità

    Jibi
  • Re: Aggiornare report dopo immissione dati

    jibi ha scritto:


    ...ma sinceramente non saprei come fare quanto tu mi hai suggerito alla fine "gestire l'apertura della maschera in modo sincrono [...] al rientro della quale si esegue il Me.Query da dentro il report". Ho capito cosa intendi, ma non saprei farlo....
    La gestione in modo sincrono la stai già facendo proprio aprendo la maschera in modalità Dialogo. La mia conoscenza delle macro è inferiore a quella di @Alex quindi non so dirti, materialmente, dove devi scrivere il RieseguiQuery però, vista la logica, credo immediatamente dopo l'apertura della maschera. Proprio grazie alla maschera aperta modalità Dialogo, la macro chiamante proseguirà nelle sue operaziono solo dopo che la maschera sarà chiusa (o nascosta, a dirla tutta). Se tu sai scrivere questo nelle macro il gioco è fatto.
  • Re: Aggiornare report dopo immissione dati

    Secondo me le tue richieste "via macro" sono fattibili...RieseguiQuery dovrebbe essere una azione fondamentale. Se esponi tutto il tuo discorso usando i nomi propri di maschere, controlli, logiche macro che hai messo in campo, ecc... veniamo meglio a capo del tuo problema.
    Concordo sul fatto che pulsanti e altri comandi di interazione con l'utente devono essere disposti nelle maschere, quindi lascia che il report stampi solamente il risultato finale.
  • Re: Aggiornare report dopo immissione dati

    Gentilissimi Phil e Osvaldo,
    faccio tesoro di quanto mi avete suggerito, a partire dall'inserire la macro subito dopo l'apertura (Phil) a far sì che il report non abbia pulsanti.
    Mi scuso per il ritardo nel rispondervi, ma... colpa della Pasqua.
    Colgo l'occasione per spiegare con maggiori dettagli la situazione che mi si presenta. Ho un report (chiamiamolo "Report" per comodità) che mi consente di visualizzare alcuni dei risultati di una certa query ("query" per comodità). Tale query pesca i dati da più tabelle e talvolta esegue dei calcoli matematici far di essi. Di conseguenza, i valori che visualizzo nel report sono di tipo numerico e talvolta frutto di calcoli. Per esempio visualizzo: una prima misura .(MisuraA), una seconda misura (MisuraB) e un paio di campi frutto di alcuni calcoli fra essi (Calcolo1 e Calcolo2)... tutti presenti nella query collegata al report (Misura A e B come ho detto sono pescati da due tabelle distinte). Nel report è presente un pulsante che, se cliccato, apre una maschera come finestra di dialogo; tale maschera possiede due caselle in cui inserire delle nuove misurazioni, ovvero una MisuraA e una MisuraB. Una volta inseriti i valori, salvo e chiudo la maschera. A questo punto ho sempre aperto il report e so che i valori inseriti in quella maschera sono andati a finire nelle due tabelle e poi usati dalla suddetta Query. IL problema è che una volta chiusa la maschera, ho il report aperto ma non compaiono i nuovi valori appena inseriti... Cliccando Aggiorna dalla barra multifunzione allora appaiono.
    La domanda era : come rendere automatico tale "aggiornamento"?
    Come già accennato ad Alex, rieseguiQuery mi sembra un'ottima soluzione, tuttavia ho ancora dubbi riguardo dove inserire tale macro, forse "su apertura" nell'elenco degli eventi del report? e come "Nome controllo" inserisco il nome della query (quella da cui pesca il report), giusto?

    Spero di essere stato più chiaro

    Mi scuso per il ritardo dovuto alla Pasqua e per la lunghezza del testo. Vi ringrazio veramente tanto per il vostro aiuto. Eventualmente, sono pronto a rassegnarmi al fatto che dovrò organizzare diversamente il database (cercavo di evitare percheè chi userà tale database ha bisogno di qualcosa di estremanente intuitivo e facile).

    Ancora grazie tante

    jibi
  • Re: Aggiornare report dopo immissione dati

    jibi ha scritto:


    ... rieseguiQuery mi sembra un'ottima soluzione, tuttavia ho ancora dubbi riguardo dove inserire tale macro, forse "su apertura" nell'elenco degli eventi del report?...
    No. Come fai questa azione?

    jibi ha scritto:


    Nel report è presente un pulsante che, se cliccato, apre una maschera come finestra di dialogo;
    Se lo fai attraverso una macro di apertura maschera aggiungi una riga a quella macro, lasciando vuoto il nome del controllo da aggiornare (da quello che ho capito leggendo questa pagina: Azione di macro RieseguiQuery). Se invece lo fai con VBA, aggiungi una riga con
    Me.Requery
  • Re: Aggiornare report dopo immissione dati

    Perfetto!!! Funziona!!! inserita la macro rieseguiquery sull'evento "su clic" del pulsante, lasciato vuoto il controllo.... funziona!!!!!
    GRAZIE MILLE PHIL !!!!!!
  • Re: Aggiornare report dopo immissione dati

    Secondo me c'è qualcosa di progettuale che trovo "poco ortodosso". Piuttosto che "aprire prima" il Report, fai tutti gli aggiornamenti che preferisci su una query (magari partendo dal clic di pulsante di maschera). Non so se sia necessaria una maschera (direi continua) con identico look del report. Quindi puntualizzi/chiarisci i tuoi valori definitivi, poi apri il Report. In questo modo non c'è bisogno di RieseguiQuery (Requery).
Devi accedere o registrarti per scrivere nel forum
8 risposte