luizgs
|
CURITBA PR - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 26/11/2010 12:55 hs
boa tarde, estou tendo uma dificuldade em pegar a soma de horas de um msflexgrid, configurei o campo na tabela do access como data/hora(hora normal),estou usando o seguinte código, alguem sabe como posso resolver isso: Private Sub cmdSomar_Click() Dim soma As Variant Dim i As Integer For i = 1 To Me.MSFlexGrid1.Rows - 1 soma = soma + Me.MSFlexGrid1.TextMatrix(i, 2) Next i
total.Text = soma End Sub Fazendo teste com horas que somadas sao menores que 24 funciona bem, quando ultrapassa 24 horas a soma, ele nao consegue. Desde ja agradeço muito Luiz
|
TÓPICO EDITADO
|
|
|
|
|
|
Postada em 29/11/2010 14:27 hs
Oi luizgs como vc ta preenchendo no grid o Me.MSFlexGrid1.TextMatrix(i, 2) ? as horas ou a data com hora?
|
|
|
luizgs
|
CURITBA PR - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 30/11/2010 01:31 hs
Boa noite Juan, eu preencho com o formato de horas.
att
luiz
|
|
|
|
Postada em 30/11/2010 11:29 hs
blz, nao entendi isso: Fazendo teste com horas que somadas sao menores que 24 funciona bem, quando ultrapassa 24 horas a soma, ele nao consegue.
|
|
|
luizgs
|
CURITBA PR - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 01/12/2010 08:46 hs
bom dia Juan Carlos, muito obrigado pela atenção, ja consegui resolver o problema, consegui esse codigo com o colega Marcelo-Treze. Private Sub cmdsomar_Click() Dim I As Integer Dim TotalMinutos As Integer Dim HM() As String Dim SomaHoras As String
' primeiro convertemos tudo para minutos para efetuarmos uma soma correta
With MSFlexGrid2 TotalMinutos = 0 For I = 1 To MSFlexGrid2.Rows - 1 HM = Split(MSFlexGrid2.TextMatrix(I, 4), ":") TotalMinutos = TotalMinutos + (CInt(HM(0) * 60) + CInt(HM(1))) Next I End With ' Agora vem a parte que retorna em horas e minutos
Dim Hrs As Integer Dim Min As Integer
Min = TotalMinutos Mod 60 ' retorna o resto de total de minutos dividido por 60 Hrs = (TotalMinutos - Minutos) / 60
SomaHoras = Hrs & ":" & Format(Min, "00")
TOTAL.Text = SomaHoras End Sub Att Luiz
|
TÓPICO EDITADO
|
|
|
|