Newsgroup: it.comp.appl.access
Titolo: Trasformare dati da verticale in orizzontale

Ciao a tutti,
cerco di spiegare il problema.
Ho una tabella ordinata per :
CodiceOperatore
Data (gg/mm/gg)
Ora        espressa in minuti (da 0 a 1440)
Per ogni data l'operatore puo' avere o 2 oppure 4 record e precisamente :
1 record di Entrata al mattino
1 record di Uscita al mattino
1 record di Entrata al pomeriggio
1 record di Uscita al pomeriggio.
Partendo da questa tabella, vorrei crearne un'altra con il seguente
tracciato :
|CodiceOperatore|Data|EntrataAM|UscitaAM|EntrataPM|UscitaPM|
Cioe' portare le Ore di 2 (in quanto la coppia di record del mattino o del
pomeriggio potrebbe mancare) o 4 record in un'unico record.
Qualcuno puo' darmi qualche suggerimento ?
Grazie in anticipo.
Maurizio


wrote:

scorri la tabella via codice e ti crei quella nuova
Saluti.
Emanuele.

 ha scritto nel messaggio
news:vo4b6v46emphreb36...@4ax.com...

con questa risposta l'hai proprio ammazzato a maurizio!!!  :-))

 ha scritto nel messaggio
news:vo4b6v46emphreb36...@4ax.com...

Ciao Emanuele,
so che bisognerebbe fare quello che dici. Ma non l'ho mai fatto e non so
come dirlo al VBA.
Se puoi aiutarmi tu, ti ringrazio tanto.
Ciao.
Maurizio

CUT
Ho una tabella ordinata per :
CodiceOperatore
Data (gg/mm/gg)
Ora        espressa in minuti (da 0 a 1440)
Per ogni data l'operatore puo' avere o 2 oppure 4 record e
precisamente :
1 record di Entrata al mattino
1 record di Uscita al mattino
1 record di Entrata al pomeriggio
1 record di Uscita al pomeriggio.
Partendo da questa tabella, vorrei crearne un'altra con il seguente
tracciato :
|CodiceOperatore|Data|EntrataAM|UscitaAM|EntrataPM|UscitaPM|
Cioe' portare le Ore di 2 (in quanto la coppia di record del mattino o
del
pomeriggio potrebbe mancare) o 4 record in un'unico record.
dim rs as recordset
set rs=currentdb.openrecordset("Select * from tabella order by
codiceoperatore, data, ora")
do while not rs.eof
	rs.movenext
loop
rs.close
questo è il codice per scorrere la tabelle, prova tu a farti la parte
interna per vedere se sei nello stesso operatore e nella stessa data
per scrivere puoi chiamare una funzionne generica de tipo
registra(operatore,giorno'data è parola riservata',EAM,UAM,EPM,UPM)
ed eseguirla con un query del tipo insert into
Saluti.
Emanuele.

 ha scritto nel messaggio
news:5vpd6vgied0gai8fl...@4ax.com...

Ciao Emanuele,
grazie della risposta. Hai centrato il problema ma, purtroppo ho un errore
13 (tipo non corrispondente) di runtime sull'istruzione Set .....
Ho cercato sull'help e ho visto che il metodo CurrentDb vuole il riferimento
permanente alla libreria oggetti DAO 3.6 (non so bene cosa significhi-sono
un vecchio programmatore Cobol e sto cercando, da alcuni mesi, di
convertirmi ad Access-VBA.Leggo e stampo documentazione ma ho parecchia
confusione che sto cercando con pazienza di chiarire; per Access ho diversi
testi ma per VBA nulla. Qualche suggerimento ?).
Leggendo gli esempi dell'help, l'istruzione che hai scritto mi sembra ok,
pero' non funziona. Forse manca qualche altra libreria ?
Come librerie permanenti io ho trovate(per default immagino)  attivate le
seguenti :
VBA- Access 9.0- OLE Automation- ActiveX Data Object 2.1 e adesso DAO 3.6.
Se puoi darmi ancora una mano a risolvere questo problema, te ne sono grato.
Ciao, Maurizio
Io lavoro in A00/w98.


scusa hai messo 
dim rs as recordset?
Saluti.
Emanuele.

 Emanuele.
Scusa, quello che mi suggerisci era gia' OK prima del mio ultimo messaggio.
Per chiarezza ti allego il codice inserito :
Private Sub Comando2_Click()
Dim ComCodiceOperatore As Variant
Dim ComData As Date
Dim Ctr As Integer
'DoCmd.OpenTable "tblOutput", acNormal, acEdit
Dim dbsCurrent As Database
Set dbsCurrent = CurrentDb
Dim rs As Recordset
'Set rs = CurrentDb.OpenRecordset("Select * from tblInput order by
codiceoperatore, dataI, ora")
Set rs = dbsCurrent.OpenRecordset("Select * from tblInput order by
codiceoperatore, dataI, ora")
rs.MoveNext
Ctr = 1
Do While Not rs.EOF
rs.MoveNext
MsgBox "PASSO"
Loop
rs.Close
GoTo Esci
End Sub
Penso che manchi ancora qualche libreria e non so assolutamente quale.
Grazie ancora. Ciao.
Maurizio

 >Ciao Emanuele,
ho risolto il primo problema della lettura della tblInput grazie a te e a
Ringo ...
Bastava mettere Dim rs As DAO.Recordset e funziona.
Ciao. Grazie.
Maurizio