AlexMunhoz Postado Novembro 6, 2004 Denunciar Share Postado Novembro 6, 2004 Ola galerra sou eu novamente... Eu gostaria que criar um filtro para um DataGrid....Ex.:Eu tenho um text chamado código, e esse codigo vai filtrar o conteúdo do meu Grid. entenderam...Fico grato dês de já Obs. C puderem me postar com urgência eu agradeço, pois o meu expediente já acabou e em casa eu não tenho net... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Novembro 6, 2004 Denunciar Share Postado Novembro 6, 2004 Não se filtra o DataGrid e sim o ADODB.Recordset que está ligado ao mesmo. Por exemplo:rs.Open "SELECT * FROM tabela WHERE campo=50;", cn, 2, 3 set datagrid1.datasource = rsO código acima só retornará os registros da tabela "tabela" cujo campo "campo" seja igual a 50. Você também pode fazer isso pela propriedade Filter do objeto ADODB.Recordset.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 AlexMunhoz Postado Novembro 9, 2004 Autor Denunciar Share Postado Novembro 9, 2004 Não se filtra o DataGrid e sim o ADODB.Recordset que está ligado ao mesmo. Por exemplo:rs.Open "SELECT * FROM tabela WHERE campo=50;", cn, 2, 3 set datagrid1.datasource = rsO código acima só retornará os registros da tabela "tabela" cujo campo "campo" seja igual a 50. Você também pode fazer isso pela propriedade Filter do objeto ADODB.Recordset.Abraços,Graymalkin Amigão, Não estou conseguindo usar, você pode me dar um ex: Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Novembro 10, 2004 Denunciar Share Postado Novembro 10, 2004 Bom, eu preciso saber como você abre a tabela e exibe os dados na DataGrid para poder te dar um exemplo equivalente (basicamente, existem dois meios para se fazer isso). Explique detalhamente o que você faz para exibir o conteúdo de uma tabela em um DataGrid.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 AlexMunhoz Postado Novembro 10, 2004 Autor Denunciar Share Postado Novembro 10, 2004 Explique detalhamente o que você faz para exibir o conteúdo de uma tabela em um DataGrid. cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=VCDS.mdb"rs.CursorLocation = adUseClientrs.Open "SELECT * FROM cds", cn, adOpenDynamic, adLockOptimisticSet DataGrid1.DataSource = rsUso esse procedimento amigão... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Novembro 11, 2004 Denunciar Share Postado Novembro 11, 2004 Então, bastaria você trocar a linha...rs.Open "SELECT * FROM cds", cn, adOpenDynamic, adLockOptimistic ... por: rs.Open "SELECT * FROM cds WHERE codigo=" & txtCódigo.text, cn, adOpenDynamic, adLockOptimisticIsso, supondo que o campo "código" seja numérico. Caso ele seja texto você deverá colocar uma ' (aspa simples) antes e uma depois do valor.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 AlexMunhoz Postado Novembro 11, 2004 Autor Denunciar Share Postado Novembro 11, 2004 Então, bastaria você trocar a linha...rs.Open "SELECT * FROM cds", cn, adOpenDynamic, adLockOptimistic ... por: rs.Open "SELECT * FROM cds WHERE codigo=" & txtCódigo.text, cn, adOpenDynamic, adLockOptimistic ola, eu troquei a linha que você falou mas ela não está filtrando. olha sóo campo código está em numero sim...quando eu coloca a linha assim rs.Open "SELECT * FROM cds WHERE codigo=" & txtCodigo.Text, cn, adOpenDynamic, adLockOptimisticela da o seguinte erro: Run-tima error '-2147217900(80040e14)':Systax error(missing operator) in inquery expression 'codigo='.se eu coloco a (aspa simples) rs.Open "SELECT * FROM cds WHERE 'codigo='" & txtCodigo.Text, cn, adOpenDynamic, adLockOptimistic ele executa normal mas não filtra, o que será isso? o meu codigo ficou assim depois que coloquei a linhaPrivate Sub Form_Load() cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=VCDS.mdb" rs.CursorLocation = adUseClient' rs.Open "SELECT * FROM cds", cn, adOpenDynamic, adLockOptimistic rs.Open "SELECT * FROM cds WHERE 'codigo='" & txtCodigo.Text, cn, adOpenDynamic, adLockOptimistic Set DataGrid1.DataSource = rs PreencheEnd Sub Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Novembro 13, 2004 Denunciar Share Postado Novembro 13, 2004 Não, não tem aspas ali. O correto é o código sem as aspas, ou seja: rs.Open "SELECT * FROM cds WHERE codigo=" & txtCodigo.Text, cn, adOpenDynamic, adLockOptimisticMas, o código que você colocou, não deve ser colocado no evento Load e sim em um botão, por exemplo. Afinal de contas, o evento Load é executado quando o form é carregador, portanto você não tem tempo para escrever na caixa de texto. Salvo a abertura do Connection (cn) o resto deveria ficar em um evento ativado pelo usuário.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 AlexMunhoz Postado Novembro 16, 2004 Autor Denunciar Share Postado Novembro 16, 2004 rs.Open "SELECT * FROM cds WHERE codigo=" & txtCodigo.Text, cn, adOpenDynamic, adLockOptimistic Amigão, sei que já to te enchendo mas fiz exatamente como você me falou, Mas está dando um outro erro agora..Eu coloquei um outro campo chamado filtro e um botão que ativa o comandoPrivate Sub cmdFiltro_Click()rs.Open "SELECT * FROM cds WHERE Codigo=" & txtFiltro.Text, cn, adOpenDynamic, adLockOptimisticSet DataGrid1.DataSource = rsEnd Submas ainda esta dando erro... olha sóRun-time error '3705':Operation is not allowed when the object is open.sem querer ser chato, mas você pode me ajudar outra vez? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 §uiciDa£ Postado Novembro 16, 2004 Denunciar Share Postado Novembro 16, 2004 eu uso assim galera rs.Open "SELECT * FROM cds WHERE Codigo='" & txtFiltro.Text & "', ... bla bla bla t+ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Novembro 17, 2004 Denunciar Share Postado Novembro 17, 2004 mas ainda esta dando erro... olha sóRun-time error '3705':Operation is not allowed when the object is open.sem querer ser chato, mas você pode me ajudar outra vez? Veja a mensagem de erro: "Operation is not allowed when the object is open." Traduzindo: "Operação não permitida quando objeto está aberto.". Ou seja, você não pode fazer um Open e um ADODB.Recordset que já foi aberto anteriormente. Para isso você deve primeiro fechá-lo com:rs.CloseAbraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 AlexMunhoz Postado Novembro 17, 2004 Autor Denunciar Share Postado Novembro 17, 2004 Amigão deu certo, o problema todo era no rs que estava aberto...Ficou assim.rs.Closers.Open "SELECT * FROM cds WHERE codigo=" & txtFiltro.Text, cn, adOpenDynamic, adLockOptimistic"Set DataGrid1.DataSource = rsvou tentar com texto e números pré definidos, c não der conta posso te incomodar mais um pouco?.Obrigado pela paciência... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Novembro 20, 2004 Denunciar Share Postado Novembro 20, 2004 vou tentar com texto e números pré definidos, c não der conta posso te incomodar mais um pouco? Claro. E não é incômodo não!Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
AlexMunhoz
Ola galerra sou eu novamente...
Eu gostaria que criar um filtro para um DataGrid....
Ex.:
Eu tenho um text chamado código, e esse codigo vai filtrar o conteúdo do meu Grid. entenderam...
Fico grato dês de já
Obs. C puderem me postar com urgência eu agradeço, pois o meu expediente já acabou e em casa eu não tenho net...
Link para o comentário
Compartilhar em outros sites
12 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.