+ Rispondi al Thread
Pagina 2 di 3 primaprima 123 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 24

Discussione: Popolare singola riga di una flexgrid

  1. #11
    L'avatar di Brontolo
    Brontolo non è in linea Very Important Person
    Post
    2,851
    Quote Originariamente inviato da pierovb Visualizza il messaggio
    dopo aver riletto con attenzione il tuo primo post, ho capito dove sbagliavo.
    Forse è meglio se rileggi anche l'altro post. Il #8.
    La soluzione che hai adottato non è logica.
    Il regolamento del forum: la prima cosa da leggere.

  2. #12
    pierovb non è in linea Scolaretto
    Luogo
    Reggio Calabria
    Post
    276
    Forse è meglio se rileggi anche l'altro post. Il #8.
    La soluzione che hai adottato non è logica.
    Da subito ho provato con la soluzione proposta da te nel post #8.
    Però la soluzione che poi ho adottato, certamente non logica, sarà per la mia forma mentale,
    mi riesce più soddisfacente.

  3. #13
    L'avatar di Brontolo
    Brontolo non è in linea Very Important Person
    Post
    2,851
    contento te ...
    Il regolamento del forum: la prima cosa da leggere.

  4. #14
    pierovb non è in linea Scolaretto
    Luogo
    Reggio Calabria
    Post
    276
    No non sono contento.
    Per ora mi accontento della soluzione che ho trovato, metto a riposo un po' il cervello che ho spremuto in questi giorni
    e poi cercherò di attuare quanto suggerito nel post #8.
    Sicuramente il tutto funzionerà meglio.

  5. #15
    pierovb non è in linea Scolaretto
    Luogo
    Reggio Calabria
    Post
    276
    L'errore di fondo sta nel fatto che la query devi eseguirla una sola volta e non all'interno di un ciclo. Quindi il ciclo con z non serve a niente.
    Una volta ottenuto il recordset scorrine i record e, per ogni record, incrementa l'indice di riga e determina la colonna sulla base della data.
    sto provando a metterne in pratica il suggerimento del post #8.

    Elimino il ciclo con z
    Eseguo la query inserendo la data inizio mese [01/08/2019] e la data fine mese [31/08/2019]

    scorro i record con While Not rs.EOF..........Wend


    a questo punto vado nel pallone
    Come faccio : per ogni record a determinare la colonna in base alla data ?

  6. #16
    L'avatar di Brontolo
    Brontolo non è in linea Very Important Person
    Post
    2,851
    Se non sbaglio il primo giorno del mese è a colonna 2, quindi basta prendere il giorno dalla data e sommare 2 (più o meno, non mi ricordo se la prima colonna ha indice 0 o 1).
    Il regolamento del forum: la prima cosa da leggere.

  7. #17
    pierovb non è in linea Scolaretto
    Luogo
    Reggio Calabria
    Post
    276
    Il 1 giorno del mese è riga 2 colonna 3.

    quindi basta prendere il giorno dalla data e sommare 2
    Scusami ma non riesco a capire come e dove fare quello che suggerisci.

  8. #18
    pierovb non è in linea Scolaretto
    Luogo
    Reggio Calabria
    Post
    276
    Ho interpretato il tuo suggerimento in questo modo è sembra funzionare perfettamente.
    codice:
    With MSFlexGrid1
       
       
             sSQL = "SELECT Data,Turno FROM Turni WHERE Data BETWEEN #" & Format(Text1.Text, "mm/dd/yyyy") & "# AND #" & Format(Text2.Text, "mm/dd/yyyy") & "#"
             sSQL = sSQL & " AND Badge=" & Val(.TextMatrix(2, 2))
             sSQL = sSQL & " Order By Data"
             Set rs = cn.Execute(sSQL)
       
       While Not rs.EOF
       
             .TextMatrix(2, Day(rs!Data) + 2) = rs!Turno
             
              rs.MoveNext
       Wend
            
      
    End With
    
    rs.Close: Set rs = Nothing
    Come da te suggerito le date sono [semplicemente] inizio e fine mese !

    E' questo che intendevi ?
    E' tutto molto semplice e veloce.
    Spesso noi novellini abbiamo la capacità di complicare tutto in maniera incredibile.
    Grazie

  9. #19
    L'avatar di Brontolo
    Brontolo non è in linea Very Important Person
    Post
    2,851
    Sì, ovviamente devi incrementare l indice della riga, altrimenti ti riempirà sempre la riga 2.
    Il regolamento del forum: la prima cosa da leggere.

  10. #20
    pierovb non è in linea Scolaretto
    Luogo
    Reggio Calabria
    Post
    276
    Certo, era solo un esempio per capire se riuscivo a mettere in pratica quello che mi dicevi.

    Ho inserito il tutto in un ciclo for next che incrementa sia il valore del Badge che l'indice delle righe

    codice:
    Dim z As Integer
    With MSFlexGrid1
       
       
       For z = 2 To .Rows - 3
             sSQL = "SELECT Data,Turno FROM Turni WHERE Data BETWEEN #" & Format(Text1.Text, "mm/dd/yyyy") & "# AND #" & Format(Text2.Text, "mm/dd/yyyy") & "#"
             sSQL = sSQL & " AND Badge=" & Val(.TextMatrix(z, 2))
             sSQL = sSQL & " Order By Data"
             Set rs = cn.Execute(sSQL)
       
       While Not rs.EOF
       
              .TextMatrix(z, Day(rs!Data) + 2) = rs!Turno
              rs.MoveNext
       
    Wend
            
      Next z
    End With
    
    rs.Close: Set rs = Nothing

    Funziona tutto.
    Ancora grazie

+ Rispondi al Thread
Pagina 2 di 3 primaprima 123 ultimoultimo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi