Newsgroup: it.comp.appl.access
Titolo: dati in.... riga !

Ciao a tutti,
esempio:
maschera "main"
pezzo   tipo
1            fresa
2            tornio
maschera "details"
pezzo    reparto
1            1
1            2
1            5
2            4
2            2
In pratica le due tabelle sono in relazione 1-N e mi piacerebbe (ma non ci
riesco) che sul report creato ad hoc apparisse questo:
Pezzo: Fresa
Reparto: 1;2;5
Pezzo: Tornio
Reparto: 4;2
Come si risolve questo problema?
Ciaoooo,
Ale

 ha scritto nel messaggio
news:apoeqh$e7m$1...@newsfeed.cineca.it...

Se il campo Pezzo è di tipo Numerico.
In un modulo del duo database memorizza questa  funzione:
Function Pippo(CodPezzo As Long) As String
Dim rst As DAO.Recordset
Set rst = CurrentDb().OpenRecordset("details")
rst.MoveFirst
Do Until rst.EOF
    If rst!Pezzo = CodPezzo Then
        Pippo = Pippo & rst!Reparto & ";"
    End If
    rst.MoveNext
Loop
Pippo = Left(Pippo, Len(Pippo) - 1)
Set rst = Nothing
End Function
Creati quindi una query che abbia il seguente codice VBA:
SELECT DISTINCT DLookUp("Tipo","main","Pezzo=" & [Pezzo]) AS DesPezzo,
Pippo([Pezzo]) AS Reparti
FROM details
ORDER BY DLookUp("Tipo","main","Pezzo=" & [Pezzo]);
Usa questa query come origine record del tuo report.
La funzione Pippo fa riferimento alla libreria Microsoft DAO, quindi, se usi
Access con una versione successiva ad Access 97, aggiungi ai riferimenti del
tuo database il riferimento a tale libreria.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


Ciao RIberto, che versione utilizzi tu per sviluppare le tue
applicazionni?
E perche'?
Scusami le domande personali :)
Ciao, Fabrizio yQy

 Ciao, Fabrizio yQy
--


 ha scritto nel messaggio
news:YARv9.96125$%M1.24...@twister2.libero.it...

Caspita ! Funziona benissimo !! :-)))))
e se volendo evolvere la cosa la tabella details avesse un campo che si
chiama "sottotipo" e quindi:
 pezzo   sottotipo  reparto
 1           1           1
 1           1           2
 1           1           5
 1           2           2
 1           2           7
 1           2           8
 2           1           1
 2           1           4
e il report si trasformasse in:
tipo: Fresa
sottotipo: 1
reparto: 1;2;5
sottotipo: 2
reparto: 2; 7
ecc....
Visto che il report prende i dati da una query "filtrata" per "pezzo"
pensavo di mettere il controllo "tipo" nell'intestazione del report
e il sottotipo e reparto nel corpo del report.
Come si evolve lo script che hai creato? Io ho cercato di evolvere la query
che mi hai dato ma.... :-(
Ciao.
Ale

 ha scritto nel messaggio
news:aprhm9$qie$1...@newsfeed.cineca.it...
[CUT]

Il codice VBA della funzione diventa:
Function Pippo(CodPezzo As Long, CodSotto As Long) As String
Dim rst As DAO.Recordset
Set rst = CurrentDb().OpenRecordset("details")
rst.MoveFirst
Do Until rst.EOF
    If rst!Pezzo = CodPezzo And _
    rst!Sottotipo = CodSotto Then
        Pippo = Pippo & rst!Reparto & ";"
    End If
    rst.MoveNext
Loop
Pippo = Left(Pippo, Len(Pippo) - 1)
Set rst = Nothing
End Function
Il codice SQL della query diventa:
SELECT DISTINCT DLookUp("Tipo","main","Pezzo=" & [Pezzo]) AS DesPezzo,
details.Sottotipo, Pippo([Pezzo],[Sottotipo]) AS Reparti
FROM details
ORDER BY DLookUp("Tipo","main","Pezzo=" & [Pezzo]);
Naturalmente il report lo raggrupperai per DesPezzo.


Grazie grazie !!
Ale
--------------------------------
Inviato via 
http://usenet.libero.it

 
Prego prego ??
--
a.cara