Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

dsq

Validar campo digitado

Recommended Posts

Boa tarde,Preciso de uma ajuda,preciso validar um campopreciso verificar se o valor digitado para o usuário é igual a um dos estados abaixo.strUF = "AC|AL|AM|AP|BA|CE|DF|ES|GO|MA|MG|MS|MT|PA|PB|PE|PI|PR|RJ|RN|RO|RR|RS|SC|SE|SP|TO|"caso não for... o basico!!! retorna uma msg!!abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Há duas opções de serem feitas:- Carregue todos as UF's em uma ComboBox, sendo assim o usuário não irá digitar errado. - Utilize um TextBox, acredito que deve ser como esteja utilizando atualmente, no evento Lost Focus, verifique o que foi digitado pelo usuário, a função Instr é ideal neste caso.Apenas uma consideração, crie uma tabela contendo as UF's, não coloque fixo no código, tudo bem que é algo que provavelmente não sofrerá alterações, se porventura muda, terá que alterar no código, compilar novamente o produto e etc..., sendo que é muito mais fácil e prático acrescentar no BD.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Luiz, Muito obrigado pela atenção.Na verdade, não costumo mexer em VB, e não posso utilizar um combo... devido algumas exigencias da empresa, e tbm não poderei mexer no banco!!!a parte do textbox... como poderia fazer a validação, tria que quebrar as informaçoes, pois ela está em uma variavel:strUF = "AC|AL|AM|AP|BA|CE|DF|ES|GO|MA|MG|MS|MT|PA|PB|PE|PI|PR|RJ|RN|RO|RR|RS|SC|SE|SP|TO|"e precisaria verificar o que ele digitou comparando ao que tenho nesta variavel... não sei como poderia fazer isso!

Compartilhar este post


Link para o post
Compartilhar em outros sites

estava pensando mais ou menos assim:Private Sub txtUFAdm_LostFocus() Dim strUF As String Dim x As Long strUF = "AC|AL|AM|AP|BA|CE|DF|ES|GO|MA|MG|MS|MT|PA|PB|PE|PI|PR|RJ|RN|RO|RR|RS|SC|SE|SP|TO|" 'Valida a UF For x = 1 To Len(strUF) ..... NextEnd Submas não sei como colocaria a consulta!! como poderia colocar um if... para verificar o valor digitado!

Compartilhar este post


Link para o post
Compartilhar em outros sites
dsq, apesar de existir o modo mais fácil, já mencionado em resposta, pode ser utilizado com a propriedade da combo STYLE 0'Ao perder o focus do campo chama a rotina okUF e verifica a sequencia.Private Sub cboEST_LostFocus()   cboEST.Text = UCase(cboEST.Text)   If okUF(cboEST.Text) = 0 Then      MsgBox "Estado inválido", vbExclamation, UCase(cboEST.Text)      cboEST.SetFocus      Exit Sub   End IfEnd SubPrivate Function okUF(nTexto) As String    If nTexto = "AC" Or nTexto = "AL" Or nTexto = "AM" Or nTexto = "AP" Or _      nTexto = "BA" Or nTexto = "CE" Or nTexto = "DF" Or nTexto = "ES" Or _      nTexto = "GO" Or nTexto = "MA" Or nTexto = "MG" Or nTexto = "MS" Or _       nTexto = "MT" Or nTexto = "PA" Or nTexto = "PB" Or nTexto = "PE" Or _       nTexto = "PI" Or nTexto = "PR" Or nTexto = "RJ" Or nTexto = "RN" Or _       nTexto = "RO" Or nTexto = "RR" Or nTexto = "RS" Or nTexto = "SC" Or _       nTexto = "SE" Or nTexto = "SP" Or nTexto = "TO" Or nTexto = "" Then       okUF = 1    Else       okUF = 0    End IfEnd Function

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro jattobá,Acabei utilizando uma outra forma, se for de seu interesse:Private Sub txtUFAdm_LostFocus() Dim strUF As String strUF = "|AC|AL|AM|AP|BA|CE|DF|ES|GO|MA|MG|MS|MT|PA|PB|PE|PI|PR|RJ|RN|RO|RR|RS|SC|SE|SP|TO|" txtUFAdm.Text = UCase(txtUFAdm.Text) If InStr(1, strUF, "|" & txtUFAdm.Text & "|") < 1 Then MsgBox "Unidade Federal Inválida", vbInformation, mdiPrincipal.Caption txtUFAdm = "" txtUFAdm.SetFocus End If txtUFAdm = fcReplace(txtUFAdm, "'", "")End SubObrigado pela atenção

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.