Newsgroup: it.comp.appl.access
Titolo: Aiuto!!!

Devo estrarre da una tabella gruppi di quattro record consecutivi con un
passo fissato.
Ad esempio:
se fisso il passo uguale a 10 e suppongo di partire dal record n. 4 dovrň
estrarre i record:
4 - 5 - 6 - 7
14-15-16-17
24-25-26-27
....... e cosě via...
inoltre devo assegnare un numero progressivo ad ogni quartina e il numero
relativo all'interno di ongi quartina.
Come posso fare?

 ha scritto nel messaggio
news:f7QJ8.1539$t47....@twister1.libero.it...

Via codice. Tramite recordset e due cicli do..loop uno annidato nell'altro:
quello esterno processa il passo 10, quello interno le quartine.
Ciao.
--
Fabio Dalla Villa
Biella
nomec...@tiscali.it

 ha scritto nel messaggio
news:3cf88b95$1...@news.cis.it...



Tutto il codice č un po' impegnativo. Provo a buttare giů qualche riga a
sentimento... poi continua tu.
Dim i as integer    'ciclo esterno
Dim j as integer    'ciclo interno
dim k as integer    'per il punto di partenza
Dim MioDB       As Database
Dim Miors       As Recordset
Set Miors = CurrentDb.OpenRecordset("TuaTabella")
Miors.movefirst        'parte dall'inizio
i=0:j=0    'azzera i contatori
i=4          'punto di partenza
for k=1 to i
    miors.movenext
next k
do
    miors.movenext:i=i+1
    if (i-4)/10=int((i-4)/10) then
        do
            j=j+1:i=i+1
            'memorizzati 'sti record qui dentro
            miors.movenext
        loop until j/4 = int (j/4)
    end if
loop until Miors.eof
Buon lavoro.


 Tutto il codice è un po' impegnativo. Provo a buttare giù qualche riga a



Senza poter leggere l'errore è un po' dura!
Sarà che ti mancano i riferimenti: nella finestra del codice, menù
Strumenti, voce riferimenti, dopo i primi tre rif. attivati, bisogna
attivarne altri. Sono Micr. jet ..., Micr. Visual basic ...., Micr. DAO 3.6.
Vanno sistemati in quest'ordine tassativo. Non so quale dei tre sopra
indicati sia quello necessario.


 ha scritto nel messaggio
news:3cf9...@news.cis.it...



Ho verificato il codice con A2k. Crea una maschera. Crea una casella di
testo con nome testo5 e un pulsante e dentro l'evento click copiati questo:
Option Compare Database
Private Sub Comando0_Click()
    Dim i As Integer    'ciclo esterno
    Dim j As Integer    'ciclo interno
    Dim k As Integer    'per il punto di partenza
    Dim MioDB       As Database
    Dim Miors       As Recordset
    Set Miors = CurrentDb.OpenRecordset("Tabella1")
    Miors.MoveFirst        'parte dall'inizio
    i = 0: j = 0 'azzera i contatori
    i = 4        'punto di partenza
    For k = 1 To i
        Miors.MoveNext
    Next k
    Do
        Miors.MoveNext: i = i + 1
        If Miors.EOF Then Exit Sub
        If (i - 4) / 10 = Int((i - 4) / 10) Then
            Do
                j = j + 1: i = i + 1
                'memorizzati 'sti record qui dentro
                Me.Testo5 = Miors![campo1]
                MsgBox "Batti su ok per continuare"
                Me.Repaint
                Miors.MoveNext
                If Miors.EOF Then Exit Sub
            Loop Until j / 4 = Int(j / 4)
        End If
    Loop Until Miors.EOF
End Sub
I miei riferimenti sono nell'ordine:
Visual Basic for application
Microsoft Access 9.0 Object Library
Ole Automation
Microsoft DAO 3.51 Object Library
Provato e funzionante.
Se non gira ti invio una zippata.
Ciao.
Fabio DV

 ha scritto nel messaggio
news:3cfa...@news.cis.it...


 ha scritto nel messaggio
news:amwK8.10290$t47.2...@twister1.libero.it...


 ha scritto nel messaggio
news:3cfbb949$1...@news.cis.it...


 
Ciao Fabio.
Consiglio, se puoi evita i Do...Loop, sono molto più lenti
di un For...Next ed in questo caso era fattibile rendendo
dinamico il Punto di partenza del Loop Interno come X=n*10 to n*10+4
ovviamente n è il loop Ext.
C'è una differenza di circa il 30%, ovviamente è apprezzabile
solo su Recordset impegnativi.
Ciao
Alex.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Alex.
Interessante.
Grazie.


 ha scritto nel messaggio
news:8eaaa5ac704274e431...@mygate.mailgate.org...


 
La mia era una considerazione sulla metodologia, non sul criterio.
Ritengo che come ti è stato suggerito vada bene, anche perchè non 
credo tu stia trattando 100.000 records.....!
Alessandro.
