Newsgroup: it.comp.appl.access
Titolo: CREAZIONE TABELLA - CONVERSIONE

Ciao,
come potrei realizzare creare una tabella ad una colonna, prelevando i dati 
da due tabelle ?
Mi spiego meglio:
Ho due tabelle
ANAGRAFICA con i campi COGNOME e MATRICOLA
MISSIONI con i campi GIORNO, DALLE, ORE
 in relazione con idCognome
devo creare una tabella secondo queste regole:
1) Filtrare  per mensilità
2) Inserirli consecutivamente dentro una tabella MISSIONI con un solo campo: 
COMPLESSIVI
e presentarsi così:
CARLO
87132
10/11/2006
15,15
3
15/11/2006
20,20
2
18/11/2006
14,15
3
VINCENZO
45367
09/11/2006
12,20
5
MARCO
46374
03/11/2006
15,40
4
05/11/2006
16,15
6
16/11/2006
13,30
3
.....
Grazie
ANTO

 ha scritto nel 
messaggio news:456fd093$0$3217$4faf...@reader2.news.tin.it...

 Dopo che hai creato la tabella e inserito l'unico campo (immagino di tipo 
memo), puoi usare una query di accodamento.
La qry di accodamento sarà formata dalla due tabelle, visto che sono legate 
da join e da un solo campo che unisce i campi che ti servono e li accoda al 
campo e alla tabella.
Così per esempio puoi creare un campo: Complessivo: [Cognome] & " " & 
[Matricola] & " " & [Giorno] ecc..
Se vuoi il ritorno a capo: Complessivo: [Cognome] & " " & [Matricola] & 
vbcrlf & [Giorno] ecc..
Esegui la qry e il gioco è fatto.
Ciao, Carlo 

 ha scritto nel messaggio 
news:ekp82n$q43$1...@tdi.cu.mi.it...



Così i dati, come suggerisci, vengono disposti in orizzontale
CARLO 87132 10/11/2006 15,15 3
.....
 e non in verticale come mi servono
CARLO
87132
10/11/2006
15,15
3
15/11/2006
20,20
2
18/11/2006
14,15
3
.........
ovvero un dato per ogni record.
In pratica un ciclo nel ciclo
Cognome.Anagrafica (1)
Matricola.Anagrafica (1)
  Giono.Missioni (1,1)
  Dalle.Missioni  (1,2)
  Ore.Missioni  (1,3)
Cognome.Anagrafica (2)
Matricola.Anagrafica (2)
   Giono.Missioni  (2,1)
   Dalle.Missioni  (2,2)
  Ore.Missioni  (2,3)
  Giono.Missioni  (2,4)
  Dalle.Missioni  (2,5)
  Ore.Missioni  (2,6)
  Giono.Missioni  (2,7)
  Dalle.Missioni  (2,8)
  Ore.Missioni  (2,9)
Cognome.Anagrafica (3)
Matricola.Anagrafica (3)
  Giono.Missioni  (3,1)
  Dalle.Missioni  (3,2)
 Ore.Missioni  (3,3)
......
Come fare allora?
ANTO 

 Cosě i dati, come suggerisci, vengono disposti in orizzontale

Purtroppo Access a volte si comporta stranamente (forse per mia ignoranza).
In pratica se scrivo vbcrlf nella query per aggiungere un ritorno a capo non 
funziona ma se gli passo una variabile con lo stesso valore funziona.
In pratica fai cosě: in un modulo pubblico scrivi questa funzione:
Public Function ACapo() As Variant
ACapo = vbCrLf
End Function
Ora nella query sostituisci tutti i vbcrlf con la funzione (scritta cosě: 
ACapo()) e vedrai che funzia.
Complessivo: [Cognome] & " " & [Matricola] & ACapo() & [Giorno] ecc..
Ciao, Carlo 

Non posso sospendere adesso , proverò stasera alle 20 il tuo suggerimento e 
ti farò sapere. Nel frattempo  ...Grazie
PS
non c'è un modo per farlo da codice tipo?
Dim rs As DAO.Recordset
X = FreeFile
Open "c:\MESEDINOVEMBRE.txt" For Output As #X
Print #X, "<primo rigo>"
Set rs = CurrentDb.OpenRecordset("TABELLA1")
Set rs = CurrentDb.OpenRecordset("TABELLA2")
While Not rs.EOF
Print #X, rs!Matricola
.......
rs.MoveNext
Wend
CIAO
ANTO

 ha scritto nel 
messaggio news:45705357$0$19239$4faf...@reader4.news.tin.it...

Certo che si può fare via codice!
Posso però consigliarti di seguire la qry di accodamento e aggiungere, 
semmai, via codice la sola esportazione verso un file di testo.
Ciao, Carlo 

 Ciao, Carlo
Non ci sono riuscita, ho deciso di farlo via codice, puoi ancora aiutarmi, 
per favore ?
GRAZIE
ANTO 

 ha scritto nel 
messaggio news:4570a702$0$13759$4faf...@reader3.news.tin.it...

Perchè non ci sei riuscita? Ci sono messaggi di errore? Dove ti sei 
bloccata?
Hai fatto la qry con la funzione di ritorno a capo?
Ciao, Carlo 

