Newsgroup: it.comp.appl.access
Titolo: Report da tabella indice catalogo

Buona domenica a tutto il NG ....:-)
Ho un problema con una tabella che riporta solamente due campi
-codice (formato testo)
-rif_pagina (formato numerico)
ad es. si presenta cosi
codice 46433 pag 12
codice 23222 pag 26
codice 13211 pag 34
codice 13211 pag 34
codice 13211 pag 43
codice 13211 pag 57
codice 15563 pag 19
quindi codice puo essere ripetuto nei numeri di pagina in cui č presente
(anche sulla stessa pagina....)
Come posso fare ad ottenere un report cosě strutturato :
codice 46433 pag 12
codice 23222 pag 26
codice 13211 pag 34 43 57
codice 15563 pag 19
cioč eliminando la ripetizione e concatenando sulla stessa riga i numeri
pagina riferiti allo stesso codice???
Un grazie come sempre per i preziosi suggerimenti che vorrete cortesemente
darmi !
Un saluto a tutti
Paolo

 ha scritto nel messaggio
news:zyiCa.4159$Fr5....@tornado.fastwebnet.it...

Prova a raggruppare i campi sul report.
Apri il report in visualizzazione struttura e poi dal menu visualizza
scegli Ordinamento e raggruppamento.
Ciao
SunRex

 ha scritto nel messaggio
news:vRiCa.24815$pR3.4...@news1.tin.it...

Ciao SunRex e grazie per la risposta, credo perň che per ottenere il
risultato di avere su ogni codice e in corrispondenza il/i numeri di riga,
non sia sufficente usare "raggruppamento" e "ordinamento" penso che ci sia
forse bisogno di ciclare in qualche modo i record ma non so come posso
fare......
Se hai/avete qualche idea vi sarei molto grato :-)
Grazie!
Paolo

 ha scritto nel messaggio
news:N8nCa.4431$Fr5....@tornado.fastwebnet.it...

Prova in questo modo:
1) supponiamo che la tabella si chiami codici+numeri e che contenga il campo
codice (testo) e pagina (intero lungo)
2) crea una query (e chiamala codici) che, basandosi su codici+numeri
restituisca solo il campo codice raggruppato
3) crea una tabella vuota (chiamala unione) nella quale compaiano due campi:
codice (testo) e pagina (intero lungo)
4) esegui il seguente codice, per esempio da una maschera:
    Dim rst1 As Recordset, rst2 As Recordset, rst3 As Recordset
    Dim t As Integer, codice1 As String, codice2 As String
    Dim pagina1 As String, pagine As String, num As Long
    Set rst1 = CurrentDb.OpenRecordset("codici")
    Set rst2 = CurrentDb.OpenRecordset("codici+numeri")
    Set rst3 = CurrentDb.OpenRecordset("unione")
    DoCmd.SetWarnings False
    DoCmd.RunSQL "Delete * FROM unione"
    DoCmd.SetWarnings True
    rst2.MoveFirst
    rst2.MoveLast
    num = rst2.RecordCount
    rst1.MoveFirst
    rst2.MoveFirst
    Do Until rst1.EOF
    codice1 = rst1!codice
     For t = 1 To num
        codice2 = rst2!codice
        pagina1 = rst2!pagina
        If codice1 = codice2 Then
            pagine = pagine & ", " & pagina1
        End If
    rst2.MoveNext
     Next
    If pagine <> "" Then
        rst3.AddNew
        rst3!codice = codice1
        rst3!pagina = Right(pagine, Len(pagine) - 1)
        rst3.Update
        pagine = ""
    End If
    rst1.MoveNext
    rst2.MoveFirst
    Loop
    End Sub
5) usa la tabella unione per il report di stampa
6) facci sapere se va bene
Ciao
Salvatore

 Paolo
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 > > news:zyiCa.4159$Fr5....@tornado.fastwebnet.it...
cut

Ciao a te Salvatore ....grazie infinite per la tua dettagliata risposta
...corro a provarla e ti so dire.... ma credo proprio che hai centrato
perfettamente il problema !
Buona serata !
Paolo

 > cioè eliminando la ripetizione e concatenando sulla stessa riga i numeri

Roberto ciao, provo subito la tua soluzione e ti anticipo pero i miei
ringraziamenti per la tua infinita disponibilità!
Insieme alla soluzione di Salvatore penso che non potevo proprio chiedere di
meglio.... :::)))))
Buona serata anche a te !
Paolo


 ha scritto nel messaggio
news:A3qCa.4836$Fr5....@tornado.fastwebnet.it...

Buonasera Salvatore e Roberto .....:-) ho provato ambedue le soluzioni e
funzionano molto bene entrambe.
La differenza che ho rilevato è che la proposta di Roberto è più veloce e
genera il campo dei numeri di pagina senza duplicati mentre quella di
Salvatore li replica ma in più mette una virgola di separazione tra le
pagine,.e nella tabella unione il campo pagina deve essere di tipo testo e
non numerico altrimenti da l'errore di tipo di dati non corrispondente.
A chi deve risolvere un problema analogo al mio queste sono due soluzioni,
per le quali ringrazio Salvatore e Roberto per la loro disponibilità su
questo NG decisamente insostituibile.
Buona serata a tutti !
