1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Registos da BD por ordem alfabética - VBA/Access

Discussão em 'Programação' iniciada por Goldberg, 10 de Abril de 2008. (Respostas: 9; Visualizações: 3808)

  1. Goldberg

    Goldberg Power Member

    Boas.
    A minha dúvida é que tenho, por exemplo, na tabela Clientes os registos:
    1 - XXX
    2 - YYY
    3 - KKK

    porém, quando vou a visualizá-los no formulário eles aparecem por outra ordem. por exemplo o primeiro registo é o 2, depois o 3 e só depois o 1.

    O meu problema é saber como posso fazer para os números aparecerem em ordem alfabética.
    O campo chave numérico está como numérico e não como numérico automático, mas acho que o problema não é daí porque tenho outros formulários com a mesma situação, contudo aparecem por ordem alfabética.
     
  2. jpaulino

    jpaulino Power Member

    Não precisas de vba para isso! Na query que vai buscar os dados adicionas uma coluna e formatas da seguinte forma:

    Format([NomeDoCampo]; "00000")

    Deste modo irá mostras 000001 e não 1. Ordenas por esta coluna.
     
  3. Poiel

    Poiel Power Member

    Na query que vai buscar os dados, acrescentas order by <nome do campo> ASC

    Fica algo tipo:

    Select campo1 from tabela
    order by campo1 asc
     
  4. jpaulino

    jpaulino Power Member

    Se for numérico não funciona!

    Fica 1, 10, 11 ,12, ... , 19, 2, 21, 22, ..., 29, 3, 31
     
  5. Poiel

    Poiel Power Member

    Nao funciona porque esse campo é texto e não numerico.


    Exprimenta assim:

    Select campo1 from tabela
    order by left(campo1,1) asc, right(campo1,1) asc
     
  6. jpaulino

    jpaulino Power Member

    Tens razão enganei-me. Mas mais uma vez estás a partir de um principo que tens dois numeros apenas. E se forem 4 ou 5 caracteres ?

    Tem de ser feito algo do género:

    SELECT campo FROM tabela ORDER BY Format([campo],"00000");
     
  7. Poiel

    Poiel Power Member

    Converte o campo para um numero


    SELECT campo FROM tabela
    ORDER BY CInt(campo) ASC
     
  8. kzip

    kzip Power Member

    (queres ordem alfabética? ou ordem numérica??)
    Experimenta com o right-click do mouse, no menu de contexto escolhe o "Remove Filter/Sort".
    Se não funcionar, edita o formulário e nas priopriedades verifica o que está na propriedade de ordenação.
     
  9. Goldberg

    Goldberg Power Member

    Jpaulino e Poiel, mas igualo essa query a quê?
    Porque tipo, colocar "select compo from....." apenas não dá, e não tenho código para ir buscar os dados à BD, apenas tenha o nome do campo referente na propriedade origem de controlo.

    Kzip, não aparece essa opção, e nas propriedades do form não tem nada no campo "ordenar por"
     
  10. Goldberg

    Goldberg Power Member

    Ah, já consegui.
    Fui à propriedade "origem dos registos" do formulário e no campo cod_cli coloquei na ordenação por ascendente.
    No entanto, agradeco a todos pela disponibilidade e utilidade que me prestaram.

    Propz
     

Partilhar esta Página