MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Adaptar Código Filtrar ao Digitar

    Compartilhe

    Celso Roberto
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 543
    Registrado : 01/03/2014

    [Resolvido]Adaptar Código Filtrar ao Digitar

    Mensagem  Celso Roberto em Seg 13 Jun 2016, 20:48

    Boa Tarde a todos..

    Uso o código abaixo para filtrar ao digitar na combo, Ele filtra conforme eu preciso.
    O que preciso é ao abrir a combo eu consiga selecionar oque foi filtrado com as setas para cima ou para baixo, ele só permite com o mouse.
    Como sempre conto com a ajuda dos Amigos  

    Dim strText, strFind, strFind2

    ' strText-Retorna o valor da Combo
    ' strFind-Retorna o valor do conjunto já digitado
    ' strFind2-Junta a clausula WHERE ao valor do conjunto já digitado

    strText = Me.ComboCliente.Text

    If Len(Trim(strText)) > 0 Then
    ' Mostra a lista com os registro que contenham o conjunto já digitado
    ' Cria uma expressão de consulta SQL com string para clausula WHERE do SQL que retorna os dados da tabela
    strFind2 = "txtNomeCliente Like '*"
    For I = 1 To Len(Trim(strText))
    If (Right(strFind, 1) = "*") Then
    strFind = Left(strFind, Len(strFind) - 1)
    End If
    strFind = strFind & Mid(strText, I, 1) & "*"
    Next
    strFind2 = strFind2 & strFind & "'"

    strsql = "SELECT CodCliente, txtNomeCliente FROM tblClientes where " & strFind2 & " ORDER BY txtNomeCliente;"

    ' Filter os registros da combo list utilizando a nova consulta sql
    Me.ComboCliente.RowSource = strsql

    Else
    ' Senão, mostra a lista com todos os registros
    strsql = "SELECT CodCliente, txtNomeCliente FROM tblClientes ORDER BY txtNomeCliente; "
    Me.ComboCliente.RowSource = strsql
    End If
    ' Abre a lista do combobox para mostrar os registros filtrados
    Me.ComboCliente.Dropdown
           
    End Sub



    Abraços
    Anexos
    CaixaDeCombinação.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (66 Kb) Baixado 14 vez(es)


    .................................................................................
    Quando sua dúvida estiver resolvida, Agradeça ao Fórum e de seu tópico por Resolvido



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....

    Celso Roberto
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 543
    Registrado : 01/03/2014

    Re: [Resolvido]Adaptar Código Filtrar ao Digitar

    Mensagem  Celso Roberto em Qua 15 Jun 2016, 17:04

    "UP"

    Ainda não consegui...

    Também pode ser outro código, se alguém tiver..

    Aguardo


    .................................................................................
    Quando sua dúvida estiver resolvida, Agradeça ao Fórum e de seu tópico por Resolvido



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....

    Kaynan
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2267
    Registrado : 09/04/2012

    Re: [Resolvido]Adaptar Código Filtrar ao Digitar

    Mensagem  Kaynan em Qua 15 Jun 2016, 17:34

    Seria assim.

    [Você precisa estar registrado e conectado para ver este link.]

    Celso Roberto
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 543
    Registrado : 01/03/2014

    Re: [Resolvido]Adaptar Código Filtrar ao Digitar

    Mensagem  Celso Roberto em Qua 15 Jun 2016, 19:36

    Olá Kaynan Td Bem..

    Obrigado por tentar me ajudar, mas não seria isto.
    Este resultado se consegue sem usar o código de filtrar ao digitar que estou uasando no evento ao alterar

    O que preciso é usando este código que filtra em qualquer parte do campo ao digitar, poder selecionar com as setas para cima e para baixo ao abrir a caixa e também após filtrado.
    Ele só permite com o mouse e os usuários estão reclamando que dificulta o trabalho

    Abraços e obrigado


    .................................................................................
    Quando sua dúvida estiver resolvida, Agradeça ao Fórum e de seu tópico por Resolvido



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....

    Celso Roberto
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 543
    Registrado : 01/03/2014

    Re: [Resolvido]Adaptar Código Filtrar ao Digitar

    Mensagem  Celso Roberto em Sex 17 Jun 2016, 18:18

    Olá,
    Deixo aqui o link onde encontrei a solução,pode ser interessante para quem utiliza a filtragem ao digitar e quer usar as teclas para cima e para baixo,como era o meu caso.


    [Você precisa estar registrado e conectado para ver este link.]


    Ele pede para colocar o código no form, mas utilizei direto na caixa de combinação e ficou muito bom


    Código:
    Private Sub cboNomeCliente_KeyDown(KeyCode As Integer, Shift As Integer)
         
          Me.cboNomeCliente.Dropdown
        Select Case KeyCode
        Case vbKeyDown
          Me.cboNomeCliente = Me.cboNomeCliente.ItemData(Me.cboNomeCliente.ListIndex + 1)
          KeyCode = 0
        Case vbKeyUp
          Me.cboNomeCliente = Me.cboNomeCliente.ItemData(Me.cboNomeCliente.ListIndex - 1)
          KeyCode = 0
        Case Else
          DoCmd.SearchForRecord , "", acFirst, "[CodCliente] = " & Str(Nz(Screen.ActiveControl, 0))
          'Call cboNomeCliente_AfterUpdate
        End Select

    End Sub

    Abraços e obrigado a todos quetentaram me ajudar


    .................................................................................
    Quando sua dúvida estiver resolvida, Agradeça ao Fórum e de seu tópico por Resolvido



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....

      Data/hora atual: Sab 03 Dez 2016, 04:39