Ciclo che estrae stringa per pagina

di il
2 risposte

Ciclo che estrae stringa per pagina

Buongiorno a tutti,

ho i seguenti dati:
id da_pg a_pg n_istanza_piu_recente flag_selezione
90979 1 2 V
90980 1 2 V
90981 1 2 V
90982 1 2 95705 V
90983 1 2 97223 V
90984 1 2 V
90985 1 2 109017 V
90986 1 2 V
90987 1 2 138056 S
90988 1 2 121992 V
90989 1 2 138056 S
90990 1 2 138056 S
90991 2 2 V
90992 2 2 138056 S
90993 2 2 138056 S
90994 2 2 V
90995 2 2 V
90996 2 2 V
90997 2 2 V
90998 2 2 V
90999 2 2 V
91000 2 2 V
91001 2 2 V
91002 2 2 V


ho bisogno di ricavare estrarre i dati divisi per pagina in orizzontale del flag selezione

pg 1: V V V V V V V V S V S S
pg 2: V S S V V V V V V V V V

ho scritto questo codice ma mi sto rompendo la testa da 2 ore e non ne esco:
Public Function ricava_flag_per_selezione_ideb()
On Error GoTo Err_ricava_flag_per_selezione_ideb
Dim rst
Dim pg_ciclo, id_ciclo As Integer
Dim variabile_testo_incolla As Variant
pg_ciclo = 1
id_ciclo = 0
Set rst = CurrentDb.OpenRecordset("s_controlli_contabili_dettagli_ideb_dati_estrazione", dbOpenSnapshot)

'Debug.Print rst.RecordCount
            
            With rst
            
            rst.MoveLast
            rst.MoveFirst
            Do While True
            'variabile_testo_incolla = "testo_incolla" & "_" & rst![da_pg]
                If .EOF Then
                Exit Do
                    Else
                    id_ciclo = id_ciclo + 1
                    If (rst![da_pg] <> pg_ciclo) Then
                    Debug.Print id_ciclo & ">" & variabile_testo_incolla & "<"
                    variabile_testo_incolla = Null
                    
                        Else
                        variabile_testo_incolla = variabile_testo_incolla & rst![flag_selezione]
                        'Debug.Print id_ciclo & ">" & variabile_testo_incolla & "<"
                    End If
                    
                    'Debug.Print variabile_testo_incolla & rst![da_pg] & ">" & rst![flag_selezione] & "<"
                    
                    'MsgBox rst![da_pg] & pg_ciclo
                    
                    pg_ciclo = rst![da_pg]
                    
               
                rst.MoveNext
                
                End If
                
             Loop
             
             rst.Close
            End With

Exit_ricava_flag_per_selezione_ideb:
    Exit Function

Err_ricava_flag_per_selezione_ideb:

'MsgBox Err.Number
    'MsgBox Err.Description

Resume Next
    
    

End Function
qualcuno riesce a darmi una mano, grazie mille

2 Risposte

  • Re: Ciclo che estrae stringa per pagina

    
    Public Function ricava_flag_per_selezione_ideb()
    Dim rst As DAO.Recordset
    Dim intPagina As Integer
    Dim strDatiPagina As String
        Set rst = CurrentDb.OpenRecordset("s_controlli_contabili_dettagli_ideb_dati_estrazione", dbOpenSnapshot)
        If rst.RecordCount > 0 Then
            intPagina = rst!da_pg
            strDatiPagina = "pg " & rst!da_pg & ":"
            Do While Not rst.EOF
                If rst!da_pg <> intPagina Then
                    Debug.Print strDatiPagina
                    strDatiPagina = "pg " & rst!da_pg & ": " & rst!flag_selezione
                    intPagina = rst!da_pg
                Else
                    strDatiPagina = strDatiPagina & " " & rst!flag_selezione
                End If
                rst.MoveNext
            Loop
            Debug.Print strDatiPagina
        End If
    End Function
    
  • Re: Ciclo che estrae stringa per pagina

    Domani lo provo, grazie mille

    Stifone ha scritto:


    
    Public Function ricava_flag_per_selezione_ideb()
    Dim rst As DAO.Recordset
    Dim intPagina As Integer
    Dim strDatiPagina As String
        Set rst = CurrentDb.OpenRecordset("s_controlli_contabili_dettagli_ideb_dati_estrazione", dbOpenSnapshot)
        If rst.RecordCount > 0 Then
            intPagina = rst!da_pg
            strDatiPagina = "pg " & rst!da_pg & ":"
            Do While Not rst.EOF
                If rst!da_pg <> intPagina Then
                    Debug.Print strDatiPagina
                    strDatiPagina = "pg " & rst!da_pg & ": " & rst!flag_selezione
                    intPagina = rst!da_pg
                Else
                    strDatiPagina = strDatiPagina & " " & rst!flag_selezione
                End If
                rst.MoveNext
            Loop
            Debug.Print strDatiPagina
        End If
    End Function
    
Devi accedere o registrarti per scrivere nel forum
2 risposte