Newsgroup: it.comp.appl.access
Titolo: Somma Colonna ORE

Con questa escpressione faccio un calcolo fra date e funziona
perfettamente..
Espr1: "" &
(Int(DateDiff("n";[Presenze_Ingresso.ORA];[Presenze_Uscita.ORA];2)/60)) &
"ore" &
Int(((DateDiff("n";[Presenze_Ingresso.ORA];[Presenze_Uscita.ORA];2)/60)-(Int
(DateDiff("n";[Presenze_Ingresso.ORA];[Presenze_Uscita.ORA];2)/60)))*60) &
"min"
Ora vorrei fare la somma della colonna delle ore lavorate.
Chi mi da una mano ??
Grazie



Espr2: Somma([Espr1])

"yQy" <fabrizi...@SESPAMMITISTRONCOtin.it> ha scritto nel messaggio
news:hp299v4qa706k4lup...@4ax.com...

Grazie ma nell'inserire nella query la stringa, alla sua esecuzione mi
restituisce un errore. - IMPOSSIBILE ESEGUIRE UNA QUERY CHE NON INCLUDE
L'ESPRESSIONE "NUMERO" SPECIFICATA COME PARTE DI UNA FUNZIONE DI
AGGREGAZIONE.
Un campo NUMERO è nelle tabelle.
Come mai ?

 ha scritto nel messaggio
news:Hn%ka.81779$Jg1.1...@news1.tin.it...

Prova a crearti un campo calcolato in questa maniera:
OreLavorate: ([Presenze_Uscita.ORA] - [Presenze_Ingresso.ORA]) * 24
e poi fai il totale di tale campo calcolato; certo non poi fare la somma del
campo calcolato Espr1 che è un campo di tipo Testo.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 campo calcolato Espr1 che č un campo di tipo Testo.
Grazie Roby, ma non mi restituisce il risultato sperato. Ora ho la
colonna in formato numerico ma la somma non la fa.
La stringa la metto nel campo nella maschera o nella query ?
Grazie... Ricorda che sono proprio agli inizi...
Ciao

 Ciao
--


...

Ho fatto come dici, pero' il numero che mi restituisce non è una somma
della casella, praticamente se mi sposto sui campi delle ore mentre le
viaualizzo, il valore che dovrebbe essere la somma mi cambia.
Aggiustami ROBBBBY
Grazie

 Grazie
Potrei anche provare ad "aggiustarti", ma tu dovresti dire cosa vuoi fare di
preciso (con queries e/o con maschere) e dovresti anche dire quali sono le
strutture delle tabelle che usi (per ora ho solo capito che hai due tabelle
chiamate Presenze_Ingresso e Presenze_Uscita e che ambedue contengon un
campo Data/ora chiamato ORA).


 campo Data/ora chiamato ORA).
Esatto.
Il problemino č questo, visto che hai deciso di "Aggiustarmi"
Le tabelle sono 2 NOMINATIVI e PRESENZE la relazione tra le due č
l'ID, la tabella PRESENZE invece č strutturata cosě:
NUMERO	    DATA	ORA	I-U	
000001	10/04/2003	09:01	 I
La query mi permette di vedere il nominativo legato al codice 000001 e
i giorni che č stato presente (DATA) e l'ora (ORA) di ingresso (I) e
l'ora (ORA) di uscita (U), a questo punto ho delle righe con DATA -
ORA - I - U  piů la formula _ Espr1: "" &
(Int(DateDiff("n";[Presenze_Ingresso.ORA];[Presenze_Uscita.ORA];2)/60))
& "." & Int(((DateDiff("n";[Presenze_Ingresso.ORA];[Presenze_Uscita.ORA];2)/60)-(Int(DateDiff("n";[Presenze_Ingresso.ORA];[Presenze_Uscita.ORA];2)/60)))*60)_
 che mi restituisce il calcolo delle ore lavorate, e fin qui' OK, ora
il mio problema č calcolare quante ore ha lavorato il nominativo nelle
date prese in esame.  Se poi ci metto anche un importo il calcolo
varrebbe anche lě,  diaciamo che per ora non avrei il problema
dell'accavallamento del giorno.
Ti ringrazio tantissimo ROBbBy
Ciao


Scusami ma continuo a non capirci niente; se le tabelle sono due e si
chiamano rispettivamente NOMINATIVI e PRESENZE, che sono allora le tabelle
Presenze_Ingresso e Presenze_Uscita che usi nel determinare il campo
calcolato  Espr1?
Sarebbe bene che dicessi ESATTAMENTE quante e quali siano le tabelle.
Inoltre se provi a postare il codice SQL completo della query che usi
proverň a capirci qualcosa di piů.


 proverň a capirci qualcosa di piů.
Magari posso inviarti il tutto via e-mail se preferisci ?
Grazie ancora

 Grazie ancora
No, č contro le regole del NG: non dialogo su Access in privato.


 ha scritto nel messaggio
news:_lXla.31572$iy5.9...@twister2.libero.it...

Quindi come procedo ?

 ha scritto nel messaggio
news:T2_la.5499$LB6.1...@news1.tin.it...

Se ritieni opportuno continuare la chiacchierata dovresti fare ciň che ti ho
scritto nel mio messaggio del 12/4/2003 ore 11:55 .



Certo caro Roberto, in quella ti dicevo appunto la necessità che ho.
Infatti ti spiegavo delle query, magari se rileggi il post spiegavo come ho
strutturato il db.
Grazie

