Una famiglia di sistemi di gestione per database relazionali di Microsoft progettati per semplificare l'uso.
Si,
qui trovi il mio db di esempio.
http://cid-28157afa30fd10e3.office.live.com/self.aspx/Access/Differenza%20Orario.mdb
David
Questo browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare i vantaggi di funzionalità più recenti, aggiornamenti della sicurezza e supporto tecnico.
Ciao a tutti,
chiedo il vostro aiuto su una query di access 2003, in particolare mi serve che esegua la differenza delle ore, minuti e secondi tra due campi entrata e uscita.
Preciso che i campi si compilano nel formato now() quindi data ora, minuti e secondi.
ho provato con questa query ma non riesco nella differenza.
SELECT Tabella1.Utente, Max(Tabella1.entrata) AS MaxDientrata, Max(Tabella1.uscita) AS MaxDiuscita, DateDiff('s',[uscita],[entrata]) AS Differenza
FROM Tabella1
GROUP BY Tabella1.Utente, Tabella1.data, DateDiff('s',[uscita],[entrata])
HAVING (((Tabella1.data)=[inserisci data Data]));
Grazie per l'attenzione
Una famiglia di sistemi di gestione per database relazionali di Microsoft progettati per semplificare l'uso.
Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.
Risposta accettata dall'autore della domanda
Si,
qui trovi il mio db di esempio.
http://cid-28157afa30fd10e3.office.live.com/self.aspx/Access/Differenza%20Orario.mdb
David
Ciao David, ho provato a fare copia e incolla della tua query nonchè della funzione inserendo quest'ultima in un nuovo modulo che ho chiamato DifferenzaOre, ma il risultato è il medesimo.
ma come formato hai utilizzato il seguente?
31/01/2011 15.54.18
Ciao Luca,
nella query inverti entrata con uscita in questo modo
DiffDate([entrata],[uscita].
Inoltre il costrutto della mia query è il seguente:
SELECT Max(Tabella1.entrata) AS MaxDientrata, Max(Tabella1.uscita) AS MaxDiuscita, DiffDate([entrata],[uscita]) AS Differenza
FROM Tabella1
WHERE (((Tabella1.data)=[inserisci data Data]))
GROUP BY DiffDate([entrata],[uscita]);
Per il resto a me funziona correttamente.
David
Ciao David, grazie per la risposto.
quanto mi hai illustrato genere un errore sull'esecuzione e precisamente
Espressione digitata non correttamente o troppo complessa per essere valutata. Un espressione numerica, ad esempio, può contenere troppi elementi complessi.
Semplificare assegnando parti dell'espressione e variabili.
hai qualche idea?
Grazie
Ciao Luca.Newton
in un modulo crea una funzione di questo tipo
Function DiffDate(dtOraInizio As Date, dtOraFine As Date) As Date
If dtOraFine < dtOraInizio Then
dtOraFine = 1 + dtOraFine 'aggiungo 1 giorno
End If
DiffDate = dtOraFine - dtOraInizio
End Function
poi cambia la tua query in questo modo:
SELECT Tabella1.Utente, Max(Tabella1.entrata) AS MaxDientrata, Max(Tabella1.uscita) AS MaxDiuscita, DiffDate([uscita],[entrata]) AS Differenza
FROM Tabella1
GROUP BY Tabella1.Utente, Tabella1.data, DiffDate([uscita],[entrata])
HAVING (((Tabella1.data)=[inserisci data Data]));
P.S.: la funzione è un adattamento di una funzione tratta da un post di Giorgio Rancati.
David