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

    [Resolvido]Adaptar Código Filtrar ao Digitar

    Compartilhe
    avatar
    Celso Roberto
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 712
    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 15 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.....
    avatar
    Celso Roberto
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 712
    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 : 2283
    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.]
    avatar
    Celso Roberto
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 712
    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.....
    avatar
    Celso Roberto
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 712
    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: Sex 15 Dez 2017, 21:43