Visualizzazione dei risultati da 1 a 9 su 9

Discussione: [VB6] Valori min e max

  1. #1

    VB6 valori min e max

    il mio programma è stato creato con VB6 e preleva dei valori minimi e massimi da un DB Access e li visualizzo su un datagrid.

    code...
    select.... MIN(Tbl_Running.Speed) AS Min_Speed,
    MAX(Tbl_Running.Speed) AS Max_Speed FROM Tbl_Running


    i risultati non vengono visualizzati come dovrebbero, alcuni valori massimi vengono visualizzati nella colonna dei valori minimi e viceversa

    ESEMPIO VISUALIZZAZIONE DATAGRID

    Min_Speed Max_Speed
    14,96 4,0
    11,69 18,94
    10,77 14,10
    17,94 8,476

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    117

    Re: VB6 valori min e max

    Originariamente inviato da Massimo Moretti
    il mio programma è stato creato con VB6 e preleva dei valori minimi e massimi da un DB Access e li visualizzo su un datagrid.
    Ciao, forse nella Query vi sono altri parametri, perchè MIN e MAX, da soli, prelevano IL valore minimo e massimo: un record.

  3. #3
    In effetti la Qry era abbastanza complessa, ho cercato di sintetizzare.
    L'Istruzione SQL che si trova all'interno di un Data Environment è la seguente:

    SELECT Tbl_Running.Runner, Tbl_Running.Scarpa, SUM(Tbl_Running.Km) AS Km, LEFT(AVG(Tbl_Running.Speed), 5) AS Speed, LEFT(`Ant_Time_Km`, 4) AS Time_Km, MIN(Tbl_Running.Speed) AS Min_Speed, MAX(Tbl_Running.Speed) AS Max_Speed, SUM(Fix(Tbl_Running.Peso * Tbl_Running.Km * 0.9)) AS KCAL, SUM(Fix(Tbl_Running.Peso * Tbl_Running.Km / 20)) AS Grammi_Grassi, 60 / AVG(Tbl_Running.Speed) AS T_Km, LEFT(`T_Km`, 4) AS Espr1, RIGHT(`Espr1`, 2) AS Espr2, IIf(`Espr2` = `Espr1`, 0, `Espr2` * 6) AS Espr3, IIf(Len(`Espr3`) = 2, 0 & `Espr3`, IIf(Len(`Espr3`) = 1, `Espr3` & 0, `Espr3`)) AS Espr4, LEFT(`Espr4`, 2) AS Espr5, `Espr2` * `Espr2` AS Espr6, IIf(`Espr2` = `Espr1`, LEFT(`Espr1`, 2) & ", " & `Espr5`, IIf(`Espr2` + `Espr3` + `Espr4` = 0, LEFT(`T_Km`, 2) & `Espr5`, IIf(`Espr6` < 1, LEFT(`Espr1`, 2) & ", " & `Espr5`, LEFT(`T_Km`, 2) & `Espr5`))) AS Ant_Time_Km, LEFT(AVG(Tbl_Running.FC_Arrivo), 6) AS FC_Arrivo, COUNT(Tbl_Running.ID) AS Conteggio

    FROM Tbl_Running WHERE Tbl_Running.Scarpa <> "NULL" GROUP BY Tbl_Running.Runner, Tbl_Running.Scarpa;

    Non lamento dei risultati perchè tutti i dati che voglio ottenere sono corretti, tranne i valori Min e Max che... alcune volte sono errati, vedi allegato, ciao.
    Immagini allegate Immagini allegate

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    117
    Originariamente inviato da Massimo Moretti
    Non lamento dei risultati perchè tutti i dati che voglio ottenere sono corretti, tranne i valori Min e Max che... alcune volte sono errati, vedi allegato, ciao.
    Ciao, ho provato la tua query e fornisce dati scorretti soltanto se i campi con MIN e MAX non sono definiti numerici a Precisione doppia, ma naturalmente ho simulato la query originale, quindi potri non avere capito nulla......

  5. #5
    Come posso definire dei campi numerici a precisione doppia utilizzando VB6 senza modificare il DB di Access che ormai è stato distribuito su varie macchine.

    In attesa ti ringrazio e ti auguro una buona giornata, ciao

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    117
    Originariamente inviato da Massimo Moretti
    Come posso definire dei campi numerici a precisione doppia utilizzando VB6 senza modificare il DB di Access che ormai è stato distribuito su varie macchine.

    Non è bellissimo, da dovrebbe funzionare:

    MIN(Format(Tbl_Running.Speed,'0,00')) AS Min_Speed, MAX(format(Tbl_Running.Speed,'0,00')) AS Max_Speed

    Se ti serve un progettino di allineamento DB a nuovi tracciati, avverti !!

    Ciao

  7. #7
    Funziona....ma visualizzo solamente il numero intero, mentre avrei bisogno di visualizzare anche i decimali, almeno uno, come potrei fare?

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    117
    Originariamente inviato da Massimo Moretti
    Funziona....ma visualizzo solamente il numero intero, mentre avrei bisogno di visualizzare anche i decimali, almeno uno, come potrei fare?
    Ciao, se vuoi i decimali:
    MIN(Format(Tbl_Running.Speed,'0,00')) AS Min_Speed, MAX(format(Tbl_Running.Speed,'0,00')) AS Max_Speed

    cioè, il punto anzichè la virgola...

  9. #9
    Ciao, impostando...
    MIN(Format(Tbl_Running.Speed,'0.00')) AS Min_Speed, MAX(format(Tbl_Running.Speed,'0.00')) AS Max_Speed
    si visualizzano i 2 decimali, ma si è ferificato nuovamente l'errore di visualizzazione, allora ho provato con...
    MIN(Format(Tbl_Running.Speed,'00.00')) AS Min_Speed, MAX(format(Tbl_Running.Speed,'00.00')) AS Max_Speed
    ...e tutto funziona come volevo.

    Ti ringrazio per l'aiuto e ti auguro una buona giornata

    Massimo Moretti

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.