FlatDNL Postado Julho 7, 2008 Denunciar Share Postado Julho 7, 2008 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 = VAZIOText3 = “Fusca”Text4 = VAZIOText5 = “PretoEntã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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Macêdo Postado Julho 7, 2008 Denunciar Share Postado Julho 7, 2008 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 SubObrigado novamente KUROI! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --Flatdnl -- Postado Julho 8, 2008 Denunciar Share Postado Julho 8, 2008 Certo mano, valeu pela dica...desculpe a demora pra agradecer, é que as coisas apertaram aqui..vou tentar fazer, qualquer coisa retorno beleza!!Valeu!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
FlatDNL
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
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.