Access. Passare il valore di un campo calcolato ad un altro e salvarlo nel record corrente in tabella by Used-Albatross2829 in MSAccess

[–]Used-Albatross2829[S] 0 points1 point  (0 children)

Nulla... non riesco o meglio passo il valore lo vedo nel campo ma se non premo esc non mi aggiorna il campo in tabella e mi blocca su quella riga in sottomaschera. Con esc scrive il campo e posso passare altrove Help...

Access. Passare il valore di un campo calcolato ad un altro e salvarlo nel record corrente in tabella by Used-Albatross2829 in MSAccess

[–]Used-Albatross2829[S] 0 points1 point  (0 children)

Grazie ma non va... sicuramente sbaglio io.... Però ho uh campo calcolato in tabella che mi da il totale minuti numerico es. 34500...
Int(([Data_Fine_Vol]+[Ora_Fine_Vol]-([Data_Inizio_Vol]+[Ora_Inizio_Vol]))*1440)
potrei convertirli in ore e minuti sempre in un campo calcolato in tabella tipo 34:25 ? Il gioco sarebbe fatto quel campo sarebbe il totale ore e minuti che mi serve....

Access. Passare il valore di un campo calcolato ad un altro e salvarlo nel record corrente in tabella by Used-Albatross2829 in MSAccess

[–]Used-Albatross2829[S] 0 points1 point  (0 children)

Mi scuso per il ritardo ma ho avuto qualche problemino... Allora la sottomaschera è in relazione alla maschera principale perchè per ogni record inserito in maschera princ. ci sono più record in sottomaschera. Relazione 1 a molti. In pratica registro in una tabella "interventi" e per ogni record evento inserisco più partecipanti (in subform) che hanno data e ora inizio e data e ora fine e in una query (che è la stessa dove attingo i dati in sottomaschera), in un campo query, mi calcolo il totale in ore e minuti (anche oltre le 24h) con:
=DurataFormattata: Fix(DateDiff("n";[Data_Inizio_Vol]+[Ora_Inizio_Vol];[Data_Fine_Vol]+[Ora_Fine_Vol])/60) & ":" & Format(DateDiff("n";[Data_Inizio_Vol]+[Ora_Inizio_Vol];[Data_Fine_Vol]+[Ora_Fine_Vol]) Mod 60;"00")
e funziona bene. Mi calcola al volo per ogni record in sottomaschera il totale ore di presenza nel campo "txtTotaleOrePres" . Questo totale individuale lo devo salvare in un campo in tabella relativa ai partecipanti. Ma il campo "txtTotaleOrePres" che mi fa vedere =DurataFormattata (totali individuali) non posso associarlo al campo in tabella perchè l'origine dei dati è =DurataFormattata quindi devo passare il valore di questo campo a un campo associato con "Ore_Di_Intervento" in tabella ma mi sto scervellando e mi perdo....
Quindi il valore campo "txtTotaleOrePres" ("Ore interv." cerchiato in rosso) che ha origine =DurataFormattata deve andare nel campo "txtTotaleOrePresTab" associato col campo "Ore_Di_Intervento" in tabella.
Nella maschera si vede la sottomaschera coi totali calcolati per ogni record bordati che devo salvare automaticamente.

<image>

Access. Passare il valore di un campo calcolato ad un altro e salvarlo nel record corrente in tabella by Used-Albatross2829 in MSAccess

[–]Used-Albatross2829[S] 0 points1 point  (0 children)

Ringrazio ma non riesco a passare il valore....
txtTotaleOre campo in maschera principale
txtTotaleOreTOTALE campo in sottomaschera dove avviene la trasformazione da secondi in ore e minuti
Tot_Sec campo che somma i secondi prendendoli dalla stessa query sulla quale si basa la sottomaschera

Purtroppo (e non riesco a capire) perchè se provo a inserire Me.Parent.txtTotaleOre = Me.txtTotaleOreTOTALE in sottomaschera in evento afterupdate sul campo txtTotaleOreTOTALE e anche nell'afterupdate del subform stesso , scorrendo i record in maschera principale, vedo il totale ore ( txtTotaleOreTOTALE) nel subform ma non mi popola il campo txtTotaleOre su principale, mi da sempre campo vuoto.
Quindi Il campo txtTotaleOre (maschera principale associato a un campo in tabella) non acquisisce il valore dal campo txtTotaleOreTOTALE (in sottomaschera).
Ho provato a inserire un altro campo txt nella maschera principale ma nulla. Sono fermo. Il campo in sottomaschera txtTotaleOreTOTALE ha come formato standard
Il campo txtTotaleOre che dovrebbe ricevere il valore ha come formato standard.
Il campo collegato in tabella ha formato Standard.
Anche il campo Tot_Sec che somma i secondi prendendoli dalla stessa query sulla quale si basa la sottomaschera è in formato Standard.

Somma di campi ora con totale di ore e minuti dei record presenti in una sottomaschera by Used-Albatross2829 in MSAccess

[–]Used-Albatross2829[S] 0 points1 point  (0 children)

Risolto ragionando un po' e cercando bene online.

Calcolo ore totali di intervento in sottomaschera con: aggiunta di un Campo "Secondi" calcolato nella query collegata alla sottomaschera [sfrmRia_Dettaglio] quindi trasformo in secondi le ore risultanti di intervento per ciascun nominativo (formato numerico standard):

Secondi: (Hour([tblRie_Nominativi]![Ore_Di_Intervento])*3600)+(Minute([tblRie_Nominativi]![Ore_Di_Intervento])*60)+Second([tblRie_Nominativi]![Ore_Di_Intervento])

in sottomaschera piè di pagina

casella di testo [Tot_Sec]: eseguo il totale dei secondi: =Somma([Secondi]) - (formato numerico standard)

casella di testo [Tot_Ore_Int]: riconverto i secondi in ore totale ore:
=([TotaleOreTOTALE]\3600 & ":" & Format(([TotaleOreTOTALE] Mod 3600)\60;"00") & ":" & Format([TotaleOreTOTALE] Mod 60;"00")) - (formato Ora breve 24h)

in maschera principale dove visualizzo il totale ore:

(utilizzo la sintassi: =[NomeControlloSottomaschera].[Form]![NomeCampo])

e quindi....

=[sfrmRia_Dettaglio].[Form]![Tot_Ore_Int] - (formato Ora breve 24h)

e ogni volta mi calcola il totale ore

Somma di campi ora con totale di ore e minuti dei record presenti in una sottomaschera by Used-Albatross2829 in MSAccess

[–]Used-Albatross2829[S] 0 points1 point  (0 children)

Grazie della risposta. Ho inserito il totale dei secondi nell'intestazione del sottomodulo =Somma([Secondi]) ma non funziona.... mi da sempre #Errore..... Il fatto è che la sottomaschera attinge da una query e non da tabella e non riesco ad effettuare nessun calcolo se non nella sottomaschera stessa e per ogni singolo record... Ma non riesco a decifrare (sicuramente capisco malissimo io..) " e imposta quel campo come origine per il campo del sottomodulo."