Ir para conteúdo
Fórum Script Brasil
  • 0

Variavel Nula ?


Bob Esponja

Pergunta

Olá pessoal! Estou com uma duvida no VB! Estou querendo trabalhar com uma condição, e está condição é a seguinte: uma variável estar vazia.

Estou tentando assim, mas ele não está obedecendo..... deve ter alguém erro, mas o engraçado é q a aplicação não me mostra nada.

Private Sub grava_info_Click()
Dim pvariavel
Dim svariavel
pvariavel = VF
svariavel = tempo
If IsNull(pvariavel) = True Or IsNull(svariavel) = True Then
 MsgBox "Você está esquecendo de calcular algum valor!", vbOKOnly, "ATENÇÃO!"
Else
 Form2.Show
End If
End Sub

Esse aí é o meu código, onde eu tenho duas variáveis globais: VF e tempo. Essas variáveis devem estar com informação para que o form2 venha a aparecer. Caso contrário, uma mensagem é exibida. Mas mesmo com essas variáveis vazias, ele mostra o form2. Sinal q ele interpreta as variáveis como estando vazias. huh.gif

Estou realmente encucado!! blink.gif

Se alguém puder me ajudar, posta aí.

Um abraço! wink.gif

Link para o comentário
Compartilhar em outros sites

16 respostass a esta questão

Posts Recomendados

  • 0

Salve Bob (posso te chamar assim né...wink.gif)

Então...

IsNull() devolve True ou False, a indicar se uma variável não contém dados válidos (Null). Veja como você poderia usá-la:

Private Sub grava_info_Click()
Dim pvariavel
Dim svariavel
pvariavel = VF
svariavel = tempo
If IsNull(pvariavel) Or IsNull(svariavel) = True Then
MsgBox "Minha Mensagem !", vbOKOnly, "Meu título !"
Else
'código para o form aparecer !
End If
End Sub

Lembrando que eu estou usando o VBA para testar esse código, talvez não funcione no VB ! biggrin.gif

Abraços,

William Rodrigues

Link para o comentário
Compartilhar em outros sites

  • 0

trank ;-) Fica a vontade! Aqui no forum todos somos amigos... hehe

Ah...beleza então Bob wink.gif

William,

Vou testar isso ai depois, mas deixa esse tópico aberto porque eu devo voltar a postar, ok ?!

Obrigado pela ajuda!

Ah sim...

O tópico vai ficar aberto aí, qualquer coisa é só voltar a postar wink.gif

Abraços,

William Rodrigues

Link para o comentário
Compartilhar em outros sites

  • 0

Olá pessoal..... vou postar o codigo muito simples de uma aplicação de soma q eu criei para testar essa rotina.

Option Explicit
Dim valor1
Dim valor2

Private Sub Command1_Click()
valor1 = Val(Text1.Text)
valor2 = Val(Text2.Text)
Label1.Caption = valor1 + valor2
End Sub

Private Sub Command2_Click()

[B]Dim pvariavel
Dim svariavel
pvariavel = valor1
svariavel = valor2
If IsNull(pvariavel) Or IsNull(svariavel) = False Then
MsgBox "variaveis vazias! voce não pode finalizar a aplicação!", vbOKOnly, "Meu título !"
Else
Unload Me
End If[/B]

End Sub

Nessa parte em negrito, é onde tem a rotina que está sendo testada. Se eu colocar FALSE (como está acima) ele me apresenta essa mensagem não importa o que aconteça, mas se eu colocar TRUE, ele da um UNLOAD ME no form todas as vezes q eu clico ignorando a msg.

Se alguém puder me dar um help, posta ai!

Um abraço!

Link para o comentário
Compartilhar em outros sites

  • 0

Vou falar a verdade... Nunca usei a IsNull(), pois na verdade, existem muitos comandos que não estou acostumados. Porém, fui vendo como fazer. O graymalkin falou algo de definir a variável como nula, eu não entendi direito, pois o bob quer que a variavel possa ficar vazia ou não. Eu fiz o seguinte código:

