ESCOMO PASSAR UMA CONDICAO ESPECIFICA PARA O IF ?

KNILSSON 30/07/2009 00:05:16
#318276
Ola para todos!

Estou com uma duvida e espero que alguem possa me ajudar.
Preciso criar uma condição para passar para o comando IF. Seria algo assim:

if text1 <> [Ô][Ô] then condicao = [Ô]nome = text1[Ô]
if text2 <> [Ô][Ô] then condicao = condicao + [Ô] AND carro = text2[Ô]
if text3 <> [Ô][Ô] then condicao = condicao + [Ô] AND ano = text3[Ô]

é mais ou menos assim
Agora como eu faço para passar essa condição para um comando IF ?

if condicao then <- a minha duvida é como fazer isso dar certo
imprimir
endif

Eu quero que imprima mesmo que haja apenas um dos text preenchidos.

Consegui explicar bem ?

Agradeço a qualquer ajuda.

Bye
TECLA 30/07/2009 08:08:34
#318282
O que você deseja validar na instrução abaixo?

if condicao then  [txt-color=#df0101]<- a minha duvida é como fazer isso dar certo[/txt-color]
imprimir
endif


Você precisa saber se a variável CONDICAO tem algum VALOR? Se é NULA?
Explique com mais detalhes.
SMANUT 30/07/2009 08:56:44
#318290
coloque no if mais ou menos assim

id text1 <> [Ô][Ô] then
faça alguma coisa
else
sai fora da função
end if
d text2 <> [Ô][Ô] then
faça alguma coisa
else
sai fora da função
end if
d text3 <> [Ô][Ô] then
faça alguma coisa
else
sai fora da função
end if
[ô] se chegar até aqui suas condiçoes acima foram satisfeitas
imprimir
SMANUT 30/07/2009 09:02:42
#318293
pera ai ta errado, desculpe pensei errado, depois vi
if text1<> [Ô][Ô] or text2<> [Ô][Ô] or if text3<> [Ô][Ô] then
if text1<> [Ô][Ô] then
condição = algo
end if
if text2<> [Ô][Ô] then
condicao = algo
end if
if text3<> [Ô][Ô] then
condicao = algo
end if
imprime
else
exit sub
end if
KNILSSON 30/07/2009 09:03:30
#318294
A variavel CONDICAO vai ter o valor que eu passar nos TEXT1, TEXT2 ou TEXT3.
Eu quero que a mesma função imprima se apenas um dos TEXTs estiver preenchido ou se todos estivem preenchidos.
O mais facil seria escrever uma função para cada um dos 3 IFs, mas acho que deve ter um jeito mais pratico de fazer isso.
Será que ficou mais claro agora ?

Só exemplificando, a condição pode ser uma dessas 3 abaixo:

condicao = [Ô]nome = text1[Ô]
ou
condicao = [Ô]nome = text1 AND carro = text2[Ô]
ou
condicao = [Ô]nome = text1 AND carro = text2 AND ano = text3[Ô]

Só não sei como fazer o IF reconhecer essas mesmas condições diferentes.

TECLA 30/07/2009 09:10:09
#318296
Bom... se entendi, tente assim:

If text1 <> [Ô][Ô] Then condicao = [Ô]nome = [Ô] & text1
If text2 <> [Ô][Ô] Then condicao = condicao + [Ô] AND carro = [Ô] & text2
If text3 <> [Ô][Ô] Then condicao = condicao + [Ô] AND ano = [Ô] & text3

If Trim(condicao) <> [Ô][Ô] Then
Call Imprimir
Else
MsgBox [Ô]Especifique os parâmetros para impressão[Ô], [Ô]Atenção[Ô]
End If


Retorne o resultado para o tópico.
SMANUT 30/07/2009 09:33:56
#318302
mais amigo, se eu entendi essa variável condição não é a mesma para todos os txts, ou estou errado?
SMANUT 30/07/2009 09:35:31
#318303
se for a mesma use o CASE
EXPERT 30/07/2009 09:40:15
#318304
KNILSSON ....

Pelo que entendi .... vc quer que ..... se os 3 text estiverem preenchidos .... ele pegue as 3 condições .... ou se apenas UM text estiver preenchido ....
Bem .... tenta isso daqui .... cria um vetor ..... eu mudei os três text para [ô]txtTeste[ô] ,,,, o 0 é para o nome o 1 para o carro e o 2 para o ano ....
Tenta ai e posta o resultado pra gente

Private Sub Command1_Click()
Dim strCondicao As String
Dim i As Integer, intCont As Integer, index As Integer

For i = 0 To 2
If txtTeste(i).Text <> [Ô][Ô] Then
intCont = intCont + 1
index = IIf(intCont = 1, i, -1)
End If
Next

If intCont = 3 Then
strCondicao = [Ô](nome = [ô][Ô] & txtTeste(0).Text & [Ô][ô]) AND (carro = [ô][Ô] & txtTeste(1).Text & [Ô][ô]) AND (ano = [Ô] & txtTeste(2).Text & [Ô])[Ô]
ElseIf intCont = 1 Then
Select Case index
Case 0
strCondicao = [Ô](nome = [ô][Ô] & txtTeste(0).Text & [Ô][ô])[Ô]
Case 1
strCondicao = [Ô](carro = [ô][Ô] & txtTeste(1).Text & [Ô][ô])[Ô]
Case 2
strCondicao = [Ô](ano = [Ô] & txtTeste(2).Text & [Ô])[Ô]
End Select
End If

MsgBox strCondicao
End Sub



PS: huahuahua ... uma verdadeira POG
Tópico encerrado , respostas não são mais permitidas