Access aggiorna tabella con dato da report

di il
6 risposte

Access aggiorna tabella con dato da report

Chiedo cortesemente se qualcuno puo aiutarmi.

In un report ho un campo usato per stampare il totale fattura (TotFat)
ottenuto con dati/Origine controllo =([TotImponibileFat]+[TotIvaFat])
che sono altri due campi del report.

Vorrei usarlo per aggiornare una delle due
tabelle usate per stampare il report.

il campo e' nella tabella FATTURETESTATE e si chiama ImportoFatturaTestata.

Se possibile come ?

grazie.

6 Risposte

  • Re: Access aggiorna tabella con dato da report

    Ho i miei dubbi che si possa estrarre/catturare un valore che tu vedi stampato su un report (anche se in Anteprima di stampa). Un valore che tu vedi in un controllo può essere prelevato/estratto soltanto da una maschera partendo da una sintassi che potrebbe essere
    Forms![Nome maschera]![Nome controllo].Value
    poi sta a te automatizzare questa operazione con una macro o equivalente codice VBA.
  • Re: Access aggiorna tabella con dato da report

    Grazie Osvaldo.
    Mi fido del tuo parere.
    Non perdo altro tempo e cerco una soluzione alternativa.
    ciao
  • Re: Access aggiorna tabella con dato da report

    OsvaldoLaviosa ha scritto:


    Ho i miei dubbi che si possa estrarre/catturare un valore che tu vedi stampato su un report (anche se in Anteprima di stampa). Un valore che tu vedi in un controllo può essere prelevato/estratto soltanto da una maschera partendo da una sintassi che potrebbe essere
    Forms![Nome maschera]![Nome controllo].Value
    poi sta a te automatizzare questa operazione con una macro o equivalente codice VBA.
    No, non è vero, il valore può essere reperito anche dal report.
    (esiste anche la sintassi [Reports]![NomeReport]![NomeControllo] ma non la uso per quello che interessa a novesette2000)
  • Re: Access aggiorna tabella con dato da report

    novesette2000 ha scritto:


    ..In un report ho un campo usato per stampare il totale fattura (TotFat)
    ottenuto con dati/Origine controllo =([TotImponibileFat]+[TotIvaFat])
    che sono altri due campi del report.

    Vorrei usarlo per aggiornare una delle due
    tabelle usate per stampare il report.

    il campo e' nella tabella FATTURETESTATE e si chiama ImportoFatturaTestata.

    Se possibile come ?
    Nei report non ci sono campi ma controlli (che possono essere associato o meno a campi che sono nelle tabelle e nelle query)
    Sull'evento che ti interessa (io ho fatto una prova sull'evento "Corpo_Print") crei una stringa che sarà una Select SQL che dovrà restituire un solo record, quello della fattura che ti interessa.
    Poi dichiari ed apri un recordset basato su quella stringa, ne editi l'unico campo dell'unico record esistente e lo valorizzi con il contenuto del controllo TotFat
    Tipo
    Private Sub Corpo_Print(Cancel As Integer, PrintCount As Integer)
    Dim strSQL as String
    strSQL = "SELECT ImportoFatturaTestata FROM FATTURETESTATE WHERE "
    strSQL = strSQL & "campochiave = " Me!controllocampochiave.Value '<-- da personalizzare
    
    Dim rs As DAO.Recordset
    Set rs = CurrentDb.OpenRecordset(strSQL)
    rs.Edit
    rs("ImportoFatturaTestata").value = Me!TotFat.Value
    rs.Update
    rs.Close
    End Sub
    Occhio che l'evento Print del corpo di un report si verifica anche in Anteprima di stampa, il mio è stato solo un test volante. L'esempio è ridotto all'osso, non ho impostato alcun verifica che il recordset non sia vuoto e non abbia più di un record (in teoria se la stringa SQL è fatta bene non ce ne sarebbe bisogno). Devi fare tu le prove, in base al funzionamento del tuo db, per essere sicuro che l'operazione sia eseguita nel momento giusto, a "fattura definitiva", se vuoi che solo allora sia scritto il totale che non sarà più modificato. Poi si possono introdurre altre procedure di controllo per l'eventuale ristampa, ricalcolo ecc. Per ora può bastare la "stampa semplice" della fattura, fatta e finita.
  • Re: Access aggiorna tabella con dato da report

    Grazie a tutti per i suggerimenti e perdonate eventuali imprecisioni,
    ma sono un autodidatta.

    Nell'evento "su chiusura" del report
    Utilizzando DAO domenica sera sono riuscito a:

    1-Prendere dal report il numero fattura
    2-leggere il record interessato nella tabella
    3-leggere il contenuto (ma mi serve solo per controllo)
    4-modificare il campo che mi interessa nella tabella

    pero' solo con il sistema N.1 che non mi puo andare bene.

    Mi serve impostare il campo importo con un dato dal report
    come faccio con il numero fattura.

    Probabilmente dipende dal fatto che il numero fattura e'
    sulla tabella e il campo importo e' un campo calcolato nel report.

    Oggi pero',leggendo le indicazioni di Philcattivocarattere
    ho modificato quello che avevo fatto ed ho ottenuto il
    risultato voluto, ma......

    - con Prova 1 (domenica) funziona sempre, ma non mi serve.
    - Con Prova 2 e 3 funzionano bene solo se il report
    e' di una sola pagina. Con 2 pagine errore 13(vedi sotto)

    Se qualcuno ha qualche idea sara' gradita.

    PROVA. N. 1 OK Funziona sempre
    --------------------------------
    Dim importo As Double
    ..
    importo = 1220.00
    ..
    rst1.Edit
    rst1.Fields("ImportoFatturaTestata") = importo
    rst1.Update
    ==============================================
    PROVA. N. 2

    Funziona bene solo se la fattura e' solo una pagina.
    Se due pagine;
    Errore di run-time "13" - Tipo non corrispondente
    su importo = [Reports]![StampaFattura]![TotFat]
    -----------
    Dim importo As Double
    ..
    importo = [Reports]![StampaFattura]![TotFat]
    ..
    rst1.Edit
    rst1.Fields("ImportoFatturaTestata").Value = importo
    rst1.Update
    ==============================================
    PROVA. N. 3 (Praticamente stessa cosa di prova N.2)

    Errore di run-time "13" - Tipo non corrispondente
    su rst1.Fields("ImportoFatturaTestata").Value = [Reports]![StampaFattura]![TotFat]
    -----------
    ..
    rst1.Edit
    rst1.Fields("ImportoFatturaTestata").Value = [Reports]![StampaFattura]![TotFat]
    rst1.Update
    ================================================================
  • Re: Access aggiorna tabella con dato da report

    Risolto.
    Mi e' bastato spostare la routine
    nella sezione "piè di pagina pagina"
    evento "su stampa" e il messaggio di errore
    non compare piu sulle fatture con 2 pagine.
    Appena possibile faro' prove approfondite,
    ma direi che il problema e' risolto.
    Grazie a tutti.
Devi accedere o registrarti per scrivere nel forum
6 risposte