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

SELECT com campo vazio na clausula WHERE


FlatDNL

Pergunta

Bom Dia Galera!

Tenho um form com 5 TextBox e preciso fazer uma rotina de busca usando SELECT, onde existe a possibilidade de haver campos vazios, exemplo:

Text1 = “Carro”

Text2 = VAZIO

Text3 = “Fusca”

Text4 = VAZIO

Text5 = “Preto

Então o SELECT seria:

SELECT * FROM Tabela WHERE Item = “Text1” AND Modelo = “Text2” AND Cor = “Text3”

Mas se apenas o campo 3 estiver preenchido, então:

SELECT * FROM Tabela WHERE Modelo = “Text3”

Espero ter sido claro.

OBS: Não quero buscar campos vazios na tabela, mas sim uma função que possa existir campos vazios na clausula WHERE.

Desde já, agradeço.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Rapaz, a solução para esta questão e muitas outras iguais eu sou grato ao Kuroi até hoje, pois depois que ele me passou este código utilizo sempre, veja:

Primeiro você faz o select completo e depois faz o filtro apenas com as informações caso elas existam:

'declare o recordset no general

Dim cmd As New ADODB.Command
Dim rs as New ADODB.Recordset

Private Sub Form_Load()

'selecione a tabela toda

With cmd
.ActiveConnection = cnn
.CommandType = adCmdText
.CommandText = "select * from tabela"
Set rs = .Execute
End With

End Sub


'depois faça o filtro com as condições

Private Sub filtros()

Dim strFiltro As String

strFiltro = ""

If Text1 <> Empty Then
    strFiltro = strFiltro & IIf(strFiltro <> "", " And ", "") & "campo1 Like '" & Text1 & "'"
End If

If Text2 <> Empty Then
    strFiltro = strFiltro & IIf(strFiltro <> "", " And ", "") & "campo2 Like '" & Text2 & "'"
End If

If Text3 <> Empty Then
    strFiltro = strFiltro & IIf(strFiltro <> "", " And ", "") & "campo3 Like '" & Text3 & "'"
End If

If Text4 <> Empty Then
    strFiltro = strFiltro & IIf(strFiltro <> "", " And ", "") & "campo4 Like '" & Text4 & "'"
End If

If Text5 <> Empty Then
    strFiltro = strFiltro & IIf(strFiltro <> "", " And ", "") & "campo5 Like '" & Text5 & "'"
End If

'efetua o filtro em quantos forem os parâmetros passados para o Recordset
rs.Filter = strFiltro

End Sub

Obrigado novamente KUROI!

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Flatdnl --

Certo mano, valeu pela dica...

desculpe a demora pra agradecer, é que as coisas apertaram aqui..

vou tentar fazer, qualquer coisa retorno beleza!!

Valeu!!

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,3k
    • Posts
      652,5k
×
×
  • Criar Novo...