Ecco un esempio piu' dettagliato  delle tabelle:
CODICE    tipo  00001
NOME       tipo   ANTONIO BRAMBILLA
e una tabella PRESENZE con i 4 campi
CODICE
DATA
ORA
IN_OUT
La tabella PRESENZE contiene dei record come segue:
00001    -  01/04/03   - 08.00  -  I
00001    -  01/04/03   - 11.00  -  U
00001    -  01/04/03   - 11.30  -  I
00001    -  01/04/03   - 15.00  -  U
00001    -  01/04/03   - 15.25  -  I
00001    -  01/04/03   - 17.00  -  U
00002    -  01/04/03   - 10.00  -  I
00002    -  01/04/03   - 18.00  -  U
Ora devo calcolare il tempo di effettiva presenza del codice 00001 tra gli I
(Ingressi) ed U (Uscite) dello stesso giorno.
Grazie Roberto....

 ha scritto nel messaggio
news:8Aima.9310$LB6.2...@news1.tin.it...

Se la tabella PRESENZE ha la seguente struttura:
ID                Contatore e chiave primaria
CODICE      Testo
DATA          Data/ora
ORA            Data/ora
IN_OUT      Testo
Io mi creerei una tabella chiamata OrePresenza che abbia la seguente
struttura:
ID                    Contatore e chiave primaria
CODICE         Testo
DATA             Data/Ora
OrePresenza    Data/Ora
e nella quale andrei a registrare il risultato che ti serve tramite il
seguente codice VBA:
Dim rst As DAO.Recordset
Dim rstU As DAO.Recordset
Dim Deposito As String
Dim DepCodice As String
Dim DepData As Date
Dim Entrata As Date
Dim OrePresenza As Date
DoCmd.SetWarnings False
DoCmd.RunSQL "DELETE * FROM OrePresenza;"
DoCmd.SetWarnings True
OrePresenza = #12:00:00 AM#
Deposito = ""
DepCodice = ""
DepData = #12:00:00 AM#
Entrata = #12:00:00 AM#
Set rst = CurrentDb().OpenRecordset("SELECT * " & _
"FROM PRESENZE ORDER BY CODICE,DATA, " & _
"ORA, IN_OUT;")
Set rstU = CurrentDb().OpenRecordset("OrePresenza")
rst.MoveFirst
Do Until rst.EOF
    If Deposito <> "" Then
        If Deposito <> rst!CODICE & _
        Format(rst!DATA, "yyyymmdd") Then
            rstU.AddNew
            rstU!CODICE = DepCodice
            rstU!Data = DepData
            rstU!OrePresenza = OrePresenza
            rstU.Update
            OrePresenza = #12:00:00 AM#
            Entrata = #12:00:00 AM#
        End If
    End If
    DepCodice = rst!CODICE
    DepData = rst!Data
    Deposito = rst!CODICE & Format(rst!Data, _
    "yyyymmdd")
    If rst!IN_OUT = "I" Then
        Entrata = rst!ORA
    Else
        If Entrata <> #12:00:00 AM# Then
            OrePresenza = OrePresenza + _
            (rst!ORA - Entrata)
        End If
        Entrata = #12:00:00 AM#
    End If
    rst.MoveNext
Loop
rstU.AddNew
rstU!CODICE = DepCodice
rstU!Data = DepData
rstU!OrePresenza = OrePresenza
rstU.Update
Set rst = Nothing


Naturalmente ho fatto in modo di non considerare i record I non seguiti da
un record U e i record U non preceduti da un record I con lo stesso CODICE e
per la stessa DATA.


 ha scritto nel messaggio
news:d_zma.36762$iy5.1...@twister2.libero.it...

Caro Roberto, mi sembra di aver fatto come indicato da te,  ma mi manca
ancoira qualcosa,  non riesco a capire in che punto mettere il codice
descritto da te.
Ricorda che sono quasi a zero su queste cose,  come posso fare ?

 Ricorda che sono quasi a zero su queste cose,  come posso fare ?
Tu hai chiesto come effettuare la somma delle ore lavorate partendo da una
tabella che contiene gli orari di timbratura di un cartellino presenze e io
ti ho indicato come farlo.
Cosa pensi che ora io debba fare per aiutarti piů di cosě?


...

Ho inserito il codice VBA solo che in fase di esecuzione mi
restituisce l'  "errore di compilazione tipo definito dall'utente non
definito" e si evidenzia  "rst As DAO.Recordset"
?
Grazie RobbbbY

 Grazie RobbbbY
Il codice VBA che ti ho suggerito fa riferimento alla libreria Microsoft DAO
quindi, se usi una versione di Access successiva ad Access 97, devi
aggiungere al tuo database i riferimenti a tale libreria.


 aggiungere al tuo database i riferimenti a tale libreria.
Grazie, come si chiama tale libreria ?
Intanto ho evitato l'esecuzione delle righe e sembra che funge.

 Intanto ho evitato l'esecuzione delle righe e sembra che funge.
Quali righe?
Onestamente non mi sembrava di averci messo delle righe superflue, quindi mi
sembra strano che funzioni ugualmente.
Comunque, se ti restituisce i risultati voluti...
Buona Pasqua.


...

Intanto Auguri anche a te e tutto il NG, le righe che ho omesso sono
quelle che mi davano l'errore, non riesco a trovare dove mettere
Microsoft DAO ?
Ma per fare il calcolo della colonna OREPRESENZA come creo il campo ?
Grazie ancora

 Grazie ancora
Scusami, ma non so proprio come spiegarti in altro modo ciò che devi fare:
mio malgrado esco da questo thread.
Se posso darti un consiglio, prima di andare avanti con il tuo database
dedica un po' di tempo a studiare almeno i concetti fondamentali di Access.
