CASE COM CAMPOS NULOS

 Tópico anterior Próximo tópico Novo tópico

CASE COM CAMPOS NULOS

VB / VBA

 Compartilhe  Compartilhe  Compartilhe
#479584 - 14/02/2018 15:00:34

OMAR2011
MONTES CLAROS
Cadast. em:Setembro/2011


Quando você da  um Insert na tabela deste jeito.
cn.EXECUTE ("iNSERT INTO USUARIO(CODIGO,LOGIN,NIVEL) VALUES (" & Text1.Text & ",'" & Text2.Text & "','" & Text4.Text & "')")
Na tabela aparece o regsitro inserido no campo Senha como Null.
Ai quando faz a consulta, aparece o Sim.
Mas quando da  Insert deste jeito estando a caixa de texto  text3.text vazia ou não
cn.EXECUTE ("iNSERT INTO USUARIO(CODIGO,LOGIN,SENHA,NIVEL) VALUES (" & Text1.Text & ",'" & Text2.Text & "','" & Text3.Text & "','" & Text4Text & "')")
a consulta só aparece NÂO.
Então a questão é o Campo da tabela.



#479585 - 14/02/2018 15:35:19

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Isso é lógico. Null é "não tem nenhum dado", qualquer coisa no campo, mesmo uma string em branco, já não é mais null.

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#479586 - 14/02/2018 19:07:31

OMAR2011
MONTES CLAROS
Cadast. em:Setembro/2011


É por isso que aparece somente NÂO na consulta dele.
Isto devido ao Campo da tabela.



#479587 - 14/02/2018 20:26:34

WMR2018
BALSAS
Cadast. em:Outubro/2017


Citação:
:
É por isso que aparece somente NÂO na consulta dele.
Isto devido ao Campo da tabela.


E nessa caso faço o q?

Pq quando inserto a tabela, o campo Senha nao é preenchido de primeira hora... somente depois o usuario vem e update a senha dele.

Porem quero exibir no grid o campo senha = null como a string "não" e os que tiver qualquer senha,será "sim"



#479590 - 14/02/2018 22:40:23

OMAR2011
MONTES CLAROS
Cadast. em:Setembro/2011


Fica deste jeito.

If Trim(tText3.Text) = "" Then
cn.EXECUTE ("iNSERT INTO USUARIO(CODIGO,LOGIN,NIVEL) VALUES (" & Text1.Text & ",'" & Text2.Text & "','" & Text4.Text & "')")
MsgBox ("Gravado sem senha")
Else

cnxnObj.EXECUTE ("iNSERT INTO USUARIO(CODIGO,LOGIN,SENHA,NIVEL) VALUES (" & Text1.Text & ",'" & Text2.Text & "','" & Text3.Text & "'),'" &Text4.Text & "')")
MsgBox ("Gravado  com senha")
End If



#479611 - 15/02/2018 11:52:17

WMR2018
BALSAS
Cadast. em:Outubro/2017


Citação:
:
Fica deste jeito.

If Trim(tText3.Text) = "" Then
cn.EXECUTE ("iNSERT INTO USUARIO(CODIGO,LOGIN,NIVEL) VALUES (" & Text1.Text & ",'" & Text2.Text & "','" & Text4.Text & "')")
MsgBox ("Gravado sem senha")
Else

cnxnObj.EXECUTE ("iNSERT INTO USUARIO(CODIGO,LOGIN,SENHA,NIVEL) VALUES (" & Text1.Text & ",'" & Text2.Text & "','" & Text3.Text & "'),'" &Text4.Text & "')")
MsgBox ("Gravado  com senha")
End If


Meu problema nao é inserir... estou conseguindo Insert e update normalmente

Meu problema é fazer uma consulta, onde se o campo STATUS = NULL ele retorna "NÃO" e sem o campo NAO FOR NULL, ele retorna "SIM"

Quero usar essa SQL para preencher um grid



#479614 - 15/02/2018 12:03:13

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Simplesmente inverta as strings na query, onde está "sim", coloque "não" e vice-versa.

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#479615 - 15/02/2018 13:01:47

WMR2018
BALSAS
Cadast. em:Outubro/2017


Citação:
:
Simplesmente inverta as strings na query, onde está "sim", coloque "não" e vice-versa.


Vamos lá:

tenho 3 registros na tabela Usuario... 2 deles estão com o campo Senha = Null e 1 deles tá com uma senha = 123456

já tentei:
sSQL = "SELECT codigo, login, CASE senha WHEN IS Null THEN 'NÃO' ELSE 'SIM' END AS var_senha, nivel FROM usuario ORDER BY codigo;"

dar o erro: Sintaxe incorreta proxima a palavra-chave 'IS'

depois tentei:
sSQL = "SELECT codigo, login, CASE senha WHEN ISNull THEN 'NÃO' ELSE 'SIM' END AS var_senha, nivel FROM usuario ORDER BY codigo;"

dar o erro: Nome da coluna 'ISNull' invalido

depois tentei:
sSQL = "SELECT codigo, login, CASE Senha WHEN null THEN 'NÃO' ELSE 'SIM' END AS var_Senha, nivel FROM usuario ORDER BY codigo;"

nao dar erro, mais todos a coluna senha do grid fica 'SIM'

depois tentei:
sSQL = "SELECT codigo, login, CASE Senha WHEN null THEN 'SIM' ELSE 'NÃO' END AS var_Senha, nivel FROM usuario ORDER BY codigo;"

nao dar erro, mais todos a coluna senha do grid fica 'NÃO'



#479616 - 15/02/2018 13:12:59

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe

SELECT codigo, login, CASE WHEN senha IS NULL THEN 'SIM' ELSE 'Não' from usuario order by codigo


_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#479618 - 15/02/2018 13:41:14

OMAR2011
MONTES CLAROS
Cadast. em:Setembro/2011


Você pode mudar o seu dados do Campo da tabela Senha?
Então faça isso.
cn.EXECUTE ("Update  USUARIO set senha='Null'").
Ai faça novos registros com senha e sem senha nesta tabela. Do modelo como foi citado na mensagem anterior.
Depois faça a consuta.
Vai aparecer NÃO E SIM.



 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por WMR2018 em 15/02/2018 18:30:29