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

Filtro


jntk

Pergunta

huh.gif

Olá, preciso de ajuda...

Gostaria de fazer algo que ao clique de um botão traga os dados da tabela com o mesmo código para um DBGrid ou DataGrid.

Por exemplo, escolhe se o número 5, e clica no botão, e ul filtro é utilizado trazendo somente os registros do correspondentes ao código 5. (somente para consulta)

Não consigo fazer isso....

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0
deve por num recordset e depois no grid. assim:

sql = "Select * from Tabela Where Codigo = 5"
Set rs = cn.Execute(sql)

Set DataGrid1.DataSource = rs
huh.gif A idéia é essa mesmo, só que não funcionou..... Deu erro no código, pra ser mais preciso em:
Set DataGrid1.DataSource = rs

Link para o comentário
Compartilhar em outros sites

  • 0
qual erro?

criou todas as variaveis direitinho e fez a conexao com o banco?

huh.gif

Sim, meu código está dessa forma:

Dim db As Database
Dim rs As Recordset

Set db = DBEngine.Workspaces(0).OpenDatabase("S:\Controle\Data\database.mdb")
Set rs = db.OpenRecordset("select * from movimentacao where codigo = 5")

Set DataGrid1.DataSource = rs
Mas tente dessa forma também:
Dim db As Database
Dim rs As Recordset
Dim linhas As Integer
Dim sql As String

sql = "Select * from Tabela Where Codigo = 5"
Set rs = cn.Execute(sql)

Set DataGrid1.DataSource = rs

No primeiro código acima o erro foi:

"Run-time error '13':

Type mismatch"

Na linha: "Set DataGrid1.DataSource = rs"

No segundo código acima o erro foi:

"Run-time error '424':

Object required"

Na linha: "Set rs = cn.Execute(sql)"

No aguardo...

Link para o comentário
Compartilhar em outros sites

  • 0

no primeiro caso não sei. tente por, no inicio, depois de criar as variaveis:

Set rs = New RecordSet
no segundo, faca assim:
Dim cn As Connection
Dim rs As Recordset
Dim linhas As Integer
Dim sql As String

cn.Provider = "Microsoft.Jet.OLEDB.4.0"
cn.ConnectionString = "S:\Controle\Data\database.mdb"
cn.CursorLocation = adUseClient
cn.Open

sql = "Select * from Tabela Where Codigo = 5"
Set rs = cn.Execute(sql)

Set DataGrid1.DataSource = rs

mas não sei não se vai funcionar, porque costumo trabalhar sempre com ADO.

Link para o comentário
Compartilhar em outros sites

  • 0
no primeiro caso não sei. tente por, no inicio, depois de criar as variaveis:

Set rs = New RecordSet
no segundo, faca assim:
Dim cn As Connection
Dim rs As Recordset
Dim linhas As Integer
Dim sql As String

cn.Provider = "Microsoft.Jet.OLEDB.4.0"
cn.ConnectionString = "S:\Controle\Data\database.mdb"
cn.CursorLocation = adUseClient
cn.Open

sql = "Select * from Tabela Where Codigo = 5"
Set rs = cn.Execute(sql)

Set DataGrid1.DataSource = rs

mas não sei não se vai funcionar, porque costumo trabalhar sempre com ADO.

huh.gif

Não foi,

nenhum nem o outro.

No primeiro continuou a mesma coisa, e no segundo aparece:

"Method or data member not found"

Na item: ".Provider ="

No aguardo...

Link para o comentário
Compartilhar em outros sites

  • 0

testei agora e vi q, realmente, a conexao so funciona com ADO.

pra fazer do segundo modo, você deve adicionar a referencia Microsoft ActiveX Data Controls 2.0.

se por algum motivo você não quiser trabalhar com ADO, então o esquema é tentar do jeito q c tava fazendo antes:

Dim db As Database
Dim rs As Recordset

Set db = DBEngine.Workspaces(0).OpenDatabase("S:\Controle\Data\database.mdb")
Set rs = db.OpenRecordset("select * from movimentacao where codigo = 5")

Set DataGrid1.DataSource = rs
mas nesse caso já não sei direito como te ajudar... tente fazer:
Set DataGrid1.DataSource = db.OpenRecordset("select * from movimentacao where codigo = 5")

Link para o comentário
Compartilhar em outros sites

  • 0

Senhores... Estou com um problema parecido

mas como eu uso um private sub para chamar uma classe e nesta chamada está dando o erro 424 Run-time alguém sabe o que pode ser?

o código:

Private Sub Command1_Click()

WeDoPanelCC.Visible = True

WeDoPanelCC.SetFocus

Dim myInvoices As WeDoCustomer.Invoices

Call BuildGridBoletosAtivos(wdBoletosAtivos)

Call BuildGridHistoricoBoletos(wdHistoricoBoleto)

'Popula a Grid de Ultimas Facturas

If gbSelecionado = True Then Não entra neste If

For Each myInvoices In myCustomer.GetLastBoletosAtivos(myCustomer.CustomerId)

Call InsertValuesBoletosAtivos(myInvoices, wdBoletosAtivos)

'Call InsertValuesHistoricoBoleto(myInvoices, wdgLastInvoices)

Next

wdgLastInvoices.InserePicture ("wdBoletosAtivos"), App.path & "\pic\Find_cust.bmp", ("Sim")

Else

For Each myInvoices In myCustomer.GetLastBoletosAtivos(myCustomer.CustomerId) Erro nesta chamada de Método

Call InsertValuesBoletosAtivos(myInvoices, wdBoletosAtivos)

'Call InsertValuesHistoricoBoleto(myInvoices, wdgLastInvoices)

Next

wdgLastInvoices.InserePicture ("wdBoletosAtivos"), App.path & "\pic\Find_cust.bmp", ("Sim")

End If

End Sub

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,2k
    • Posts
      651,9k
×
×
  • Criar Novo...