Discussione:
Aiuto modifica modulo per trasformare secondi in ore e min
(troppo vecchio per rispondere)
Bruno-S95
2004-07-10 17:49:51 UTC
Permalink
Per Access 97.

Ciao a tutti.

Sto utilizzando il seguente modulo per trasformare i secondi in ore e minuti
con formato "hh.nn". Questo modulo,con qualche correzione, sono riuscito a
farlo lavorare anche con valori negativi, ma nel caso vi sia un valore
negativo per le ore e i minuti, il valore appare formattato nel seguente
modo: -hh.-nn ( esempio -02.-30), mentre vorrei farlo apparire così: -02.30.

Potete aiutarmi a correggere il modulo visto che io ho provato senza
riuscirci, anche per la poca conoscenza di VBA.

Mille grazie

Bruno

______________________________________________________________________


Option Compare Database
Option Explicit

'Questa Funzione converte i secondi nel formato hh.mm.ss
Public Function ConvertiBis(numSecondi As Long) As String
Dim Ore, Minuti, Secondi As Byte
Dim strOre, strMinuti, strSecondi As String
Dim Orario As String

Ore = 0
Minuti = 0
Secondi = 0
strOre = "00"
strMinuti = "00"
strSecondi = "00"

'If numSecondi > 86400 Then
'Converti = "più di un giorno"
'Exit Function
'End If

If numSecondi > 3599 Then
Ore = numSecondi \ 3600
strOre = Format(Ore, "00")
numSecondi = numSecondi - (3600 * Ore)
ElseIf numSecondi < 3599 Then
Ore = numSecondi \ 3600
strOre = Format(Ore, "00")
numSecondi = numSecondi - (3600 * Ore)
End If


If numSecondi > 59 Then
Minuti = numSecondi \ 60
strMinuti = Format(Minuti, "00")
numSecondi = numSecondi - (60 * Minuti)
ElseIf numSecondi < 59 Then
Minuti = numSecondi \ 60
strMinuti = Format(Minuti, "00")
numSecondi = numSecondi - (60 * Minuti)
End If


If numSecondi > 0 Then
Secondi = numSecondi
strSecondi = Format(Secondi, "00")
ElseIf numSecondi < 0 Then
Secondi = numSecondi
strSecondi = Abs(Format(Secondi, "00"))
End If

ConvertiBis = strOre & "." & strMinuti '& "." & strSecondi
End Function
Valerio Valentini
2004-07-12 01:55:37 UTC
Permalink
Post by Bruno-S95
Per Access 97.
Ciao a tutti.
Sto utilizzando il seguente modulo per trasformare i secondi in ore e minuti
con formato "hh.nn". Questo modulo,con qualche correzione, sono riuscito a
farlo lavorare anche con valori negativi, ma nel caso vi sia un valore
negativo per le ore e i minuti, il valore appare formattato nel seguente
modo: -hh.-nn ( esempio -02.-30), mentre vorrei farlo apparire
così: -02.30.
Post by Bruno-S95
Potete aiutarmi a correggere il modulo visto che io ho provato senza
riuscirci, anche per la poca conoscenza di VBA.
Mille grazie
Bruno
______________________________________________________________________
Option Compare Database
Option Explicit
'Questa Funzione converte i secondi nel formato hh.mm.ss
Public Function ConvertiBis(numSecondi As Long) As String
Dim Ore, Minuti, Secondi As Byte
Dim strOre, strMinuti, strSecondi As String
Dim Orario As String
Ore = 0
Minuti = 0
Secondi = 0
strOre = "00"
strMinuti = "00"
strSecondi = "00"
'If numSecondi > 86400 Then
'Converti = "più di un giorno"
'Exit Function
'End If
If numSecondi > 3599 Then
Ore = numSecondi \ 3600
strOre = Format(Ore, "00")
numSecondi = numSecondi - (3600 * Ore)
ElseIf numSecondi < 3599 Then
Ore = numSecondi \ 3600
strOre = Format(Ore, "00")
numSecondi = numSecondi - (3600 * Ore)
End If
If numSecondi > 59 Then
Minuti = numSecondi \ 60
strMinuti = Format(Minuti, "00")
numSecondi = numSecondi - (60 * Minuti)
ElseIf numSecondi < 59 Then
Minuti = numSecondi \ 60
strMinuti = Format(Minuti, "00")
numSecondi = numSecondi - (60 * Minuti)
End If
If numSecondi > 0 Then
Secondi = numSecondi
strSecondi = Format(Secondi, "00")
ElseIf numSecondi < 0 Then
Secondi = numSecondi
strSecondi = Abs(Format(Secondi, "00"))
End If
ConvertiBis = strOre & "." & strMinuti '& "." & strSecondi
End Function
Visto che utilizzi una stringa potresti fare una cosa tipo se strMinuti e
strSecondi sono minori di 0 le moltiplichi per -1

