none
Textbox buscar dados autocompletar em bd access! RRS feed

  • Pergunta

  • Tenho um textbox que é um campo CODIGO, preciso que ao comecar digitar sugira todos os codigos disponiveis de uma coluna do bd access

    fiz este codigo, Ele NAO GERA ERRO, mas tambem NAO FAZ O QUE QUERO

    Public Class FRM_Principal

        Private Sub FRM_Principal_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            
            Dim con As New OleDbConnection
            con.ConnectionString = ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Controle de Vendas 2.0\Controle de Vendas 2.0\bd_x.accdb")
            con.Open()
            Dim dt As New DataTable
            Dim ds As New DataSet
            ds.Tables.Add(dt)
            Dim da As New OleDbDataAdapter("select * from Produtos", con)
            da.Fill(dt)
            TBX_Codigo_Prod.AutoCompleteCustomSource.Clear()
            For Each dr As DataRow In ds.Tables(0).Rows
                TBX_Codigo_Prod.AutoCompleteCustomSource.Add(dr("Código").ToString().Trim())
            Next
            TBX_Codigo_Prod.AutoCompleteSource = AutoCompleteSource.CustomSource
            TBX_Codigo_Prod.AutoCompleteMode = AutoCompleteMode.SuggestAppend
            TBX_Codigo_Prod.AutoCompleteCustomSource.Clear()
        End Sub

    bom este é o codigo, mas nao faz nada, nem erro. alguem pode me ajudar a encontrar o erro???

    Att,


    Will Santos

    sexta-feira, 6 de setembro de 2013 14:16

Respostas

  • Olá,

    Bom pelo que vi seu código não está errado, mas percebi que quando se trata de números inteiros ele não identifica na localização se for letras(palavras) ele localiza normal .

    Então não sei se é viável para você, mas achei um solução.

    Você pode inserir um espaço depois do número(Código) para dizer que ele é realmente uma string.

    Aproveitei seu código e fiz o exemplo abaixo:

            Dim con As New OleDbConnection
    
     con.ConnectionString = ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Controle de Vendas 2.0\Controle de Vendas 2.0\bd_x.accdb")
            con.Open()
            Dim dt As New DataTable
            Dim ds As New DataSet
            ds.Tables.Add(dt)
            Dim da As New OleDbDataAdapter("select * from Produtos", con)
            da.Fill(dt)
            With TBX_Codigo_Prod
                .AutoCompleteSource = AutoCompleteSource.CustomSource
                .AutoCompleteMode = AutoCompleteMode.SuggestAppend
            End With
            TBX_Codigo_Prod.AutoCompleteCustomSource.Clear()
            For Each dr As DataRow In dt.Rows
     ' Estou inserino um espaço depois do "código"
               TBX_Codigo_Prod.AutoCompleteCustomSource.Add(dr("Código").ToString() + " ")
            Next
        End Sub


    Adriano M.Mizukoshi

    • Marcado como Resposta Will Santos terça-feira, 22 de outubro de 2013 10:42
    quarta-feira, 18 de setembro de 2013 11:42

Todas as Respostas

  • Coloca seu código no evento "Keypress" do campo referente ao código. Creio que vai funcionar.
    domingo, 8 de setembro de 2013 03:41
  • consegui simplificando o codigo... mesmo assim valeu pela dica!
    segunda-feira, 16 de setembro de 2013 11:52
  • Olá,

    Bom pelo que vi seu código não está errado, mas percebi que quando se trata de números inteiros ele não identifica na localização se for letras(palavras) ele localiza normal .

    Então não sei se é viável para você, mas achei um solução.

    Você pode inserir um espaço depois do número(Código) para dizer que ele é realmente uma string.

    Aproveitei seu código e fiz o exemplo abaixo:

            Dim con As New OleDbConnection
    
     con.ConnectionString = ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Controle de Vendas 2.0\Controle de Vendas 2.0\bd_x.accdb")
            con.Open()
            Dim dt As New DataTable
            Dim ds As New DataSet
            ds.Tables.Add(dt)
            Dim da As New OleDbDataAdapter("select * from Produtos", con)
            da.Fill(dt)
            With TBX_Codigo_Prod
                .AutoCompleteSource = AutoCompleteSource.CustomSource
                .AutoCompleteMode = AutoCompleteMode.SuggestAppend
            End With
            TBX_Codigo_Prod.AutoCompleteCustomSource.Clear()
            For Each dr As DataRow In dt.Rows
     ' Estou inserino um espaço depois do "código"
               TBX_Codigo_Prod.AutoCompleteCustomSource.Add(dr("Código").ToString() + " ")
            Next
        End Sub


    Adriano M.Mizukoshi

    • Marcado como Resposta Will Santos terça-feira, 22 de outubro de 2013 10:42
    quarta-feira, 18 de setembro de 2013 11:42
  • Muito agradecido Adriano M.Mizukoshi funcionou perfeitamente.

    Espero um dia poder retribuir.


    • Editado Will Santos terça-feira, 22 de outubro de 2013 10:44
    terça-feira, 22 de outubro de 2013 10:44