Condividi tramite

Problemi estrazione dati con recordset

Anonimo
2023-01-20T14:39:54+00:00

Buongiorno.

La domada è banale ma ormai mi ci sono incasinato e non trovo la soluzione.

Ho un recordest proveniente da una query

i dati sono:

Data; OraInizio; OraFine.

Risultato

20/01/2022 10:20 11:20

20/01/2022 11:00 12:00

21/01/2022 10:20 11:20

Ho bisogno (tramite VBA) di avere i per ogni data i valori e poi passare alla data successiva.

In realtà i Valori sono 6 righe se ne ho solo 2 valide (prima data) allora il risultato delle altre sarebbe"NIL".

Alla fine dovre avere i valori:

20/01/2022 10:20 11:20

                 11:00  12:00

                  NIL                      

                  NIL                      

                  NIL 

                  NIL

21/01/2022 10:20 11:20

                  NIL                      

                  NIL                      

                  NIL 

                  NIL

                  NIL

Spero di essere stato abbastanza chiaro.

Grazie a chi mi può aiutare.

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

3 risposte

Ordina per: Più utili
  1. Anonimo
    2023-01-21T07:56:33+00:00

    Lunedì provo. Grazie mille. comenque no i dati vanno su una tabella di word.

    Grazie grazie grazie

    La risposta è stata utile?

    0 commenti Nessun commento
  2. domenico laurenza 9,900 Punti di reputazione Moderatore volontario
    2023-01-20T19:48:06+00:00

    Ciao ho abbozzato il seguente codice,

    prima di eseguirlo devi creare una tabella tbl_DataOut con la stessa struttura di quella in input (la tua query ) ma

    i campi delle ore devi cambiarli in testo breve per poterci scrivere Nil.

    Option Compare Database

    Option Explicit

    Function Genera()

    Dim RstIn As Recordset 
    
    Dim RstOut As Recordset 
    
    Dim Ctr As Integer 
    
    Dim Data As Date 
    
    Set RstIn = CurrentDb.OpenRecordset("Select \* From tbl\_DateIn Order by Data, OraInizio, OraFine") 
    
    If RstIn.RecordCount = 0 Then GoTo Esci 
    
    DoCmd.SetWarnings False 
    
    DoCmd.RunSQL "Delete \* From tbl\_DateOut" 
    
    DoCmd.RunSQL "INSERT INTO tbl\_DateOut ( Data, OraInizio, OraFine ) " & \_ 
    
                 "SELECT tbl\_DateIn.Data, tbl\_DateIn.OraInizio, tbl\_DateIn.OraFine FROM tbl\_DateIn" 
    
    Set RstOut = CurrentDb.OpenRecordset("Select \* From tbl\_DateOut") 
    
    Data = RstIn("Data") 
    
    Ctr = 1 
    
    RstIn.MoveNext 
    
    Do While Not RstIn.EOF 
    
       If RstIn("Data") = Data Then 
    
          Ctr = Ctr + 1 
    
          RstIn.MoveNext 
    
       Else 
    
          GoSub Genera\_Nil 
    
          Data = RstIn("Data") 
    
          Ctr = 0 
    
       End If 
    
    Loop 
    
    GoSub Genera\_Nil 
    

    Esci:

    Set RstIn = Nothing 
    
    Set RstOut = Nothing 
    
    Exit Function 
    

    Genera_Nil:

    Do While Not 6 - Ctr = 0 
    
       RstOut.AddNew 
    
       RstOut("Data") = Data 
    
       RstOut("OraInizio") = "Nil" 
    
       RstOut.Update 
    
    Ctr = Ctr + 1 
    
    Loop 
    
    Return 
    

    End Function

    Facci sapere

    Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento
  3. domenico laurenza 9,900 Punti di reputazione Moderatore volontario
    2023-01-20T18:43:49+00:00

    Ciao,

    dove mettiamo il risultato? in una tabella?

    Ciao Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento