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

    Ordenar Listbox após ele ser preechido

    Compartilhe

    pitfritsch
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 26
    Registrado : 14/07/2015

    Ordenar Listbox após ele ser preechido

    Mensagem  pitfritsch em Qua 29 Jul 2015, 19:39

    Fiz um loop para preencher o Listbox, no loop estava sempre incrementando uma variável que correspondia ao codigo do fornecedor, portanto automaticamente o Listbox está sendo listado do código menor ao mais, porém gostaria de ordenar esse Listbox pelo nome do fornecedor, teria como?

    Silvio
    Developer
    Developer

    Respeito às Regras 100%

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

    Re: Ordenar Listbox após ele ser preechido

    Mensagem  Silvio em Qua 29 Jul 2015, 19:49

    Boa tarde....

    Se esta buscando em uma consulta, basta apenas acrescentar essa coluna ( nome do fornecedor ) a tua lstbox. Provavelmente deve estar ela com apenas uma coluna com um determinado tamanho (cm). Vá na propriedades, formato e acrescente mais uma coluna.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]

    pitfritsch
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 26
    Registrado : 14/07/2015

    Re: Ordenar Listbox após ele ser preechido

    Mensagem  pitfritsch em Qua 29 Jul 2015, 19:58

    O código está assim:

    Código:
    'Declaração de variáveis
        Dim vNoFornecedor As String, vNoFantasia As String, index As Double, where As Double, vCdFornecedor As Integer, validacao As Double, vNrFone1Formatado As String, vNrCelularFormatado As String
        Dim vNrFone1, vNrFax, vNrCelular, sql, vCdMaximo
       
        index = 1
        vNoFornecedor = ""
        vNoFantasia = ""
        vNrFone1 = ""
        vNrFax = ""
        vNrCelular = ""
       
            vCdMaximo = DMax("[cdFornecedor]", "tblFornecedores")
       
            Me.listaFornecedor.RowSource = ""
           
            'Inicio do loop de preenchimento
            Do While index <= vCdMaximo
                sql = "SELECT [tblFornecedores].[cdFornecedor], [tblFornecedores].[noFornecedor], [tblFornecedores].[noFantasia], [tblFornecedores].[nrFone1], [tblFornecedores].[nrFax], [tblFornecedores].[nrCelular] FROM tblFornecedores WHERE tblFornecedores.cdFornecedor=" & index
                    With CurrentDb.OpenRecordset(sql)
                        If Not .EOF Then .MoveFirst
                        Do While Not .EOF
                           
                           
                            'Enviando dados do banco para variáveis locais
                            vCdFornecedor = CInt(!cdFornecedor)
                            vNoFornecedor = CStr(!noFornecedor)
                            vNoFantasia = CStr(!noFantasia)
                            vNrFone1 = !nrFone1
                            vNrFax = !nrFax
                            vNrCelular = !nrCelular
                           
                            vNoFornecedor = Replace(vNoFornecedor, ";", " - ")
                            vNoFantasia = Replace(vNoFantasia, ";", " - ")
                           
                           
                            'Colocando máscara nos telefones
                            If Len(vNrFone1) = 10 Then
                                vNrFone1Formatado = Format(vNrFone1, "(@@)@@@@-@@@@")
                            Else
                                If Len(vNrFone1) = 11 Then
                                  vNrFone1Formatado = Format(vNrFone1, "(@@)@@@@@-@@@@")
                                Else
                                    If Len(vNrFone1) = 8 Then
                                        vNrFone1Formatado = Format(vNrFone1, "@@@@-@@@@")
                                    End If
                                End If
                            End If
                           
                            If Len(vNrCelular) = 10 Then
                                vNrCelularFormatado = Format(vNrCelular, "(@@)@@@@-@@@@")
                            Else
                                If Len(vNrCelular) = 11 Then
                                  vNrCelularFormatado = Format(vNrCelular, "(@@)@@@@@-@@@@")
                                Else
                                    If Len(vNrCelular) = 8 Then
                                        vNrCelularFormatado = Format(vNrCelular, "@@@@-@@@@")
                                    End If
                                End If
                            End If
                           
                           
                            'Preenchendo ListBox
                            If Me.listaFornecedor.RowSource = "" Then
                                Me.listaFornecedor.RowSource = vCdFornecedor & ";" & vNoFornecedor & ";" & vNoFantasia & ";" & vNrFone1Formatado & ";" & vNrFax & ";" & vNrCelularFormatado
                            Else
                                Me.listaFornecedor.RowSource = Me.listaFornecedor.RowSource & ";" & vCdFornecedor & ";" & vNoFornecedor & ";" & vNoFantasia & ";" & vNrFone1Formatado & ";" & vNrFax & ";" & vNrCelularFormatado
                            End If
                           
                            index = vCdFornecedor + 1
                           
                            .MoveNext
                            CurrentDb.Close
                        Loop
                    End With
            Loop

    teria alguma função para ordenar o Listbox pela segunda coluna?

    Silvio
    Developer
    Developer

    Respeito às Regras 100%

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

    Re: Ordenar Listbox após ele ser preechido

    Mensagem  Silvio em Qui 30 Jul 2015, 12:06

    Boas....

    Uma sugestão é ir na consulta que gera a instrução em SQL e Alterar o campo desejado para a ordem que deseja ( crescente ou decrescente ).


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]

    pitfritsch
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 26
    Registrado : 14/07/2015

    Re: Ordenar Listbox após ele ser preechido

    Mensagem  pitfritsch em Qui 30 Jul 2015, 17:57

    funcionou, obrigado

    Silvio
    Developer
    Developer

    Respeito às Regras 100%

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

    Re: Ordenar Listbox após ele ser preechido

    Mensagem  Silvio em Qui 30 Jul 2015, 18:05

    O fórum agradece o retorno.

    Somente não se esqueça de dar colocar como resolvido o mesmo.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]

      Data/hora atual: Sab 03 Dez 2016, 02:21