Newsgroup: it.comp.appl.access
Titolo: Tabella - valori in riga...

Utilizzerò questo scenario "simile" per farmi capire meglio...
Ho 2 tabelle collegate 1 a molti.
Sulla prima c'è un'anagrafica articoli.
Sulla seconda ci sono le caratteristiche di ogni articolo.
Quindi ogni articolo può avere + caratteristiche collegate tramite
l'id dell'articolo.
Detto questo ho la necessità di pubblicare un report avente una lista
verticale degli articoli (e qui, niente di più semplice...) ma con le
caratteristiche in priorità orizzontale.
Es:
Anagrafica     | caratteristiche
BMW Serie 3 | ABS, Cerchi in lega, Blu, Tettino....
Audi A4         | ESP, interni in pelle, cambio automatico...
Sono giorni che provo e riprovo ma non riesco ad ottenere nulla!?!?!?!


Senza inventarti acrobazie con le query, molto più semplicemente di crei 
sub sottoreport (i cui campi master/detail sono referenziati dal tuo ID) 
i quale, diversamente dal report anagrafica, sarà impostato a due o più 
colonne.
In questo modo rendereai anche più leggibile la reportistica.
Ciao
-- 
Daniele
Rispondere scartando OneEDP, spam e 32


Ok, così avevo già provato, funziona ma poi questi dati dovrò anche
utilizzarli su maschere ed esportarli su excel, quindi preferivo una
procedura più coerente, anche se + complicata..
grazie x il tuo intervento


1) Crei un campo Memo in tblMaster chiamato DescrizioneEstesa
2) esegui queste "leggera" update
UPDATE tblDetail
LEFT JOIN tblMaster ON
     tblDetail.ID = tblMaster.ID
SET
     tblMaster.DescrizioneEstesa =  tblMaster.DescrizioneEstesa & ", " & 
tblDetail.Descrizione
UPDATE tblTemp As TT
SET TT.Descrizione = TT.Descrizione & " " &
3) Ogni volta che lanci il report devi ripulire
UPDATE tblMaster
SET tblMaster.DescrizioneEstesa = ""
e rilanciare la 2)
Se invece devi esportare tutte le descrizioni in ogni singola cella del tipo
Alfa: cella1, cella2, cella3, cella4
Beta: cella1, cella2, cella3, cella4
ecc.
allora con interfaccia Access da winzoz ti crei una bella query a campi 
incrociati


 wrote in message 
news:2b75fc4a-ee77-4bbb...@l20g2000yqm.googlegroups.com...




=========================================
Private Sub Vert_To_Hor_Click()
Dim db As Database, SourceTable As String, RelatedTable As String
Dim TargetTable As String, SQL As String, RelatedTable_RelatedField As 
String
Dim TargetTable_NumCampi As Integer, TargetTable_TableDef As TableDef
Dim i As Integer, TargetTable_NewFieldName As String, 
RelatedTable_FieldToTranspose As String
Dim RS1 As Recordset, RS2 As Recordset, RS3 As Recordset, 
SourceTable_PrimaryKey As String
' Definizioni
' --------------------------------------------
SourceTable = "t_Autovetture"     ' Uno a...
SourceTable_PrimaryKey = "ID_Autovettura"
'
RelatedTable = "t_Caratteristiche"   ' ... Molti
RelatedTable_RelatedField = "ID_Autovettura"
RelatedTable_FieldToTranspose = "Caratteristica"
'
TargetTable = "t_Auto"
TargetTable_NewFieldName = "C_"
' --------------------------------------------
Set db = CurrentDb
SQL = "SELECT Count(t_Caratteristiche." & RelatedTable_RelatedField & ") AS 
NumberOfDups "
SQL = SQL & "FROM t_Caratteristiche GROUP BY t_Caratteristiche." & 
RelatedTable_RelatedField & " "
SQL = SQL & "HAVING (((Count(t_Caratteristiche." & RelatedTable_RelatedField 
& ")) > 1)) "
SQL = SQL & "ORDER BY Count(t_Caratteristiche." & RelatedTable_RelatedField 
& ") DESC;"
Set RS1 = db.OpenRecordset(SQL)
TargetTable_NumCampi = RS1![NumberOfDups]
SQL = "CREATE TABLE " & TargetTable & " "
SQL = SQL & "([" & SourceTable_PrimaryKey & "] long);"
On Error Resume Next
DoCmd.DeleteObject acTable, TargetTable
db.Execute SQL
On Error GoTo 0
Set TargetTable_TableDef = db.TableDefs(TargetTable)
For i = 1 To TargetTable_NumCampi
    With TargetTable_TableDef
        .Fields.Append .CreateField(TargetTable_NewFieldName & i, dbText, 
255)
    End With
Next
Set RS1 = db.OpenRecordset(SourceTable, dbOpenDynaset)
Set RS2 = db.OpenRecordset(TargetTable, dbOpenDynaset)
Do Until RS1.EOF
    RS2.AddNew
        RS2(SourceTable_PrimaryKey) = RS1(SourceTable_PrimaryKey)
        SQL = "SELECT " & RelatedTable & ".* FROM " & RelatedTable & " "
        SQL = SQL & "WHERE " & RelatedTable & "." & 
RelatedTable_RelatedField & "=" & RS1(SourceTable_PrimaryKey) & ";"
        Set RS3 = db.OpenRecordset(SQL, dbOpenDynaset)
        i = 0
        Do Until RS3.EOF
            i = i + 1
            RS2(TargetTable_NewFieldName & i) = 
RS3(RelatedTable_FieldToTranspose)
            RS3.MoveNext
        Loop
    RS2.Update
    RS1.MoveNext
Loop
End Sub
=========================================
Bruno 


Questa è di troppo
UPDATE tblTemp As TT
SET TT.Descrizione = TT.Descrizione & " " &
-- 



Perfetto, funzionano alla grande ma la soluzione di oneEDP è quella
che ho preferito per la sua semplicità!!... grazie!