Access. Passare il valore di un campo calcolato ad un altro e salvarlo nel record corrente in tabella

guido boccalario 100 Punti di reputazione
2026-01-28T22:40:14.8833333+00:00

Campo calcolato in sottomaschera che deriva da query con somma di secondi Tot_Sec =Somma([Secondi]) e un campo sempre in sottomaschera che trasforma i secondi calcolati in ore e minuti Tot_Ore =([Tot_Sec]\3600 & ":" & Format(([Tot_Sec] Mod 3600)\60;"00")) . Devo passare quel valore, a un campo in maschera principale (che è associato a un campo in tabella) e scrivere il valore nel record corrente. Ho cercato ma non ho trovato nulla che mi faccia capire....

Microsoft 365 e Office | Access | Per l'istruzione | Windows
0 commenti Nessun commento

Risposta accettata dall'autore della domanda
Anonimo
2026-01-29T10:01:40.2333333+00:00

Nota: Questa risposta è stata tradotta automaticamente. Di conseguenza, potrebbe contenere errori grammaticali o espressioni imbarazzanti. 

Ciao @guido boccalario

Grazie per aver contattato il Forum Microsoft Q&A. 

In base alle informazioni fornite, ho provato a configurare e riprodurre lo stesso scenario sul mio ambiente. 

Ho creato una tabella principale per memorizzare il record corrente e una tabella dei dettagli correlata che contiene i valori in “Secondi”. Successivamente, ho costruito una query aggregata utilizzando SUM() per calcolare il totale dei secondi per ogni record, simile al tuo Tot_Sec = Sum([Secondi]). 

Poi, nel sottomodulo, ho aggiunto un controllo calcolato per convertire quel totale in un formato ore:minuti, come il tuo Tot_Ore. 

Poiché i controlli calcolati in un sottomodulo sono solo per la visualizzazione e non possono essere salvati automaticamente in un campo della tabella, ho testato il salvataggio del valore aggiungendo un pulsante di comando nel modulo principale e utilizzando VBA per copiare il valore calcolato dal sottomodulo nel campo associato del record corrente. 

Per farlo, puoi: 

1.Aprire il modulo principale in Visualizzazione Struttura 

2.Aggiungere un controllo Pulsante al modulo 

3.Fare clic con il tasto destro sul pulsante e selezionare Genera evento… (oppure andare all’evento Su clic nel Foglio proprietà) 

4.Scegliere Generatore di codice e incollare il seguente codice VBA: 

Private Sub btnSaveHours_Click() 
 
    Me.Hours = Me.SubFormControl.Form!txtTotalHours 
    Me.Dirty = False 
 
End Sub

Immagine dell'utente

Immagine dell'utente

Immagine dell'utente Si prega di notare che le immagini sopra sono in inglese. Siamo spiacenti di non poter fornire una versione italiana. Si prega di tradurle se necessario. 

Questo metodo scriverà il valore totale del tempo calcolato nel campo del record corrente nella tabella principale. 

Spero che questo sia in linea con ciò che stai cercando di ottenere. Se ci sono differenze nella tua configurazione, condividi pure maggiori dettagli così potrò fornirti indicazioni più specifiche. 


Nota: segui i passaggi nella nostra documentazione per abilitare le notifiche e-mail se desideri ricevere la notifica e-mail relativa a questo thread.

La risposta è stata utile?


3 risposte aggiuntive

Ordina per: Più recente
  1. guido boccalario 100 Punti di reputazione
    2026-01-30T13:24:51.2333333+00:00

    Thank you so much !!!!
    Dora T. I tried and it works ! Thank so mutch !!!!!! SOLVED !!!!

    La risposta è stata utile?


  2. guido boccalario 100 Punti di reputazione
    2026-01-30T08:50:26.9066667+00:00

    Thansk so mutch !!! I'll try as soon as possible and i'll tell you about ! Bay bay

    La risposta è stata utile?

    0 commenti Nessun commento

  3. guido boccalario 100 Punti di reputazione
    2026-01-29T21:55:22.26+00:00

    Thanks for answer but... Me.Hours = Me.SubFormControl.Form!txtTotalHours... tctTotalHours = in my subform text filed "totalhours" Hours = in my mainform text field txtTotaleOre (associated to the table)

    but "subformcontrol" is the my subform name ?

    What is the correct syntax to apply the code ? I tried but it doesn't work...

    Hours for me is txtTotaleOre
    txtTotalHours for me is TotOreInt
    my subform is called sfrmRia_Dettaglio
    my mainform is called frmRia_Ok

    Thanks in advance.

    La risposta è stata utile?


Risposta

Le risposte possono essere contrassegnate come "Accettata" dall'autore della domanda e "Consigliata" dai moderatori, in modo da consentire agli utenti di sapere che la risposta ha risolto il problema dell'autore.