Newsgroup: it.comp.appl.access
Titolo: Creazione TabellaDA a TabellaA con più campi richiesti

Ciao a tutti del N.g ho in una tabella1  i seguenti dati
Tabella1:
Matricola :    Data :      OraInOut :     InOut
 11           20/03/04     08.00             00
 11           20/03/04     12.00             01
 11           20/03/04     13.00             00
 11           20/03/04     16.30             01
 12           20/03/04     08.30             00
 12           20/03/04     16.30             01
Tabella1 l'ho divisa in due in questo modo :
Tabella2 :
SELECT Tabella1.Matricola, Tabella1.Data, Tabella1.OraInOut, Tabella1.InOut
FROM Tabella1
WHERE (((Tabella1.InOut)="00"));
Tabella3 :
SELECT Tabella1.Matricola, Tabella1.Data, Tabella1.OraInOut, Tabella1.InOut
FROM Tabella1
WHERE (((Tabella1.InOut)="01"));
Ma la Matricola 11 ha più Ingressi e Uscite.
Il risultato richiesto in TblRileva  è il seguente :
Matricola :    Data :      Ingresso :    Uscita :   Ingresso1 : Uscita1
 11           20/03/04     08.00            12.00      13.00        16.30
 12           20/03/04     08.00
16.30
Grazie  a tutti  del n.g.

 ha scritto nel messaggio
news:nB57c.83944$FJ6.3...@twister1.libero.it...

Ti pongo la stessa domanda che ti ho posto nell'altro NG: e se il tizio
effettua più di 4 timbrature al giorno cosa pensi di fare?
-- 
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 ha scritto nel 
messaggio 
news:W9i7c.84488$FJ6.3...@twister1.libero.it
...


 Ho provato con Query a campi incrociati ma uhmm non ci siamo.
[CUT]
Per prima cosa quando rispondi scrivi DOPO e non prima del testo dei
messaggi precedenti.
Secondo, quando partecipi ai NewsGroup usa sempre il formato testo e non il
formato HTML.
Terzo, non credo proprio che si possa risolvere il tuo problema con una
query a campi incrociati.
Quarto, a mio avviso non devi creare due tabelle dove memorizzare divise le
timbrature delle entrate e le timbrature delle usite, ma è bene operare
direttamente sull Tabella1 che le contiene entrambe e che, se non ho capito
male, ha una struttura simile a questa:
ID                        Contatore e chiave primaria
Matricola              Testo
Data                     Data/ora
OraInOut              Data/ora
InOut                    Testo
Se vuoi memorizzare in Ingresso ed Uscita le timbrature della prima coppia
entrata/uscita della giornata di una certa matricola ed in Ingresso1 ed
Uscita1 le timbrature dell'ultima coppia entrata/uscita della giornata della
stessa matricola, quello che ti serve dovresti ottenerlo con una query che
abbia il seguente codice SQL:
SELECT Tabella1.Matricola, Tabella1.Data,
CDate(DMin("OraInOut","Tabella1","Matricola ='" & [Matricola] & "' AND Data
= #" & Format([Data],"mm/dd/yyyy") & "# AND InOut = '00'")) AS Ingresso,
CDate(DMin("OraInOut","Tabella1","Matricola ='" & [Matricola] & "' AND Data
= #" & Format([Data],"mm/dd/yyyy") & "# AND InOut = '01'")) AS Uscita,
IIf(Not IsNull(DMax("OraInOut","Tabella1","Matricola ='" & [Matricola] & "'
AND Data = #" & Format([Data],"mm/dd/yyyy") & "# AND InOut = '00'" & " AND
OraInOut <> #" & CDate(DMin("OraInOut","Tabella1","Matricola ='" &
[Matricola] & "' AND Data = #" & Format([Data],"mm/dd/yyyy") & "# AND InOut
= '00'")) & "#")),CDate(DMax("OraInOut","Tabella1","Matricola ='" &
[Matricola] & "' AND Data = #" & Format([Data],"mm/dd/yyyy") & "# AND InOut
= '00'" & " AND OraInOut <> #" & CDate(DMin("OraInOut","Tabella1","Matricola
='" & [Matricola] & "' AND Data = #" & Format([Data],"mm/dd/yyyy") & "# AND
InOut = '00'")) & "#")),Null) AS Ingresso1, IIf(Not
IsNull(DMax("OraInOut","Tabella1","Matricola ='" & [Matricola] & "' AND Data
= #" & Format([Data],"mm/dd/yyyy") & "# AND InOut = '01'" & " AND OraInOut
<> #" & CDate(DMin("OraInOut","Tabella1","Matricola ='" & [Matricola] & "'
AND Data = #" & Format([Data],"mm/dd/yyyy") & "# AND InOut = '01'")) &
"#")),CDate(DMax("OraInOut","Tabella1","Matricola ='" & [Matricola] & "' AND
Data = #" & Format([Data],"mm/dd/yyyy") & "# AND InOut = '01'" & " AND
OraInOut <> #" & CDate(DMin("OraInOut","Tabella1","Matricola ='" &
[Matricola] & "' AND Data = #" & Format([Data],"mm/dd/yyyy") & "# AND InOut
= '01'")) & "#")),Null) AS Uscita1
FROM Tabella1
GROUP BY Tabella1.Matricola, Tabella1.Data
ORDER BY Data, Matricola;
Stai attento che, se il campo Matricola e/o il campo InOut sono Numerici
invece che tipo Testo, devi modificare di conseguenza i criteri delle
funzioni DMin e DMax.
Se la query di cui sopra dovesse risultare troppo lenta, per ottenere i tuoi
risultati devi usare codice VBA che legge Tabella1 e crea record in una
tabella temporanea.
[CUT]


 ha scritto nel messaggio
news:bSF7c.83027$Kc3.2...@twister2.libero.it...

Ciao spero di aver scritto correttemente.
Ho provato il codice SQL da Te posto e va benissimo. Continuavo ad insistere
con le due Tabelle.
Fatto ciò mi sorge un dubbio se uno timbra soltanto una volta?. Ho simulato
e ho tanti #Errore come mai?
Forse perchè la condizione IIF deve essere rivista?
Grazie ancora per l'attenzione.
New Hold.

 New Hold.
-- 


 ha scritto nel messaggio
news:Plj8c.87156$Kc3.2...@twister2.libero.it...

Grazie provo subito.