Newsgroup: it.comp.appl.access
Titolo: Tempo / KM in una query

Ciao,
in una query :
dato un campo "Tempo" impostato a Numero Precisione doppia,
dove inserisco il Tempo impiegato per correre i km,
dato un campo "KM"  impostato a  a Numero ,
dove inserisco il numero dei km percorsi .
Come faccio ad avere nel campo KM/Min i minuti impiegati per percorrere un
Km ?????
Nell'esempio :
Tempo : 1,25
Km      :  21
KM/Min: ((Left([tempo];1)*60)+(Right([tempo];2)))/[KM]
mi resituisce 4,05
che non è esatto e che comunque vorrei visualizzare nel formato :
4.05
grazie !!!!!!!!!!!!!!!!

 ha scritto nel messaggio 
news:45542...@x-privat.org...

Cominciamo col dire che il tempo dovrebbe essere un valore data/ora e non 
numerico (hh.mm.ss).
Quindi km percorsi nell'unità di tempo oppure unità di tempo per Km. I due 
valori sono  entrambi desumibili.
L'unità di tempo è in base 60!
Se in un ora faccio 120 Km vuol dire che in ogni minuto percorro 2 Km.
Io farei così: cambio il tipo di dati nella tabella. Tempo diventa Data/Ora 
con formato "DataGenerica" maschera di input = 09.00.00;0;_
Il tempo da inserire sarebbe ore minuti secondi, per esempio 00.15.25
Il campo Km va bene in numerico Intero lungo.
Di seguito ti riporto tre funzioni dove, per comodità, ho considerato il 
solo valore minuti.
Vanno passate alle funzioni due variabili: T = tempo come lo abbiamo 
impostato e K = Km.
Public Function DimmiTKM(T As Date, K As Long) As Single
DimmiTKM = Minute(T) / K
End Function
Public Function DimmiKMMinuto(T As Date, K As Long) As Single
DimmiKMMinuto = K / Minute(T)
End Function
Public Function DimmiKMOra(T As Date, K As Long) As Single
DimmiKMOra = (K / Minute(T)) * 60
End Function
Le funzioni possono essere usate in una query come questa ipotizzando una 
tabella che si chiama TempiKm:
SELECT DimmiKMMinuto([Tempo],[KM]) AS KmMinuto, DimmiKMOra([Tempo],[KM]) AS 
KmOra, DimmiTKM([Tempo],[KM]) AS MinutiKm
FROM TempiKm;
Fammi sapere.
Ciao, Carlo 

 Ciao, Carlo
    Ciao,
penso di aver fatto come hai detto,
perņ nell'esempio :
tempo : 01.03.00
Km    :  21
KmMinuto dovrebbe essere 3, ma mi rrestituisce 7
dove sbaglio ????
ho fatto un piccolo db di prova, se vuoi vederlo :
http://scacchi64.altervista.org/Gare.mdb
grazie.


Non sbagli perchè in un minuto percorre 7 Km (21 / 3) , il calcolo è giusto.
Tieni presente che l'esempio che ti ho postato tiene conto solo dei minuti e 
non delle ore.
Ciao, Carlo 


    e se volessi farlo preciso..tenendo conto delle ore e dei secondi ????
    purtroppo di vba nn conosco nulla...puoi darmi una mano ?
    grazie in ogni caso !
    ciao !

 ha scritto nel messaggio 
news:45547e6b$2...@x-privat.org...

Se ho un attimo di tempo vedo cosa posso fare...il procedimento dovrebbe 
portare tutto a secondi...vedi intanto tu cosa puoi ricavarne.
Ciao, Carlo 

 ha scritto nel messaggio
news:ej1v6u$m18$1...@tdi.cu.mi.it...

    ok....ci lavoro nel week-end !
    ti faccio sapere lunedi !
    grazie !

    grazie !
Per Km al minuto e Km all'ora ci ho gią pensato io. Controlla se va bene.
Public Function DimmiKMMinuto(T As Date, K As Long) As Single
Dim H As Integer
Dim M As Integer
Dim s As Long
Dim SecTotali As Long
H = (Hour(T) * 60) * 60 'ottengo i secondi dalle ore
M = Minute(T) * 60 ' ottengo i secondi dai minuti
s = Second(T)
SecTotali = (H + M + s)
DimmiKMMinuto = (K / SecTotali) * 60
End Function
Public Function DimmiKMOra(T As Date, K As Long) As Single
Dim H As Integer
Dim M As Integer
Dim s As Long
Dim SecTotali As Long
H = (Hour(T) * 60) * 60 'ottengo i secondi dalle ore
M = Minute(T) * 60 ' ottengo i secondi dai minuti
s = Second(T)
SecTotali = (H + M + s)
DimmiKMOra = ((K / SecTotali) * 60) * 60
End Function
Ciao, Carlo 

Ti ringrazio immensamente x l'aiuto........
funziona alla perfezione !
grazie ancora !!!!!!
p.s.
mi hai illuminato : riducendo a secondi è possibile impostarlo anche in una
query
anche in questo *barbaro* modo :
1) dal tempo totale passo ai secondi
2) secondi / KM / 60 = ottengo il  numero dei minuti
3) secondi totali - (minuti *60) = secondi dispari
4) unisco i minuti e i secondi
esempio :
1) tempo : 1.31.14 ; secondi = 5474 ;
2) 5474 / 17 KM =  5
3) 5474 - (minui punto 2*60) = 22
4) 5.22
barbaro ma funziona !
grazie !