VERIFICAR MES

MAICONLS 13/07/2005 12:42:29
#93899
Estou tentando verificar se o mês só tem 30 dias, e caso fosse digitado 31 ele me informaria com uma MsgBox, este é o codigo que estou tentando fazer mas me gera um error:

Private Sub txtnascimento_Change()

If Len(txtnascimento) = 2 Then
txtnascimento = txtnascimento & "/"
txtnascimento.SelStart = 4
End If
If Len(txtnascimento) = 5 Then
txtnascimento = txtnascimento & "/"
txtnascimento.SelStart = 7
End If
If Len(txtnascimento) = 8 Then
txtnascimento = Format(txtnascimento, "dd/mm/yyyy")
End If

Dim data
data = CDate(txtnascimento)
If Month(data) = 2 Or Month(data) = 4 Or Month(data) = 6 Or Month(data) = 9 Or Month(data) = 11 And Day(data) = 31 Then
MsgBox "O mês digitado não possui 31 dias", vbInformation, " Atenção!"
txtnascimento.Text = ""
txtnascimento.SetFocus
End If

End Sub
USUARIO.EXCLUIDOS 13/07/2005 12:54:11
#93900
tente com um select case
Select Case Month(Data)
Case 2, 4, 6, 9, 11
msgbox "mes invalido"
end select
não testei, mas deve resolver
USUARIO.EXCLUIDOS 13/07/2005 12:55:27
#93901
não esqueça de identar seus codigos [S50]
PAGANINI 13/07/2005 12:56:28
#93902
Faça

If not Isdate(TextBox.text) then
msgbox "Data inválida"
end if
USUARIO.EXCLUIDOS 13/07/2005 13:01:27
#93905
Ele dá erro porque se vc por exemplo coloca data como: 31/02/2005 e quando vc dá o comando de convercao CDate a data é inválida entao dá Type Mismatch...

é melhor vc usar as dicas dos colegas WILIAM E PAGANINI.
USUARIO.EXCLUIDOS 13/07/2005 13:04:44
#93907
complementando a do flavio, que claro, é a mais simples e eficaz.
if not isdate(format(textbox.tex,"dd/mm/yyyy"))
LCSD 13/07/2005 13:10:53
#93910
Wiliam

Pà'xa, o Novato Paganini tirou o Coelho da Cartola! Ah, ah, ah.......
[S98]
USUARIO.EXCLUIDOS 13/07/2005 13:20:28
#93917
KPPELLAJR
novato??
USUARIO.EXCLUIDOS 13/07/2005 13:21:05
#93918
E Complementando, direto recebo mensagens internas de usuários perguntando como validar hora, a função que o amigo FLAVIO PAGANINI postou, também serve para validar hora (15:30:15), data(10/07/2005), ou data hora ao mesmo tempo( 10/07/2005 15:30:15 )

If IsDate(TxtTempo) = False Then
Msgbox "Hora Inválida"
Else
Msgbox "Hora Correta"
End if

Até mais amigos...
USUARIO.EXCLUIDOS 13/07/2005 13:22:20
#93920
Novato não... é o flávio..... o velho flávio.... rsrsrsr
MAICONLS 13/07/2005 14:01:01
#93937
Interessante, mas não consegui entender como usar esta função junto ao meu código...Tipo, até coloquei ela mas ta me gerando uns resultados estranhos...Se digito 31/02/05...Por exemplo mes de Fevereiro com 31 dias ele me gera então..05/02/1931..Estranho..
Página 1 de 2 [15 registro(s)]
Tópico encerrado , respostas não são mais permitidas