Notifications
Clear all

Pesquisa em banco de dados Access

8 Posts
2 Usuários
0 Reactions
2,498 Visualizações
victorsam
(@victorsam)
Posts: 110
Estimable Member
Topic starter
 

Pessoal antes de tudo quero agradecer a vocês que mim ajudaram muito desde que comecei a participar do fórum.

Estou com um probleminha aqui, antes eu usava um código que me conectava com o banco de dados no formato (mdb)
só que tiver que mudar para outro que consegui me conectar com o formato (accdb).
Então consegui fazer a mudança nas opções de: adicionar, editar, preencher listview e Combobox.
Mas quando cheguei na parte de pesquisar em textbox e listview, não consegui modificar o código que funcionava no formato (mdb)

Aqui o código do formato (accbd):

Option Explicit
Dim rst As ADODB.Recordset
Dim cnn As ADODB.Connection

Sub teste()
Set cnn = New ADODB.Connection
Set rst = New ADODB.Recordset
cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:banco.accdb"

rst.Open "Select * FROM TABELA1", cnn, adOpenKeyset, adLockOptimistic

MsgBox rst(0)

rst.Close
cnn.Close
End Sub

Alguém ai pra da uma ajuda urgente!?

Tentar não é saber, é ter a certeza que vai descobrir

Dicas excel, vba, Access http://vbaedit.blogspot.com.br/

 
Postado : 27/10/2014 6:02 am
Reinaldo
(@rlm)
Posts: 246
Estimable Member
 

Não consegui visualizar problema no trecho acima; aparentemente está OK

Reinaldo

 
Postado : 27/10/2014 7:09 am
victorsam
(@victorsam)
Posts: 110
Estimable Member
Topic starter
 

Reginaldo o Código esta ok, preciso adaptar o mesmo para uma pesquisa usando Testbox e listview
o código que estava usando pra pesquisa no BD (mdb) é esse no:

   
Global banco As Database
Global consulta As Recordset

    Dim valor_pesq As String
    valor_pesq = TextBox1.Text
    Dim ComandoSQL As String
    ComandoSQL = "select * from tabela_clientes where Produto like '*" & valor_pesq & "*' or Categoria like '*" & valor_pesq & "*' "

       
        Set banco = OpenDatabase("C:endereço_banco.mdb")
    Set consulta = banco.OpenRecordset(ComandoSQL)
    On Error Resume Next
        
    'Populando o Listview1
    ListView1.ListItems.Clear
    
    While Not consulta.EOF
        Set List = ListView1.ListItems.Add(Text:=consulta(0))  'id
            List.SubItems(1) = consulta(1) 'nome
            List.SubItems(2) = consulta(2) 'sobrenome
            List.SubItems(3) = consulta(3) 'CPF
            List.SubItems(4) = consulta(7) 'cidade
            List.SubItems(5) = consulta(8) 'UF
            consulta.MoveNext
     Wend
     
    Set banco = Nothing
    Set consulta = Nothing

O que eu quero?
Fazer com o que o código postado anteriormente na primeira postagem seja dapitado para pesquisar no banco de dados

Tentar não é saber, é ter a certeza que vai descobrir

Dicas excel, vba, Access http://vbaedit.blogspot.com.br/

 
Postado : 27/10/2014 7:18 am
Reinaldo
(@rlm)
Posts: 246
Estimable Member
 

Não sei se entendi mas

Sub ztestez()
Dim valor_pesq As String, ComandoSQL As String

valor_pesq = "415" 'TextBox1.Text
ComandoSQL = "select * from Tabela1"
ComandoSQL = ComandoSQL & " where Produto like *" & valor_pesq & "* or Categoria like *" & valor_pesq & "*; "

Set cnn = New ADODB.Connection
Set rst = New ADODB.Recordset
cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:banco.accdb"

rst.Open "select * from [Tabela1]", cnn, adOpenKeyset, adLockOptimistic

rst.Close
cnn.Close
End Sub

Reinaldo

 
Postado : 27/10/2014 8:28 am
victorsam
(@victorsam)
Posts: 110
Estimable Member
Topic starter
 

Não sei se entendi mas

Sub ztestez()
Dim valor_pesq As String, ComandoSQL As String

valor_pesq = "415" 'TextBox1.Text
ComandoSQL = "select * from Tabela1"
ComandoSQL = ComandoSQL & " where Produto like *" & valor_pesq & "* or Categoria like *" & valor_pesq & "*; "

Set cnn = New ADODB.Connection
Set rst = New ADODB.Recordset
cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:banco.accdb"

rst.Open "select * from [Tabela1]", cnn, adOpenKeyset, adLockOptimistic

rst.Close
cnn.Close
End Sub

Cara muito louco salvou mesmo rsr

Brigadão funcionou perfeito :D

Tentar não é saber, é ter a certeza que vai descobrir

Dicas excel, vba, Access http://vbaedit.blogspot.com.br/

 
Postado : 27/10/2014 9:07 am
victorsam
(@victorsam)
Posts: 110
Estimable Member
Topic starter
 

Ta dando erro

Tentar não é saber, é ter a certeza que vai descobrir

Dicas excel, vba, Access http://vbaedit.blogspot.com.br/

 
Postado : 27/10/2014 9:43 am
victorsam
(@victorsam)
Posts: 110
Estimable Member
Topic starter
 

Alguém pra me dar um Help?

Tentar não é saber, é ter a certeza que vai descobrir

Dicas excel, vba, Access http://vbaedit.blogspot.com.br/

 
Postado : 27/10/2014 1:35 pm
victorsam
(@victorsam)
Posts: 110
Estimable Member
Topic starter
 

Alguém pra me dar uma força por favor
consegui fazer a pesquisa quando finalizei fechei o excel sem querer e esqueci com eu tinha feito

    Dim valor_pesq As String
    
    valor_pesq = txtPesquisaEst.Text
                                                     
     Set cnn = New ADODB.Connection
     Set rst = New ADODB.Recordset
                                                     
    Call acessabd 'bancoD
    
      Set rst = cnn.OpenRecordset("SELECT * FROM [tabela_clientes] WHERE [Produto] like='" & valor_pesq & "%'")

    On Error Resume Next
            
            listVestoq.ListItems.Clear
    
            While Not rst.EOF
            Set List = listVestoq.ListItems.Add(Text:=rst(0))  'id
            List.SubItems(1) = rst(1) 'quant
            List.SubItems(2) = rst(2) 'Produto
            List.SubItems(3) = rst(3) 'categoria
            List.SubItems(4) = FormatCurrency(rst(4)) 'preço unidade compra
            List.SubItems(5) = FormatCurrency(rst(5)) 'unid venda
            List.SubItems(6) = FormatCurrency(rst(6))
            rst.MoveNext
            Wend
  
    Me.lbl_registros = Me.listVestoq.ListItems.Count
    
    Call saibd 'descone

o erro ta aki eu acho

      Set rst = cnn.OpenRecordset("SELECT * FROM [tabela_clientes] WHERE [Produto] like='" & valor_pesq & "%'")

Tentar não é saber, é ter a certeza que vai descobrir

Dicas excel, vba, Access http://vbaedit.blogspot.com.br/

 
Postado : 27/10/2014 6:35 pm