Private Sub Form_Click()
    Dim var1, var2
    var1 = CVar(Text1.Text)
    var2 = CVar(Text2.Text)
    If IsNull(var1) = True Or IsNull(var2) = True Then
        MsgBox "vazio"
    Else
        MsgBox "chein"
    End If
End Sub

Porém, o que quer eu faça aparece a msgbox escrito: "chein"

Link para o comentário
Compartilhar em outros sites

  • 0

Por isso que falei sobre *explicitar* que o valor da variável é Null. Toda variável Variant recém-criada tem o valor Empty e *não* Null. Por isso, você deve usar IsEmpty() e *não* IsNull(). Segue o código abaixo que testei aqui:

Option Explicit
Dim valor1
Dim valor2

Private Sub Command1_Click()
    valor1 = Val(Text1.Text)
    valor2 = Val(Text2.Text)
    Label1.Caption = valor1 + valor2
End Sub

Private Sub Command2_Click()
    Dim pvariavel
    Dim svariavel
    pvariavel = valor1
    svariavel = valor2
    
    If IsEmpty(pvariavel) Or IsEmpty(svariavel) Then
        MsgBox "variaveis vazias! voce não pode finalizar a aplicação!", vbOKOnly, "Meu título !"
    Else
        Unload Me
    End If
End Sub

Agora, isso é só um teste, né? Pois não vejo muito sentido em colocar Option Explicit e declarar todas as variáveis como Variant. unsure.gif

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Que complicação hein....

Mas o código do William e do Bob, estao iguais, não?

É....

Reparei nisso agora...

Mas, só resolvendo aí...

Temos que dizer que a variável está Nula para depois podermos fazer a verificação !

Exemplo:

Dim var
Dim var2
var = Null
var2 = Null
if isnull(var) or isnull(var2) = true then
   msgbox "nula!"
else
   msgbox "Ok!"
end if

wink.gif

Abraços,

William Rodrigues

Link para o comentário
Compartilhar em outros sites

  • 0

Pô, essa droga de IsNull e IsEmpty as vezes dá um nó no cerebro da gente... Tinha vezes q ficava um tempão tentando e nunca virava...

Qd acontecer isso, façam como eu:

Dim valor1 As String

Dim valor2 As String

If (Len(valor1) = 0) OR (Len(valor2) = 0) Then

' condição verdadeira

Else

' condição falsa

End If

hehehehehehe,

Link para o comentário
Compartilhar em outros sites

  • 0

Pô, essa droga de IsNull e IsEmpty as vezes dá um nó no cerebro da gente... Tinha vezes q ficava um tempão tentando e nunca virava...

hehehehe biggrin.gif

Então aqui vai uma explicaçãozinha prá ver se melhora as coisas !

IsEmpty ( )

Retorna True ou False, a indicar se uma variável foi inicializada. Exemplo:

Dim var1, var2
msgbox isempty(var1) 'vai aparecer uma mensagem dizendo verdadeiro
var2 = Null 'o valor da var2 será Nula
msgbox isEmpty(var2) 'vai aparecer uma mensagem dizendo falso

Nesse exemplo, podemos observar que quando não declaramos o valor de uma variavel ela ainda não foi inicializada (isEmpty), mas se declararmos que ela vai ter o seu valor como Null (Nulo) aí para a função isEmpty ela já terá um sido inicializada.

IsNull()

Já o IsNull indica se uma variável não contém dados válidos 'Null'. Não vou passar exemplo pois temos alguns exemplos nesse mesmo tópico. Mas acho que já ficou um pouco mais claro sobre IsEmpty e IsNullwink.gif

Então...

IsEmpty(): usado para saber se a variavel já foi inicializada.

IsNull(): usado para saber se a variavel tem o valor Nulo.

wink.gif

Abraços,

William Rodrigues

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...