MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


    Pesquisa por parte do texto no Combobox

    avatar
    excelbrasilia
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 07/07/2017

    Pesquisa por parte do texto no Combobox Empty Pesquisa por parte do texto no Combobox

    Mensagem  excelbrasilia em 30/5/2019, 19:02

    Ola, boa tarde. Tentei aplicar alguns exemplos que pesquisei no google e aqui no forum para a minha realidade, porem não obtive sucesso.

    Estou anexando o BD aqui para facilitar.

    A situação é a seguinte:

    Neste banco de dados, tenho o formulario frm_estoque, neste existe o combobox Item, preciso que durante o preenchimento se o usuario digitar por exemplo: Uniforme, já filtre na lista apenas as opções que contenham este texto especifico.
    Anexos
    Pesquisa por parte do texto no Combobox AttachmentRevia.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (732 Kb) Baixado 7 vez(es)
    Silvio
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4480
    Registrado : 20/04/2011

    Pesquisa por parte do texto no Combobox Empty Re: Pesquisa por parte do texto no Combobox

    Mensagem  Silvio em 30/5/2019, 19:39

    Boa tarde, seja bem vindo ao fórum

    Fica atento a nomenclatura correta em campo de tabelas. Nada de palavras com acentos, espaços, números, caracteres especias..e tals. O mesmo vale para formulários, consultas e relatórios. E tuas tabelas estão carregadas de erros de nomenclaturas, reveja isso agora que mais tarde você vai ter dor de cabeça.

    Na consulta que gera a tua combobox, entra no modo SQL e cole o que está abaixo..

    SELECT pd_produtos.Código, pd_produtos.Descrição
    FROM pd_produtos
    WHERE (((pd_produtos.Descrição) Like "*" & [Forms]![frm_estoque]![Item] & "*"))
    ORDER BY pd_produtos.Descrição;


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    avatar
    zcarloslopes
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 205
    Registrado : 28/10/2010

    Pesquisa por parte do texto no Combobox Empty Re: Pesquisa por parte do texto no Combobox

    Mensagem  zcarloslopes em 30/5/2019, 20:25

    Boa tarde excelbrasilia,

    Veja se é isto que pretende.

    Abraço
    Anexos
    Pesquisa por parte do texto no Combobox AttachmentRevia_v2.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (787 Kb) Baixado 18 vez(es)
    avatar
    excelbrasilia
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 07/07/2017

    Pesquisa por parte do texto no Combobox Empty Re: Pesquisa por parte do texto no Combobox

    Mensagem  excelbrasilia em 30/5/2019, 21:22

    zcarloslopes o exemplo em anexo funcionou exatamente como eu queria. Obrigado demais!

    Foi inserido o código no evento do campo (Ao alterar)

    Código:
    Private Sub Item_Change()
    ' Function Description:
    ' Filter a combo box list as the user types, similarly to how application
    ' launchers like Colibri, AppRocket and LaunchBar opperate.
        ' e.g. if the list contains the names of U.S. Presidents, and
        ' the user types "gw," then the resulting SQL WHERE clause will
        ' look like "Name Like '*g*w*'" and the resulting list
        ' will include George Washington, George H. W. Bush and
        ' George W. Bush, among others.
        ' The order is preserved, so that typing "wg" creates an SQL WHERE
        ' clause like "Name Like '*w*g*'" and the resulting list would
        ' include George Washington but not the Bushes.
       
    ' This is accomplished by grabbing the text typed by the user in the
    ' combo box's edit field, creating an SQL SELECT statement from it,
    ' and finally applying that SQL statement to the combo box's
    ' .RowSource property.

    ' Form design settings:
    '  Set AutoExpand to No
    '  Column Count 3
    '  Keyed on column 1 (record primary key)
    '  Showing column 2 (user-readable data) column 2 width > 0
    '  First and Second column width=0

    Dim strText, strFind

    ' Get the text that the user has typed into the combo box editable field.
    strText = Me.Item.Text

    ' If the user has typed something in, then filter the combobox
    ' list to limit the visible records to those that contain the
    ' typed letters.
    ' Otherwise (if the field is blank), the user has deleted whatever
    ' text they typed, so show the entire (unfiltered) list
    If Len(Trim(strText)) > 0 Then
        ' Show the list with only those items containing the typed
        ' letters.
       
        ' Create an SQL query string for the WHERE clause of the SQL
        ' SELECT statement.
        strFind = "Descrição Like '"
        For i = 1 To Len(Trim(strText))
            If (Right(strFind, 1) = "*") Then
                ' When adding another character, remove the
                ' previous "*," otherwise you end up with
                ' "*g**w*" instead of "*g*w*."
                ' This has no apparent impact on the user, but
                ' ensures that the SQL looks as intended.
                strFind = Left(strFind, Len(strFind) - 1)
            End If
            strFind = strFind & "*" & Mid(strText, i, 1) & "*"
        Next
        strFind = strFind & "'"
       
        ' Create the full SQL SELECt string for the combo box's
        ' .RowSource property.
        strSQL = "SELECT [pd_produtos].[Código], [pd_produtos].[Descrição] FROM pd_produtos Where " & _
        strFind & " ORDER BY [Descrição];"
       
       
        '' NOTE: to remove the order requirement, such that typing "wg"
        '' and "gw" return the same results, the SQL WHERE clause needs
        '' to look like "Name Like '*w* AND *g*'."
        '' The code above should be changed as follows:
        ''For i = 1 To Len(Trim(strText))
        ''  strFind = strFind & "Name Like '*" & Mid(strText, i, 1) & "*' And "
        ''Next
        ''
        ''strSQL = "SELECT tName.nameKey, tName.Name, SortOrder from tblApps Where " & _
        ''Left(strFind, Len(strFind) - 5) & " Order By SortOrder"
       
        ' Filter the combo list records using the new SQL statement.
        Me.Item.RowSource = strSQL
       
    Else
        ' Show the entire list.
        strSQL = "SELECT [pd_produtos].[Código], [pd_produtos].[Descrição] FROM pd_produtos ORDER BY pd_produtos.[Descrição]; "
       
        'SELECT [pd_produtos].[Código], [pd_produtos].[Descrição] FROM pd_produtos ORDER BY [Descrição]
        Me.Item.RowSource = strSQL
    End If

    ' Make sure the combobox is open so the user
    ' can see the items available on list.
    Me.Item.Dropdown
    End Sub
    avatar
    zcarloslopes
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 205
    Registrado : 28/10/2010

    Pesquisa por parte do texto no Combobox Empty Re: Pesquisa por parte do texto no Combobox

    Mensagem  zcarloslopes em 30/5/2019, 21:35

    Obrigado pelo retorno.

    Abraço

    Conteúdo patrocinado

    Pesquisa por parte do texto no Combobox Empty Re: Pesquisa por parte do texto no Combobox

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 6/12/2019, 21:27