ChicoVieira
não registrado
|
|
Postada em 03/05/2004 21:59 hs
Galera, tudo em cima? Seguinte, qual o meio de restringir a entrada de dados por uma inputbox? Numa textbox, é fácil criar restrições a números, letras ou qualquer outra coisa. Preciso que entre numa inputbox somente datas, no formato dd/mm/aaaa. Experimentei 'If Val(imptval)=0 then msgbox"Você não digitou números...". Contudo, se eu digitar 24aaaaaaa, o sistema reconhecerá os números iniciais e assumirá tudo que estiver na input. Tks for your colaboration.
|
|
|
|
THECRAZY
|
BRASÍLIA DF - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 04/05/2004 11:06 hs
Olá ! O único jeito de fazer isto, é colocar o valor digitado na InputBox em uma variavel e depois verificar o valor desta variável, não tem como se verificar direto na InputBOx. Exemplo : Valor = inputbox("Digite um número : ") If not IsNumeric(valor) then msgbox "O valor não é numérico !" else msgbox "O valor é numérico !" end if
Eu sou o alfa e o ômega, o princípio e o fim, diz o Senhor, que é, e que era, e que há de vir, o Todo Poderoso. (Ap 1.8)
|
|
|
|
Postada em 04/05/2004 11:19 hs
ou melhor dizendo Private Sub Form_Load() Dim data As String data = InputBox("digite a data") If IsDate(data) Then MsgBox "data" Else MsgBox "nao data" End If End Sub
|
|
|
|
Postada em 05/05/2004 03:41 hs
Pode fazer assim Fiz uma função que verifica se a data está correta, testando se o mes é de 31 ou 30 se o ano é bissexto, o mes de fevereiro. Dependendo do que vc quer terá que fazer algumas alterações pq eu pegava os dados de uma MaskEdBox, vc já está pegando do InputBox, fica a seu critério. Espero ter ajudado Public Function VerificaData(Maskara As MaskEdBox) Dim Data As String Dim dia As String Dim Mes As String Dim Ano As String Dim VerificaAno As String Dim fevereiro As Integer Data = Maskara.FormattedText dia = Mid(Data, 1, 2) Mes = Mid(Data, 4, 2) Ano = Mid(Data, 7, 4) 'Verificando os meses que podem ter até o dia 31 If (Mes = 1) Or (Mes = 3) Or (Mes = 5) Or (Mes = 7) Or (Mes = 8) Or (Mes = 10) Or (Mes = 12) Then If (dia < 1) Or (dia > 31) Then MsgBox ("Data do Orçamento Inválida => Dia Inválido"), vbCritical, "Controle de Estoque" Maskara.SetFocus Exit Function End If End If 'Verificando o mes de fevereiro If (Mes = 2) Then If (dia > 30) Then MsgBox ("Data do Orçamento Inválida => Mês de Fevereiro é Até o Dia 29"), vbCritical, "Controle de Estoque" Maskara.SetFocus Exit Function End If fevereiro = Ano Mod 4 If (fevereiro <> 0) And (dia = 29) Then MsgBox ("Data do Orçamento Inválida => Dia Inválido o Mês é Fevereiro e o Ano Não é Bissexto"), vbCritical, "Controle de Estoque" Maskara.SetFocus Exit Function End If End If
'Verificar os meses que não podem ter dia até 31 e sim até 30 If (Mes = 2) Or (Mes = 4) Or (Mes = 6) Or (Mes = 9) Or (Mes = 11) Then If (dia < 1) Or (dia > 30) Then MsgBox ("Data do Orçamento Inválida => Dia Inválido o Mês é Só Até o Dia 30"), vbCritical, "Controle de Estoque" Maskara.SetFocus Exit Function End If End If 'Verificar os meses 1 A 12 If (Mes < 1) Or (Mes > 12) Then MsgBox ("Data do Orçamento Inválida => Mês Invalido"), vbCritical, "Controle de Estoque" Maskara.SetFocus Exit Function End If 'Verificar se o ano é menor que o ano corrente VerificaAno = Mid(Date, 7, 4) If (Ano < VerificaAno) Then MsgBox ("Data do Orçamento Inválida => Ano Inválido "), vbCritical, "Controle de Estoque" Maskara.SetFocus Exit Function End If
Private Sub Form_Load() Dim Data As MaskEdBox data=InputBox("Digite a Data") Call VerificaData(MaskData) 'Se a data estiver incorreta exibira uma mensagem
|
|
|
chicovieira
não registrado
|
|
ENUNCIADA !
|
|
|
Postada em 05/05/2004 10:03 hs
Agradeço imensamente aos colegas que, como sempre, tentam ajudar a quem precisa. Utilizei ontem à noite a dica do ACG e, depois de quebrar a cabeça um pouco, consegui exatamente o que eu queria: uma inputbox que rejeitasse qualquer caracter (letra ou número) que não estivesse combinado no formato dd/mm/aaaa. O código é o seguinte: Private Sub mnuDatar_Click() On Error Resume Next Dim R As String, T As String R = MsgBox("Deseja registrar outra data para" _ & Chr(13) & "o rodapé do demonstrativo?", _ vbYesNo + vbDefaultButton2, " A data padrão é a de hoje") If R = vbNo Then Label57.Caption = Format(Date, "dd/mm/yyyy, dddd") Exit Sub Else T = InputBox("Entre com a data do demonstrativo, no" _ & Chr(13) & "formato dd/mm/aaaa. Exemplo: 17/12/2002") If (Len(T) = 0) Then Exit Sub While Not IsDate(T) 'Se não for uma data válida,é executado um loop até que a condição seja satisfeita.Se, contudo, o usuário teclar <OK> ou <Enter> sem nada 'digitar na inputbox, a ação é cancelada. MsgBox "Você digitou " & T & " ..." & Chr(13) & "Tente novamente ...", _ vbOKOnly, "Formato de data desconhecido" T = InputBox("Entre com a data do demonstrativo, no" & Chr(13) & "formato dd/mm/aaaa. Exemplo: 17/12/2002") If (Len(T) = 0) Then Exit Sub Wend T = Format(T, "dd/mm/yyyy, dddd") Label57.Caption = T MsgBox "Seu demonstrativo será datado" & Chr(13) & "de " & T & ".""" End If End Sub Todavia, como sou um estudioso incorrigível, vou estudar a dica que o Luiz Humberto mandou: sempre há algo a aprender em VB. Abraços.
|
|
|
Rob Turing
não registrado
|
|
Postada em 24/12/2024 16:26 hs
Se você está procurando uma experiência completa de apostas online, o https://favbetbr.com/ é a escolha perfeita! O site combina ótimas opções de apostas esportivas com jogos de cassino emocionantes. Além disso, é super fácil de usar e oferece promoções incríveis para novos usuários. Recomendo dar uma olhada!
|
|
|
|