If Eval(strMinuti) < 0 Then
strMinuti = strMinuti * -1
End If

Ciao Valerio.
Bruno-S95
2004-07-12 11:07:41 UTC
Permalink
Post by Bruno-S95
Post by Bruno-S95
Per Access 97.
Ciao a tutti.
Sto utilizzando il seguente modulo per trasformare i secondi in ore e
minuti
Post by Bruno-S95
con formato "hh.nn". Questo modulo,con qualche correzione, sono riuscito a
farlo lavorare anche con valori negativi, ma nel caso vi sia un valore
negativo per le ore e i minuti, il valore appare formattato nel seguente
modo: -hh.-nn ( esempio -02.-30), mentre vorrei farlo apparire
così: -02.30.
Post by Bruno-S95
Potete aiutarmi a correggere il modulo visto che io ho provato senza
riuscirci, anche per la poca conoscenza di VBA.
Mille grazie
Bruno
______________________________________________________________________
Option Compare Database
Option Explicit
'Questa Funzione converte i secondi nel formato hh.mm.ss
Public Function ConvertiBis(numSecondi As Long) As String
Dim Ore, Minuti, Secondi As Byte
Dim strOre, strMinuti, strSecondi As String
Dim Orario As String
Ore = 0
Minuti = 0
Secondi = 0
strOre = "00"
strMinuti = "00"
strSecondi = "00"
'If numSecondi > 86400 Then
'Converti = "più di un giorno"
'Exit Function
'End If
If numSecondi > 3599 Then
Ore = numSecondi \ 3600
strOre = Format(Ore, "00")
numSecondi = numSecondi - (3600 * Ore)
ElseIf numSecondi < 3599 Then
Ore = numSecondi \ 3600
strOre = Format(Ore, "00")
numSecondi = numSecondi - (3600 * Ore)
End If
If numSecondi > 59 Then
Minuti = numSecondi \ 60
strMinuti = Format(Minuti, "00")
numSecondi = numSecondi - (60 * Minuti)
ElseIf numSecondi < 59 Then
Minuti = numSecondi \ 60
strMinuti = Format(Minuti, "00")
numSecondi = numSecondi - (60 * Minuti)
End If
If numSecondi > 0 Then
Secondi = numSecondi
strSecondi = Format(Secondi, "00")
ElseIf numSecondi < 0 Then
Secondi = numSecondi
strSecondi = Abs(Format(Secondi, "00"))
End If
ConvertiBis = strOre & "." & strMinuti '& "." & strSecondi
End Function
Visto che utilizzi una stringa potresti fare una cosa tipo se strMinuti e
strSecondi sono minori di 0 le moltiplichi per -1
If Eval(strMinuti) < 0 Then
strMinuti = strMinuti * -1
End If
Ciao Valerio.
__________________


Ciao Valerio,

ho provato a inserire la stringa che mi hai passato, senza
conseguire alcun risultato.
Probabilmente no l'ho inserita nel punto giusto. per provarla ho
fatto una semplice maschera con due controlli non associati
con nome A e B. In A ho messo i secondi e in B li avrebbe dovuto trasformare
con il modulo.
Per cortesia, se non chiedo troppo puoi correggere il modulo che ho
postato e provarlo, perché non riesco a cavarne nulla.

Mille grazie
Bruno

Loading...