Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    1,171

    suddividere un periodo in varie label

    ho un database cosi composto
    dal---------------al------------
    01/01/74---------al 20/12/74
    21/12/74---------al 31/12/75
    ecc...

    in una maschera cosi dovrei inserire un periodo e mi dovrebbe riempiere varie label con i periodi divisi come la tabella.
    esempio inserisco questi valori:
    dal......20/04/74.....al 20/08/75

    e dovrebbe riempire queste label cosi;

    label1(1) 20/04/74....label1(2)..20/12/74
    label1(3)21/12/74.....label1(4)..20/08/75

    so gia in partenza che i dati dellla tabella sono 23

    che soluzione posso adottare?
    ho provato a leggere record per record e confrontare le date ma ho sbagliato qualcosaa.

  2. #2
    indica il linguaggio, pls

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    1,171
    hai ragione,
    sto utilizzando visual basic 6
    e il database è access

  4. #4
    se le label sono sempre a coppie (dal / al) e anche i record riportano i dati a coppie (dal / al) puoi ciclare il recorset così, ipotizzando che gli input si chiamino dataDal e dataAl

    codice:
    IDX=1
    Do While Not rs.Eof
       If dataDal>rs("dal") then
          label(idx)=dataDal
       Else
          label(idx)=rs("dal")
       End If
       If dataAl<rs("al") then
          label(idx+1)=dataAl
       Else
          label(idx+1)=rs("al")
       End If
       idx=idx+2
       rs.movenext
    Loop
    scritto al volo. NON testato

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    1,171
    ho provato cosi:
    DAL = dal1.Text
    AL = al1.Text

    Adodc1.RecordSource = "select * from percentuali"

    Adodc1.Refresh
    idx = 0
    Do While Not Adodc1.Recordset.EOF
    If dataDal > Adodc1.Recordset.Fields("dal") Then
    Label1(idx) = dataDal
    Else
    Label1(idx) = Adodc1.Recordset.Fields("dal")
    End If
    If dataAl < Adodc1.Recordset.Fields("al") Then
    Label1(idx + 1) = dataAl
    Else
    Label1(idx + 1) = Adodc1.Recordset.Fields("al")
    End If
    idx = idx + 2
    Adodc1.Recordset.MoveNext
    Loop

    ma con queste decorrenza dal 25/07/74 al 22/09/75
    il database è cosi:
    dal al
    01/01/1972 31/12/1973
    01/01/1974 16/05/1974
    17/05/1974 31/05/1975
    01/06/1975 31/12/1975
    01/01/1976 29/02/1980
    01/03/1980 30/06/1982
    01/07/1982 31/12/1982


    mi da questo risultato:
    25/07/74 31/12/73
    25/07/74 16/06/73
    25/07/74 31/06/75
    25/07/74 31/12/75

    il risultato doveva essere
    25/07/74 31/05/75
    01/06/75 22/09/75 e non la data finale 31/12/75

  6. #6
    ho dato per scontato che tu dal db leggessi SOLO il periodo indicato, mica tutto!

  7. #7
    e che quindi estraessi solo questi due records

    17/05/1974 31/05/1975
    01/06/1975 31/12/1975

  8. #8
    inoltre, i confronti vanno fatti in formato data, non testuali -- io ho indicato la logica, a te adattare la mia traccia

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    1,171
    nella query
    Adodc1.RecordSource = "select * from percentuali" & " where al between #" & datadal & "#" & " and #" & dataAL & "#"

    mi estrae i dati e funziona in parte perchè:
    provando con questi datei
    25/07/74 22/09/77

    mi scrive
    25/07/74 31/05/75
    25/07/74 31/12/75

    mi lascia fuori l'ultimo periodo
    e mi scrive solo 25/07/74 (la data iniziale e non l iniziale del record)

  10. #10
    fa' vedere come confronti le date

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.