Newsgroup: it.comp.appl.access
Titolo: simulare master detail con i recordset annidati

 attività uno
ecc...
Questa poi la butto cosi come è e la formatto in Power point.
Dim strpopolata As String
Dim strdettaglio As String
Dim rst_dettaglio As DAO.Recordset
Set db = CurrentDb()
Set rst = db.OpenRecordset("select idcliente, ragione_sociale, settore
from Q01_Elenco group by idcliente, ragione_sociale, settore order by
ragione_sociale ", dbOpenDynaset)
Set rst_dettaglio = db.OpenRecordset("Select idcliente,
descrizione_prodotto from T02_Attivita_clienti where Idcliente=" & rst!
Idcliente, dbOpenDynaset)
Dim conta_record As Integer
conta_record = rst.RecordCount
Dim i As Integer
rst.MoveFirst
Do Until rst.AbsolutePosition = 20
Do Until rst_dettaglio.EOF
strdettaglio = strdettaglio & Chr(13) & rst_dettaglio!
descrizione_prodotto
rst_dettaglio.MoveNext
Loop
strpopolata = strpopolata & Chr(13) & "> " & rst!Ragione_Sociale & " -
" & rst!Settore & Chr(13) & _
strdettaglio
rst.MoveNext
Loop

 Loop
Dim strpopolata As String
Dim strdettaglio As String
dim rst as DAO.Recordset
Dim rst_dettaglio As DAO.Recordset
dim db as dao.database
Set db = CurrentDb
with rst
do 'Così scarichi prenditutte le intestazioni
i = i +1
Set rst_dettaglio = db.OpenRecordset("Select idcliente,
descrizione_prodotto from T02_Attivita_clienti where Idcliente=" & 
!Idcliente, dbOpenDynaset)
'qui oltre a piccolo ciclo del dettaglio lo fai andare a pagina successiva
if i = 20 then i = 0
.movenext
loop until .eof
end with
-- 
-- 
Massimiliano Amendola
www.accessgroup.it
Cisa - Conferenza Italiana Sviluppatori Access

 - Mostra testo tra virgolette -
mo provo ...

[CUT]
Sto pasticciando con i recordset per popolare il valore di due
variabili in modo da simulare una struttura master detail che vorrei
esportare con power point.
------------
Inviata soluzione...
-- 
-- 
Ciao
Pablitomf (Maurizio Facciuti)
-----------------------------------------------------------------
Access: 97, 2000, XP e 2003
ASP
-----------------------------------------------------------------
http://www.accessgroup.it/
-----------------------------------------------------------------
Il mio motto :
""Non mi fido molto delle statistiche, perchč un uomo con la testa nel forno
acceso e i piedi nel congelatore statisticamente ha una temperatura media." 

 acceso e i piedi nel congelatore statisticamente ha una temperatura media."
Grazie a maurizio!
Per i posteri invio codice utilizzato cosi come egregiamente corretto
da maurizio.
La procedura effettua una sorta di paginazione di record di una
tabella master ed una detail e li esporta in un documento in power
point effettuando una piccola animazione.
Può essere uno spunto per l'automazione di access + power point come
strumento di reportistica.
La posto per chi volesse approfondire,  se qualcuno vuole può
tranquillamente pubblicarla o realizzarne un esempio per accessgroup o
sitocomune. Io purtroppo non ho competenze cosi sofisticate.
creare un file modello in c:\presentazione_modello.pot
e mettere i riferimenti a ppt.
Dim db As Database
Dim rst As DAO.Recordset
Dim strpopolata As String
Dim rst_dettaglio As DAO.Recordset
Set db = CurrentDb()
'Set rst = db.OpenRecordset("select idcliente, ragione_sociale,
settore from Q01_Elenco group by idcliente, ragione_sociale, settore
order by ragione_sociale ", dbOpenDynaset)
Dim conta_record As Integer
conta_record = 0
Dim i As Integer
i = 0
Set db = CurrentDb()
Set rst = db.OpenRecordset("select idcliente, ragione_sociale, settore
from Q01_Elenco group by idcliente, ragione_sociale, settore order by
ragione_sociale ", dbOpenDynaset)
rst.MoveFirst
'CREA PPT
Dim objPPPres As PowerPoint.Presentation
Dim chktemplate As Boolean
Dim pathtemplate As String
pathtemplate = "c:\presentazione_modello.pot"
chktemplate = True
Dim objPPApp As Object
Set objPPApp = New PowerPoint.Application
Set objPPPres = objPPApp.Presentations.Add
If chktemplate = True Then
    objPPPres.ApplyTemplate pathtemplate
End If
While rst.EOF = False
    conta_record = conta_record + 1
    If conta_record > 14 Then
controlla:
        conta_record = 0
        i = i + 1
                'aggiunge una nuova diapositiva
                With objPPPres
                            With .Slides.Add(Nz(Int(i)),
ppLayoutTitle)
                            .Shapes(1).TextFrame.TextRange.Text =
"Clienti"
                            .SlideShowTransition.EntryEffect =
ppEffectFade
                                With .Shapes(2).TextFrame.TextRange
                                    .ParagraphFormat.Alignment =
ppAlignLeft
                                    .Text = strpopolata
                                    .Characters.Font.Color.RGB =
RGB(170, 182, 234)
                                    .Characters.Font.Size = 10
                                    .Characters.Font.Shadow = True
                                End With
                            .Shapes(1).TextFrame.TextRange.Characters.Font.Size
= 15
                            .Shapes(1).
TextFrame.TextRange.Characters.Font.Name
= "Tahoma"
                            .Shapes(1).TextFrame.TextRange.Characters.Font.Bold
= False
                        End With
                End With
        'SVUOTA VARIABILE
        strpopolata = ""
        Me.lbl_status = "Creata pagina " & i
        Me.lbl_status.Requery
        DoEvents
    Else
        'strpopolata = strpopolata & Chr(13) & "CLI ( " & conta_record
& " ) " & rst!Ragione_Sociale & " -" & rst!Settore
        strpopolata = strpopolata & Chr(13) & rst!Ragione_Sociale & "
- " & rst!Settore
        Set rst_dettaglio = db.OpenRecordset("Select idcliente,
descrizione_prodotto from T02_Attivita_clienti where Idcliente=" & rst!
Idcliente, dbOpenDynaset)
        Do Until rst_dettaglio.EOF
            conta_record = conta_record + 1
            If conta_record > 14 Then
                GoTo controlla:
            Else
                strpopolata = strpopolata & Chr(13) & " > " &
rst_dettaglio!descrizione_prodotto
                rst_dettaglio.MoveNext
            End If
        Loop
    End If
rst.MoveNext
Wend
objPPPres.SaveAs "c:\presentazione1.ppt"
DoEvents
objPPPres.SlideShowSettings.Run
rst.Close
rst_dettaglio.Close
Set rst_dettaglio = Nothing
Set rst = Nothing
Set db = Nothing

 attivitą uno
ecc...
Questa poi la butto cosi come č e la formatto in Power point.




Do Until rst_dettaglio.EOF

rst_dettaglio.MoveNext
Loop

rst.MoveNext
Loop
[risposta]
L'altra possibile soluzione č utilizzare recordset ADO e le sue proprietą:
- PageSize
- PageCount
- AbsolutePage
Ciao.
-- 
Sergio MAZZA