Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boas, isto é algo estranho, o meu ciclo if nao esta a ser lido nao sei bem porque.
response.write "-->"&x
if x="1" then
response.write "ok"
end if
ele devolve -->1 mas nao escreve o ok, ja verifiquei com aspas, sem aspas, se x é numerico, não percebo porque nao le.
Inclusive alterei o if para valor="funca" e com o valor defenido como funca ele nao responde ok na mesma.
A que proposito ele nao corre o ciclo if? Alguma ideia?
Eu tenho assim
x="1"
do while x <11
Set rsgo_pro = conn1.Execute("select * from tabela where status="&x&" ")
do while not rsgo_pro.eof
response.write x
if x="1" then
response.write "mostra"
end if
x=x+1
loop
ele devolve o x como 1, ja verifiquei com isnumeric e responde sempre true.
Você utiliza a variável "x" como string e numérica? Se ela é numérica, trate-a como tal, pois você a declarou como string. Apesar do "isNumeric" mostrar verdadeiro para a variável x="1", ela ainda continua sendo uma string, em resumo: x = "1" é diferente de x = 1 : Faça o teste para verificar:
Dim x
x = ...
If isNumeric(x) = True Then
If Int(x) = x Then
Response.Write("É Numerico/Inteiro!")
Else
Response.Write("Não É Numerico/Inteiro!")
End If
Else
Response.Write("Não É Númerico!")
End If
Att.
no primeiro ou seja x=1 ele diz "Não É Numerico/Inteiro!" no segundo ou seja x=2 diz "É Numerico/Inteiro!" e empanca
Alterei isto de modo a nao ter este problema
tab1="acidentes"
tab2="alcoolemia"
x="1"
do while x <11
dim varx
varx = eval("tab"&x)
response.write "<br><br><br><br>"&eval("tab"&x)&"<--->"&varx
nome_tabela = eval("tab"&x)
Set rsgo_pro = conn1.Execute("select * from "&nome_tabela&" ")
do while not rsgo_pro.eof
if varx="acidentes" then
response.write "1"
end if
if varx="alcoolemia" then
response.write "2"
end if
x=x+1
loop
Mas mesmo assim nao vai dentro dos if´s
Sua variável "x" é numérica então trate-a como tal, pois você declara ela como string (x="1") e depois usa como numérica no loop (x=x+1), repetindo, x="1" (string) é diferente de x=1 (numeric):
Dim x
x = 1
Do While x < 11
If isNumeric(x) = True Then
If Int(x) = x Then
Response.Write(x &" É Numerico/Inteiro!<br>")
Else
Response.Write(x &" Não É Numerico/Inteiro!<br>")
End If
Else
Response.Write(x &"Não É Númerico!<br>")
End IfAtt.
sim mas eu agora alterei isso, e mesmo assim ele nao vai ao if
tab1="acidentes"
tab2="alcoolemia"
x="1"
do while x <11
dim varx
varx = eval("tab"&x)
response.write "<br><br><br><br>"&eval("tab"&x)&"<--->"&varx
nome_tabela = eval("tab"&x)
Set rsgo_pro = conn1.Execute("select * from "&nome_tabela&" ")
do while not rsgo_pro.eof
if varx="acidentes" then
response.write "1"
end if
if varx="alcoolemia" then
response.write "2"
end if
x=x+1
loop
Colega, desculpe não ajudar mais, já que você ainda insiste em usar sua variável "x" como string.
Mas eu nao estou a usar a var x?!?! :huh:
Oi.
Coloca x=1 antes do ( do while x <11 ), tira as aspas do 1.
Abraços!
os tipos de dados estão corretos ?
tentar converter antes
Para melhor ajuda, faltou mostrar de onde vem e como definiu esse "x"...
A condição compara uma string, então tenha certeza que "x" seja uma, ou então, utilize outras comparações para verificar o tipo da variável, se é numérica (isNumeric) ou se está vazia (isNull).
Att.