DGP_Maluco Posted July 20, 2012 at 09:35 AM Report Share #469335 Posted July 20, 2012 at 09:35 AM (edited) 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 July 26, 2012 at 01:03 PM by DGP_Maluco Link to comment Share on other sites More sharing options...
DGP_Maluco Posted July 23, 2012 at 08:58 AM Author Report Share #469718 Posted July 23, 2012 at 08:58 AM Acho que posso fazer um UPzinho ao tópico? Cumps Link to comment Share on other sites More sharing options...
vbtipo Posted July 23, 2012 at 10:38 AM Report Share #469731 Posted July 23, 2012 at 10:38 AM tens que utilizar o sql. 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 More sharing options...
DGP_Maluco Posted July 23, 2012 at 10:46 AM Author Report Share #469734 Posted July 23, 2012 at 10:46 AM Não há código em VB que organize os dados? Ou outro tipo de consulta paralela que possa associar ao relatório? Link to comment Share on other sites More sharing options...
FreiNando Posted July 23, 2012 at 12:52 PM Report Share #469746 Posted July 23, 2012 at 12:52 PM (edited) 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 July 23, 2012 at 12:53 PM 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 More sharing options...
DGP_Maluco Posted July 23, 2012 at 01:49 PM Author Report Share #469757 Posted July 23, 2012 at 01:49 PM 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 More sharing options...
FreiNando Posted July 23, 2012 at 08:59 PM Report Share #469818 Posted July 23, 2012 at 08:59 PM "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 More sharing options...
DGP_Maluco Posted July 24, 2012 at 09:28 AM Author Report Share #469924 Posted July 24, 2012 at 09:28 AM 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 More sharing options...
FreiNando Posted July 24, 2012 at 01:11 PM Report Share #469979 Posted July 24, 2012 at 01:11 PM 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 More sharing options...
DGP_Maluco Posted July 24, 2012 at 01:21 PM Author Report Share #469982 Posted July 24, 2012 at 01:21 PM 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 More sharing options...
vbtipo Posted July 24, 2012 at 03:31 PM Report Share #470041 Posted July 24, 2012 at 03:31 PM (edited) 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 July 24, 2012 at 03:32 PM 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 More sharing options...
DGP_Maluco Posted July 24, 2012 at 03:40 PM Author Report Share #470042 Posted July 24, 2012 at 03:40 PM Hmm rs.Close Erro ai, object required? E ao abrir continua a pedir para introduzir um valor, não sei de onde isto apareceu Link to comment Share on other sites More sharing options...
FreiNando Posted July 24, 2012 at 08:24 PM Report Share #470115 Posted July 24, 2012 at 08:24 PM O melhor será fazeres upload do ficheiro sem informações confidênciais e partilhar a ligação. O caminho mais curto para conseguir fazer muitas coisas é fazer uma de cada vez. Samuel Smiles Link to comment Share on other sites More sharing options...
DGP_Maluco Posted July 25, 2012 at 08:47 AM Author Report Share #470196 Posted July 25, 2012 at 08:47 AM Obrigado, aqui fica, não tem nada de pessoal https://www.dropbox.com/s/1s8olf5c2gchiz5/Inscri%C3%A7%C3%B5es.accdb Obrigado mais uma vez Link to comment Share on other sites More sharing options...
FreiNando Posted July 25, 2012 at 09:06 PM Report Share #470351 Posted July 25, 2012 at 09:06 PM (edited) 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 July 25, 2012 at 09:11 PM 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 More sharing options...
DGP_Maluco Posted July 26, 2012 at 10:46 AM Author Report Share #470400 Posted July 26, 2012 at 10:46 AM (edited) Muito obrigado! Já esta a funcionar. Perfeito 🙂 Edited July 26, 2012 at 10:48 AM by DGP_Maluco Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now