Newsgroup: it.comp.appl.access
Titolo: Ciclare un Recordset

Scusate se torno a postare nuovamente il quesito ma per me č importante.
Dunque utilizzo il seguente codice:
.ActiveDocument.Bookmarks("ElencoProdotti").Select
 SQL = "SELECT * FROM [QDettaglio_Offerta] WHERE IDOfferta=" &
 Me.IDOfferta & _
         " ORDER BY Codice, Descrizione;"
    Set Rst = CurrentDb.OpenRecordset(SQL)
    If Not Rst.BOF Then 'se il recordset non č vuoto
        Tbl = Chr$(9) 'Chr$(9) č una tabulazione
        'ciclo sul recordset ed esportazione di tutte le righe
        With Rst
            Totale = 0 '
            .MoveFirst 'posizionati sul primo record
            While Not .EOF 'ripeti fino alla fine del recordset:
                'costruisci la riga da scrivere nel documento:
                Record = "Descrizione:" & " " & !Descrizione & (Chr(13)) &
 "Denominazione commerciale:" & " " & _
                         !Denominazione_Commerciale & (Chr(13)) & "Codice 
prodotto:" & " " & _
                        !Codice & (Chr(13)) & "Ditta Produttrice:" & " " & _
                         !Ditta_Produttrice & (Chr(13)) & "Confezione da:" 
& " " & _
                       !Pezzi_Confezione & " " & !Descrizione_Confezione  & 
(Chr(13))
              Wrd.Selection.TypeText Record & vbCrLf 'scrivi la riga
                'Totale = Totale + TotRiga  'somma i totali di ciascun 
record
              .MoveNext 'passa al prossimo record
               pausa
          Wend 'Not .EOF
      End With 'Rst
     'chiudi e azzera il recordset
       Rst.Close: Set Rst = Nothing
   Else 'Not Rst.BOF
       Wrd.Selection.TypeText "NESSUN PRODOTTO ." & vbCrLf
   End If 'Not Rst.BOF
 tratto dall'esempio Bookmark del sito comune, per popolare un documento 
word, e cosě funziona perfettamente.
Il risulatto che viene fuori, sintetizzato e il seguente:
IdOfferta   Prodotto   ecc..
    1                1            ....
    1                2            ....
    1                3            ....
cioč mi esporta tutti i prodotti legati all'offerta.
Considerato che ho inserito nel recordset iniziale i Lotti, quindi 
all'interno di un'offerta ho n lotti, a sua volta ogni lotto e costituito da 
n prodotti,
la domanda č: come posso cambiare il codice precedente affinchč mi venga 
fuori un risultato del genere:
IdOfferta 1
Lotto   1
idprodotto1
idprodotto2
idprodotto3
ecc...
Lotto2
idprodotto1
idprodotto2
idprodotto3
ecc...
e cosi via
Spero di essrmi spiegato bene, e che qualcuno possa darmi una mano, come ho 
detto prima per me č importante ho fatto diverse prove
ma senza risultato.
Ciao Tommy


Potresti utilizzare una variabile per verificare se cambia il lotto:
...
dim lottoVecchio
lottoVecchio = null
While Not .EOF 'ripeti fino alla fine del recordset:
    if lottoVecchio = Null then
        lottoVecchio = Rst!lotto
    end if
    if lottoVecchio <> Rst!lotto then
        ...Scrivi intestazione...
        lottoVecchio = Rst!lotto
    end if
    .MoveNext 'passa al prossimo record
Wend 'Not .EOF
Ciao.
-- 
Sergio MAZZA 

nell'esempio  di codice che ho riportato prima dove lo devo inserire
questo codice?
Tommy

 Tommy
Se devi scrivere una "intestazione" lo dovrai mettere prima di scrivere ogni "dettaglio" ma sempre dentro il ciclo EOF...
Ciao.
-- 
Sergio MAZZA 

Ok, ora funziona. o dovuto apportare delle modifiche al codice, però
la soluzione era quella giusta.
1000 grazie, non sai l'aiuto che mi hai dato
Tommy