Visualizzazione dei risultati da 1 a 8 su 8

Discussione: [Vb6] Access e Orari

  1. #1

    Vb6 , Access e Orari

    io ho un db access con una tabella cosi formata :



    codice:
    Codice:
    NUM_x	DTA_RIL	TME_RIL
    1	01-giu-12	0039
    1	01-giu-12	0042
    1	01-giu-12	0046
    1	01-giu-12	0049
    1	01-giu-12	2246
    1	01-giu-12	2252
    1	01-giu-12	2254
    1	01-giu-12	2257
    1	01-giu-12	1848
    1	01-giu-12	1852
    1	01-giu-12	1854
    1	01-giu-12	1908
    1	01-giu-12	1912
    1	01-giu-12	1916
    1	01-giu-12	1919
    1	01-giu-12	1921
    1	01-giu-12	1923
    1	01-giu-12	0952
    1	01-giu-12	0958
    1	01-giu-12	0851
    1	01-giu-12	1010
    1	01-giu-12	1014
    1	01-giu-12	1016
    1	01-giu-12	1028
    1	01-giu-12	1105
    1	01-giu-12	1114
    1	01-giu-12	1134
    1	01-giu-12	1135
    1	01-giu-12	1138
    1	01-giu-12	1144
    1	01-giu-12	1148
    1	01-giu-12	1155

    praticamente io vorrei prendere questi dati dal database, e stabilendo in una txt il range orario prendere i dati e creare un grafico.

    spiego meglio.

    io in una txt voglio impostare il range con il quale raggruppare i dati.

    se stabilisco 15 lui va a prendermi e raggrupparmi tutti gli 1 che passano ogni 15 minuti da mezzanotte alle 23.59

    e da li ci crea un grafico.

    come posso fare? in visual basic 6?

    per esempio con i dati sopra, se stabilisco dalla txt 30 minuti , nel grafico mi ritroverei : 0 dalle 00.00 alle 0030
    4 dalle 0031 alle 0100

    (i numeri che vedete sono in base 60 invece di base 100

    quindi il range arriva a 59 e deve passare a 100

    esempio

    alle 1059 se il range e' + 15 deve andare alle 1114! )


    e cosi via.

    come posso fare?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    758
    Eviterei di cercare di risolvere il problema via SQL perché la vedo dura, anche in considerazione del fatto che la data e l'ora sono in due campi distinti.

    Sicuramente esistono più approcci; io farei così:

    1- caricare tutto il recordset ordinato per data e ora in un vettore di tipo Date avendo cura di riunire in un solo valore data e ora (in pratica sarebbe DateTime);
    2- stabilire il limite superiore del primo intervallo; in pratica le ore 0 più i minuti specificati:
    3- con un ciclo scorrere il vettore contando gli elementi, fino a non superare questo limite o fino a fine vettore;
    4- memorizzare il conteggio;
    5- incrementare il limite di un uguale valore;
    6- ripetere dal punto 3.

    Per quanto riguarda la rappresentazione grafica... una cosa alla volta. Dipenderà comunque da cosa userai per tracciare il grafico.

    Segnalo ad un moderatore il crossposting

  3. #3
    perfetto! grazie !

    una domanda, come inserisco questi dati in un vettore, cioe' come ciclo i dati e li metto tutti dentro ad un vettore, cosi poi da inviare il totale ad un grafico per vedere l'andamento nel tempo?

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    758
    Quindi mi stai chiedendo come fare il passo n.1.
    Sei in grado di fare una query e creare un recordset con i dati che ti interessano? Se sì, mostra il codice relativo, anche per capire di che tipo di recordset si parla. Se no, non è una colpa, ma la vedo dura andare avanti.

  5. #5
    codice:
            Set gRscalcoliamo = New ADODB.Recordset
                         gsSQL = "SELECT * FROM  DATI" 
                    gRscalcoliamo.Open gsSQL, gCnDatabase
     
                     Do While gRscalcoliamo.EOF = False
    
    
     iconta = iconta + 1
      
      
             gRscalcoliamo.MoveNext
        
        Loop
       
         gRscalcoliamo.Close
    cosi ho un recordset con tutta la tabella , e in iconta ho il totale dei record.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    758
    Stai parlando della stessa cosa in due thread diversi.
    Ri-segnalo.

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Più che altro mi sembra a tutti gli effetti lo stesso identico problema di cui stai già discutendo in questa discussione su questo stesso forum.

    Una discussione basta e avanza.

    Chiudo questa.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  8. #8
    Originariamente inviato da Grumpy
    Segnalo ad un moderatore il crossposting
    una precisazione che potrebbe tornar utile anche ad altri: consideriamo crossposting solo discussioni uguali postate in sezioni diverse del nostro forum, quel che succede altrove non ci riguarda e d'altro canto sproniamo sempre le persone a cercare la soluzione ai quesiti anche per conto proprio mentre aspettano aiuto, percio' in quest'ottica ci puo' anche essere la stessa domanda in forum diversi

    piu' che altro visto il senso stesso dei forum (utenti di una comunita' che si aiutano l'un l'altro), sarebbe utile che chi apre le discussioni si desse la pena di postare anche la soluzione, una volta trovata

    scusate l'ot, buon proseguimento a tutti

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.