Jump to content

[Resolvido] Ordenar Dados Sim/Não


DGP_Maluco

Recommended Posts

Boas pessoal,

Então é o seguinte, eu tenho um relatório que tem estes campos:

DATA

ID

NOME

Curso1

Curso2

Curso3

Neste relatório, está defenido para aprensentar os dados por Data, ascendente.

O que eu queria era um botão por cima de cada curso que ao clickar, modifica-se a ordem de apresentação e passaria a apresentar primeiro os que tinham se inscrito no Curso, so depois listar os que não estavam.

Eu já estive a ver as opção ao clickar, que me leva a uma janela para programar em VB mas não tenho a certeza como o fazer, se alguém me puder dar uma ajuda agradecia!

Cumprimentos e obrigado desde já.

EDIT: Tudo feito só em MSACCESS

Edited by DGP_Maluco
Link to comment
Share on other sites

Não há código em VB que organize os dados? Ou outro tipo de consulta paralela que possa associar ao relatório?

Embora os relatórios não sejam apropriados para colocar botões, nem possuir interactividade com utilizador, é possivel fazê-lo.

Também não precisa inserir um botão para ordenar por colunas, se o relatório tem labels de cabeçalho.

Os labels respondem a cliques do rato através de eventos ou acontecimentos, vê nas propriedades.

Escolhe o evento ao fazer clique, e no VBA insere o código:

Private Sub RotuloDoCampo_Click()
Me.OrderByOn = True
Me.OrderBy "Campo"' ou "campo DESC" para ordem contrária
End Sub

Muda o Campo para o nome que pretendes e repete para quantos campos precisares.

Edited by FreiNando

O caminho mais curto para conseguir fazer muitas coisas é fazer uma de cada vez. Samuel Smiles

Link to comment
Share on other sites

Hmm, obrigado, contudo estou a ter erros... Primeiro, ao abrir o relatório ele abre me uma caixa para digitar a informação pela qual eu quero ordenar, não sei se fiz algo mal.

O código está assim, e depois dá-me erro, quando clico na label que criei

Private Sub Rótulo19_Click()

Me.OrderByOn = True

Me.OrderBy "Ciências Informáticas"

End Sub

Ou seja o que pus a amarelo é o que aparece também lá, e o que esta a negrito também aparece como sendo erro.. Nota que só esta seleccionado do . até o OrderBy, estarei a fazer algo mal? O "Ciências Informáticas" será o campo errado?

Obrigado desde já pela ajuda

Link to comment
Share on other sites

"Ciências Informáticas" não sei se é o campo errado, mas está contra a normalização nos nomes em Access; tem caracteres especiais e tem espaços.

Caso queiras continuar com esse nome para esse campo deves metê-lo dentro de parenteses rectos "[Ciências Informáticas]".

Por causa disso o Access mete sempre o nome de qualquer campo dentro de parenteses rectos. Principalmente quando crias consultas ou expressôes.

O caminho mais curto para conseguir fazer muitas coisas é fazer uma de cada vez. Samuel Smiles

Link to comment
Share on other sites

Continua a dar o mesmo erro, será que estou a pegar no nome do campo errado? Ja tentei [Ciências Informáticas] e [Ciências Informáticas_Rótulo]

Não sei o que possa ser porque como referi em cima mal tente entrar no relatório ele pede-me para introduzir um valor em Ciências Informáticas antes de apresentar alguma coisa, e depois de clicar na label Ordenar ele da os erros descritos acima...

É assim se tiveres tempo eu até te posso mandar o ficheiro, é pequeno só tem umas informações básicas e já entendias melhor onde dá os erros... Se puderes e tiveres tempo manda-me PM

Cumps e obrigado desde já!

Link to comment
Share on other sites

Olhando novamente para aqui tens apresentado, vejo que afinal o nomes dos campos é Curso1, Curso2, Curso3 e Ciências Informáticas é a legenda de um desses campos.Toma nota que ordenação de registos é feita indicando o nome do Campo e não a Legenda do Campo.

Troca "[Ciências Informáticas]" por "[Curso1]" ou outro campo.

O caminho mais curto para conseguir fazer muitas coisas é fazer uma de cada vez. Samuel Smiles

Link to comment
Share on other sites

Bem, eu tive que por = a seguir ao OrderBy = "[Curso1]" e já deveria de dar, só que ele ao abrir o relatório, pede-me logo um valor em Ciências Informáticas_Rótulo,

Ora bem se eu clicar Ok sem por nada, ele abre o relatório, mas depois ao clicar na label que meti o código VBA, não acontece nada...

Será que ele quer que ordene naquela caixa que me abre? Se sim que valor teria que por?

Cumprimentos e obrigado mais uma vez

Link to comment
Share on other sites

Tens isto assim

Private Sub RotuloDoCampo_Click()
Me.OrderByOn = True
Me.OrderBy "Campo"' ou "campo DESC" para ordem contrária
End Sub

Experimenta assim:

Private Sub RotuloDoCampo_Click()
rs.close
sql = "select * from tabela OrderBy Campo desc"
rs.open sql
End Sub
Edited by vbtipo

Lema: Se eu não saber de alguma coisa não se preocupem porque tento sempre ajudar alguma coisita, nem que seja, por palpites/sugestões.

Link to comment
Share on other sites

1- Nas propriedades do relatório, em Dados, apaga o valor de Ordenado por. É por causa desse texto ("Ciências Informáticas_Rótulo"), que ele te pede um valor.

2- Nos eventos dos labels Ordenar coloca o código que te indiquei. Como a propriedade Ordenar por ao carregar já está Sim , não é preciso essa linha.

Private Sub Rótulo19_Click()
   Me.OrderBy = "[Ciências Informáticas]"
End Sub

Private Sub Rótulo21_Click()
   Me.OrderBy = "[Contabilidade e Fiscalidade]"
End Sub

Private Sub Rótulo22_Click()
   Me.OrderBy = "[Comércio]"
End Sub

Nota que seria muito bom escolheres nomes para os campos sem caracteres especiais nem espaços, e evitar acima de tudo o "/",":","+" e não começar o nome de um campo com um algarismo, ou irá te trazer problemas. Segue a mesma norma da criação de variáveis em VB.

Edited by FreiNando

O caminho mais curto para conseguir fazer muitas coisas é fazer uma de cada vez. Samuel Smiles

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.