JR
|
JABOTICABAL SP - BRASIL
|
|
Postada em 16/12/2004 09:54 hs
Galera, estou tentando fazer o seguinte: Quando eu clico no botão Pesquisar do form cadastro, aparece um pequeno form (frmEscolha), com um textbox onde eu devo informar a nome ou código para a busca, e dois optionbutton, onde devo selecionar se procuro pelo nome ou código. O parametro está sendo passado, mas quando o sistema chega no do while abaixo, ele pára. Alguém poderia me ajudar? Segue abaixo o código... If optCodigo.Value = True Then Parametro = "Codigo" Else Parametro = "Razao_Social" End If Pesquisa = txtEscolha If rs.State = 1 Then rs.Close End If rs.CursorLocation = adUseClient rs.Open "select * from Clientes Where '" & Parametro & "' Like '%" & Pesquisa & "%'", DB, adOpenStatic, adLockOptimistic Do While Not rs.EOF frmCadastro.txtCodigo.Text = rs.Fields(0) frmCadastro.txtRazao.Text = rs.Fields(1) frmCadastro.txtFantasia.Text = rs.Fields(2) frmCadastro.txtCNPJ.Text = rs.Fields(3) frmCadastro.txtIE.Text = rs.Fields(4) frmCadastro.txtEndereco.Text = rs.Fields(5) frmCadastro.txtCidade.Text = rs.Fields(6) frmCadastro.txtBairro.Text = rs.Fields(7) frmCadastro.txtFone.Text = rs.Fields(8) frmCadastro.txtFax.Text = rs.Fields(9) frmCadastro.txtCelular.Text = rs.Fields(10) frmCadastro.txtContato = rs.Fields(11) frmCadastro.txtPrazo.Text = rs.Fields(12) frmCadastro.txtLimite.Text = rs.Fields(13) 'txtAtivo.Text = rs.Fields(14) rs.MoveNext Loop Exit Sub If rs.EOF Then MsgBox "Não encontrei o Nome " & Pesquisa Exit Sub End If Unload Me Abraços... Junior Mascioli
|
|
|
|
|
Postada em 16/12/2004 10:29 hs
Ttente mudar a pesquisa para: rs.Open "select * from Clientes Where " & Parametro & " Like '" & Pesquisa & "*'", DB, adOpenStatic, adLockOptimistic Outra coisa, não é necessário fechar o recordset para fazer esta pesquisa. Vc pode usar a propriedade Filter do seu recordset mas eu não sei se no seu sistema é possível. Vc apenas colocaria assim: If optCodigo.Value = True Then Parametro = "Codigo" Else Parametro = "Razao_Social" End If Pesquisa = txtEscolha rs.filter = Parametro & " Like '" & Pesquisa & "*'" considerando parametro nome do campo a ser pesquisado. Para retirar o filtro: rs.filter = 0 rs.requery Qq dúvida é só postar novamente t+
|
|
|
JR
|
JABOTICABAL SP - BRASIL
|
|
Postada em 16/12/2004 16:58 hs
Tentei substituir a pesquisa para a que vc me passou, mas ainda não consegui. Quanto à propriedade filter, não a conheço. Abraços... Junior Mascioli
|
|
|
|
Postada em 16/12/2004 17:37 hs
Qual problema q ocorre? Eu fiz um exemplo mas se por exemplo o campo codigo for numerico então vc tem q tirar as aspas simples e o asterisco pois servem para campos tipo texto. Ficaria assim: rs.Open "select * from Clientes Where " & Parametro & " Like " & Pesquisa , DB, adOpenStatic, adLockOptimistic A propriedade filter serve para consultar uma gama de dados. Tem algumas limitações porém é muito útil e vc não precisa fechar e abrir o recordset toda hora. Se eu não me engano o filter suporta: <,>,>=,<=,<>,and, or, Like, *,% mais informações no ADO210.chm procure em: "C:Arquivos de programasArquivos comunsMicrosoft SharedOffice101046ADO210.CHM" veja se vc tem. Caso dê problema, por favor coloque a linha do problema e o tipo. obrigado qq dúvida é só postar novamente t+
|
|
|
|
Postada em 17/12/2004 12:41 hs
Tente substituir: Do While Not rs.EOF frmCadastro.txtCodigo.Text = rs.Fields(0) frmCadastro.txtRazao.Text = rs.Fields(1) frmCadastro.txtFantasia.Text = rs.Fields(2) frmCadastro.txtCNPJ.Text = rs.Fields(3) frmCadastro.txtIE.Text = rs.Fields(4) frmCadastro.txtEndereco.Text = rs.Fields(5) frmCadastro.txtCidade.Text = rs.Fields(6) frmCadastro.txtBairro.Text = rs.Fields(7) frmCadastro.txtFone.Text = rs.Fields(8) frmCadastro.txtFax.Text = rs.Fields(9) frmCadastro.txtCelular.Text = rs.Fields(10) frmCadastro.txtContato = rs.Fields(11) frmCadastro.txtPrazo.Text = rs.Fields(12) frmCadastro.txtLimite.Text = rs.Fields(13) 'txtAtivo.Text = rs.Fields(14) rs.MoveNext Loop Exit Sub If rs.EOF Then MsgBox "Não encontrei o Nome " & Pesquisa Exit Sub End If Unload Me por: rst.MoveMin Do While Not rs.EOF frmCadastro.txtCodigo.Text = rs.Fields(0) frmCadastro.txtRazao.Text = rs.Fields(1) frmCadastro.txtFantasia.Text = rs.Fields(2) frmCadastro.txtCNPJ.Text = rs.Fields(3) frmCadastro.txtIE.Text = rs.Fields(4) frmCadastro.txtEndereco.Text = rs.Fields(5) frmCadastro.txtCidade.Text = rs.Fields(6) frmCadastro.txtBairro.Text = rs.Fields(7) frmCadastro.txtFone.Text = rs.Fields(8) frmCadastro.txtFax.Text = rs.Fields(9) frmCadastro.txtCelular.Text = rs.Fields(10) frmCadastro.txtContato = rs.Fields(11) frmCadastro.txtPrazo.Text = rs.Fields(12) frmCadastro.txtLimite.Text = rs.Fields(13) 'txtAtivo.Text = rs.Fields(14) rs.MoveNext Loop Exit Sub If rs.EOF Then MsgBox "Não encontrei o Nome " & Pesquisa Exit Sub End If Unload Me É que ele criou a recordset mas ainda não "entrou" nela.
João Mateus Se precisar de ajuda extra, visite: http://joaomateus.planetaclix.pt
|
|
|
Mateus
|
AMADORA PT - PORTUGAL
|
|
ENUNCIADA !
|
|
|
Postada em 17/12/2004 12:45 hs
O que faltava era, de facto: rs.MoveMin
João Mateus Se precisar de ajuda extra, visite: http://joaomateus.planetaclix.pt
|
|
|
|