USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Select dinamico
Expedito Junior
RECIFE
PE - BRASIL
ENUNCIADA !
Postada em 01/03/2008 13:21 hs            
Amigos,
 
Tenho um problema meio complexo. Seguinte, no meu projeto tenho os seguintes campos: Text1.text, Text2.text, Text3.text, Text4.text, Text5.text e Text6.text.
 
Preciso verificar quais txt's estão preenchidos para poder montar a instrução select.
Detalhes: Se for montar utilizando o if, fica com muitos laços.
 
Tem como fazer isso sem usar o if?
 
Fico grato por qualquer ajuda.

Expedito Junior

msn: expedito_junior947@hotmail.com

"A oportunidade favorece uma mente preparada!"

   
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
ENUNCIADA !
Postada em 01/03/2008 13:29 hs            
Só uma pergunta.
 
como você pretende montar este select com apenas um dos text ou varios ao mesmo tempo
 
vamos supor que tenha preenchido o text1 e  text 5 como você gostaria que ficase o select? mostre um exemplo.
 
   
Expedito Junior
RECIFE
PE - BRASIL
ENUNCIADA !
Postada em 01/03/2008 13:42 hs            
É pra montar o select com os text's que estiverem preenchidos.
 
Exemplo:
Digamos que text1, text3 e text6 estajam preenchidos,
 
select * from tabela where campo1 = text1 and campo3 = text3 and campo6 = text6.
 
 

Expedito Junior

msn: expedito_junior947@hotmail.com

"A oportunidade favorece uma mente preparada!"

   
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
ENUNCIADA !
Postada em 01/03/2008 14:20 hs            
Expedito tenta desta forma primeiro crie um array de seus textbox, se você não souber como fazer isto eis a dica, crie apenas um campo textbox e coloque o nome que desejar,EX: txtFuncionarios.
 
 em seguida copie este text box ou usando o CTRL+C ou em edit/copy em seguida selecione o form e cole este controle (CRTL+V ou edit/paste).
 
irá aperecer uma mesagem perguntando se você deseja criar o array, clique em sim e pronto, seu text é um array ou seja ficou desta forma: txtFuncionarios(0).text
 
Enquanto você for colando os text irão se autonumerar
 
agora cole este código no seu form para teste
 
Private Sub Command1_Click()
Dim Text1(10) As TextBox
Dim Consulta As String
For f = 0 To 5
If Text1(f).Text <> "" Then
Consulta = Consulta + "campo" & f+1 & "='" & Text1(f).Text & "' and "
End If
Next f
Consulta = Left(Consulta, Len(Consulta) - 5)
Text2.Text = "SELECT * FROM tabela WHERE " & Consulta & """"
End Sub
 
o resultado será este:
SELECT * FROM tabela WHERE campo1='nome' and campo3='endereco' and campo4='bairro'"
 
bom agora vamos a um porém:
 
primeiro sua tabela eve estar com campo1, campo2, campo3, e etc. para o select ficar correto se você for utilizar de nome diferentes já não vai funcionar ai teriamos de fazer de outra forma, não seria dificil.
 
veja se funciona pra você
 
TÓPICO EDITADO
 
Expedito Junior
RECIFE
PE - BRASIL
ENUNCIADA !
Postada em 01/03/2008 14:24 hs            
Vou testar, ogrigado Treze.

Expedito Junior

msn: expedito_junior947@hotmail.com

"A oportunidade favorece uma mente preparada!"

   
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
ENUNCIADA !
Postada em 01/03/2008 14:30 hs            
eis o código caso você não queira mudar o nome dos seus texts
 
Dim Consulta As String
Dim textos As Variant
textos = Array(Text1.Text, Text2.Text, Text3.Text)
For f = 0 To 2
If textos(f) <> "" Then
Consulta = Consulta + "campo" & f + 1 & "='" & textos(f) & "' and "
End If
Next f
Consulta = Left(Consulta, Len(Consulta) - 5)
Text4.Text = "SELECT * FROM tabela WHERE " & Consulta & """"
End Sub
 
 
lembrando que a contagem do array começa do 0(zero)
 
   
Página(s): 1/2      PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página