RUN-TIME ERROR 13 TYPE MISMATCH
Boa tarde galera,
Este erro deve ser comum, mais nao encontrei nos topicos assistidos.
Tenho uma aplicação em vb6 que gera um relatorio em excel. E nesta apclicação preciso corverte data e tempo.
O relatorio ja estefe fucinando normalmente. mas hj acomeçou a dar este erro.
Nesta Função:
Function CONVERT_TEMPO_SECS(tempo_total As String)
Dim d, h, h2, h3, m, m2, m3, S, s2, s3 As Integer
Dim tempo_total_as_date As Date
h3 = 0
m3 = 0
s3 = 0
d = 0
If InStr(1, tempo_total, [Ô]d[Ô]) Then
d = Mid(tempo_total, 1, InStr(1, tempo_total, [Ô]d[Ô]) - 1)
tempo_total = Mid(tempo_total, InStr(1, tempo_total, [Ô]d[Ô]) + 1)
End If
tempo_total_as_date = CDate(tempo_total)
N = Split(tempo_total_as_date, [Ô]:[Ô])
h = CInt(N(0)) <<<<<<------------------------------------------------- ERRROOOOOOOOOOOOOOOOOOOOO
m = CInt(N(1))
If InStr(1, N(2), [Ô]AM[Ô]) <> 0 Or InStr(1, N(2), [Ô]PM[Ô]) <> 0 Then
S = Mid(N(2), 1, 2)
Else
S = CInt(N(2))
End If
CONVERT_TEMPO_SECS = d * 86400 + h * 3600 + m * 60 + S
End Function
Este erro deve ser comum, mais nao encontrei nos topicos assistidos.
Tenho uma aplicação em vb6 que gera um relatorio em excel. E nesta apclicação preciso corverte data e tempo.
O relatorio ja estefe fucinando normalmente. mas hj acomeçou a dar este erro.
Nesta Função:
Function CONVERT_TEMPO_SECS(tempo_total As String)
Dim d, h, h2, h3, m, m2, m3, S, s2, s3 As Integer
Dim tempo_total_as_date As Date
h3 = 0
m3 = 0
s3 = 0
d = 0
If InStr(1, tempo_total, [Ô]d[Ô]) Then
d = Mid(tempo_total, 1, InStr(1, tempo_total, [Ô]d[Ô]) - 1)
tempo_total = Mid(tempo_total, InStr(1, tempo_total, [Ô]d[Ô]) + 1)
End If
tempo_total_as_date = CDate(tempo_total)
N = Split(tempo_total_as_date, [Ô]:[Ô])
h = CInt(N(0)) <<<<<<------------------------------------------------- ERRROOOOOOOOOOOOOOOOOOOOO
m = CInt(N(1))
If InStr(1, N(2), [Ô]AM[Ô]) <> 0 Or InStr(1, N(2), [Ô]PM[Ô]) <> 0 Then
S = Mid(N(2), 1, 2)
Else
S = CInt(N(2))
End If
CONVERT_TEMPO_SECS = d * 86400 + h * 3600 + m * 60 + S
End Function
Vai em Painel de Controle
Opções Regionais e de idioma
Personalizar
Data
e veja se a data esta como dd/mm/aaaa, se nao, coloque essa
Opções Regionais e de idioma
Personalizar
Data
e veja se a data esta como dd/mm/aaaa, se nao, coloque essa
Qual o valor de [Ô]tempo_total_as_date[Ô]?
N = Split(tempo_total_as_date, [Ô]:[Ô])
N = Split(tempo_total_as_date, [Ô]:[Ô])
Esta OK a data.
O valor que esta aparendo quando passo o debug é:
N = Split(tempo_total_as_date, [Ô]:[Ô]) ---> 12/05/1903
N = Split(tempo_total_as_date, [Ô]:[Ô]) ---> 12/05/1903
Você não está passando um valor válido para a função Split. para ela criar a matriz(vetor) é necessário que a data tenha hora, minutos e segundos... ou seja [Ô]12/05/1903 15:30:26[Ô]. Mesmo passando esse dado, iria dar erro na função, pois na hora de converter para int iria dar erro devido ao espaço no valor de n(0).
Se vc passar apenas o valor [Ô]15:30:26[Ô](hora) vai funcionar 100%!
Achei seu código confuso... Se eu entendi, acho que vc quer algo assim:
Veja se lhe ajuda
Se vc passar apenas o valor [Ô]15:30:26[Ô](hora) vai funcionar 100%!
Achei seu código confuso... Se eu entendi, acho que vc quer algo assim:
Private Function CONVERT_TEMPO_SECS(tempo_total As Date)
Dim d as integer
Dim h as integer
Dim m as integer
Dim s as integer
d = Day(tempo_total)
h = Hour(tempo_total)
m = Minute(tempo_total)
S = Second(tempo_total)
CONVERT_TEMPO_SECS = d * 86400 + h * 3600 + m * 60 + S
End Function
Veja se lhe ajuda
Citação:THIAGOPSANTOS escreveu:
O valor que esta aparendo quando passo o debug é:
N = Split(tempo_total_as_date, [Ô]:[Ô]) ---> 12/05/1903
O valor é uma DATA, existem dois problemas:
O SPLIT trata caracter
DATAS não são separadoas por [Ô]:[Ô]
Se você quer separar DIA,MES e ANO:
Wdia = day(data)
Wmes = month(data)
Wano = year(data)
Tópico encerrado , respostas não são mais permitidas