Ho visto che questa soluzione non produce in realtà quello di cui ho bisogno 
avendo letto meglio
come dovrà essere il formato richiesto
Come dicevo prima si dovrà produrre un file txt che abbia sia il nome del 
campo che il relativo valore
Esempio
CARLO ha lavorato 3 giorni
ANTONELLA ha lavorato 1 giorno
MARCELLA ha lavorato 5 giorni
...e così via
producendo un file txt (in verticale) con il nome del campo ed il relativo 
valore
Cognome: CARLO
Matricola: 12345
Giorno: 12/11/2006
Dalle: 10,30
Ore: 3
Giorno: 15/11/2006
Dalle: 12,30
Ore: 4
Giorno: 19/11/2006
Dalle: 13,30
Ore: 2                            ************** e poi si passa all'altro 
dipendente
Cognome: ANTONELLA
Matricola: 54321
Giorno: 12/11/2006
Dalle: 10,30
Ore: 3
.....
IMPORTANTE: il campo IDcognome (in relazione) è presente sia nella tabella 
Anagrafica che nella tabella Missioni
Avevo incominciato così ma il codice non mi cicla ,perchè non so farlo!!
Dim rs As DAO.Recordset
X = FreeFile
Open "c:\MESEDINOVEMBRE.txt" For Output As #X
Set rs = CurrentDb.OpenRecordset("ANAGRAFICA")
Set ps = CurrentDb.OpenRecordset("MISSIONI")
strRicerca= InputBox("Inserisci il mese - numerico")
strMese= stringa.estrai(GIORNO;4;2)
a questo punto la query seguente dovrebbe filtrare solo le missioni del mese
strSQL "select IDcognome,GIORNO, DALLE, ORE" & "from MISSIONI where StrMese 
= " & " '" & strRicerca & "'"
poi ...per ogni idCognome ....
While Not rs.EOF
Print #X, "Cognome" & rs!Cognome
Print #X, "Matricola" & rs!Matricola
        While Not ps.EOF
        Print #X, "Giorno" & ps!Giorno
        Print #X, "Dalle" & ps!Dalle
        Print #X, "Ore" & ps!Ore
        ps.MovNext
        Wend
rs.MoveNext
Wend
ma come avrai capito non funziona niente e mi sto confondendo: HELP !!
ANTO 

 ha scritto nel 
messaggio news:...



Va "quasi" bene. Forse hai complcato un po' troppo la situazione.
1) Prepara una query che accoppia anagrafica e missioni (Q_AnagMissioni) 
con tutti i campi che ti servono
2) Apri il recordset basandolo su Q_AnagMissioni
i.e : Set rs = CurrentDb.OpenRecordset("Q_AnagMissioni")
3) Usa il ciclo che hai gia' fatto, semplificato, poiche' ora il tuo 
recordset per ogni record contiene quello che ti serve
i.e
While Not rs.EOF
  Print #X, "Cognome" & rs!Cognome
  Print #X, "Matricola" & rs!Matricola
  Print #X, "Giorno" & ps!Giorno
  Print #X, "Dalle" & ps!Dalle
  Print #X, "Ore" & ps!Ore
  rs.MoveNext
Wend
--
ac

 Wend
L'avevo considerato ma non va bene, perchè in ogni rigodella query 
(ANAGRAFICA+MISSIONI) i valori di ANAGRAFICO  vengono ripetuti
la query come dici restituisce invece
Alessandro
Fiat
Alessandro
AlfaRomeo
Alessandro
Toyota
Antonella
Smart
Antonella
Toyota
ecc
mi spiego meglio:
Supponi che Alessandro abbia 3 macchine
Antonella abbia 2 macchine e
Carlo abbia 4 macchine
il risultato dovrà essere
Alessandro
Fiat
AlfaRomeo
Toyota
Antonella
Smart
Toyota
Carlo
Lancia
Fiat
Mazda
Ford
ecc.
secondo questo ordine
GRAZIE
ANTO
devo risolvere questo quesito prima possibile, Lunedì avrò l'inferno in 
ufficio se non riuscirò a caricare i dati  :-( 


Ti eri spiegata bene. Stavo per "eccitarmi" poi ho riguardato la 
struttura che avevi scritto ed e' chiara. Avevi fatto quasi tutto bene.
Comunque continua ad usare un solo recordset che deve essere ordinato 
per matricola o anagrafica (in tal caso la gestione su wk_matric deve 
essere fatta sull'anagrafica).
Basta un piccolo ritocco:
Dim wk_Matric as string
While Not rs.EOF
   wk_matric = rs!matricola
   Print #X, "Cognome" & rs!Cognome
   Print #X, "Matricola" & rs!Matricola
   while not rs.eof and wk_matric = rs!Matricola
        Print #X, "Giorno" & ps!Giorno
        Print #X, "Dalle" & ps!Dalle
        Print #X, "Ore" & ps!Ore
        rs.MoveNext
        if rs.Eof then exit loop
   wend
wend
s.e. & o.
--
ac

 ha scritto nel messaggio 
news:Ngech.7240$P04...@tornado.fastwebnet.it...

NON FUNZIONA !
errore di compilazione dopo exit NON vuole loop
ed altri. ....
Ti chiedo molto proponendoti di  testare meglio il tuo codice e magari 
reinviarmelo?
GRAZIE
ANTO


Il codice non era testato e non credo di testarlo
io non uso mai il formato while da te impostato e non  so come si fa ad 
uscire da una while ....wend (l'HELP : alt+F11 F1 , non cita tale 
possibilita')
io uso do while (o until ) .... loop
  Dim wk_Matric as string
  do until  rs.EOF
    wk_matric = rs!matricola
    Print #X, "Cognome" & rs!Cognome
    Print #X, "Matricola" & rs!Matricola
    do until rs.eof or wk_matric <> rs!Matricola
         Print #X, "Giorno" & ps!Giorno
         Print #X, "Dalle" & ps!Dalle
         Print #X, "Ore" & ps!Ore
         rs.MoveNext
         if rs.Eof then exit do
    loop
loop
--
ac


ipotizzando che non ti riferissi più alla query.
Ti ringrazio davvero tanto. Credo che dovrò studiarci un po di più sulla 
gestione dei file. Ma quando hai il diavolo alle calcagna .....
CIAO
ANTO