USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Restringir dados
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
Pontos: 2843
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)
   
ACG1504
Pontos: 2843 Pontos: 2843
PATOS DE MINAS
MG - BRASIL
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
     
Luiz Humberto
GOIÂNIA
GO - BRASIL
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!
     
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página