Usuário com melhor resposta
Como abrir os meus formulários listados em uma ListBox do access?

Pergunta
-
Boa tarde prezados colegas.
Eu tenho uma pequena aplicação feita em Access, no formulário principal do sistema coloquei uma Caixa de Listagem (ListBox) com todos os nomes dos formulários, quero cada nome corresponda a um formulário no sistema, e quando este nome for clicado na listbox por duplo clik ele abre o formulário correspondente.
alguém me ajuda a fazer isto?
Obrigado a todos que me poderem ajudar a solucionar a situação.
Daniel Rosa Iniciante de programação em vb.net, linq sql e Sql server
Respostas
-
Olá Daniel
Primeiro você deve acessar a folha de propriedades do listbox (Apertando F4 ou botão direito-> proriedadades).
Na guia 'evento', quando você clicar no evento 'ao clicar duas vezes', aparecerá um botão com reticências, clique nesse botão e depois selecione o construtor de código.
Você será levado ao editor do visual basic e aparecerá o código conforme abaixo:
Private Sub Lista0_DblClick(Cancel As Integer) End Sub
Dentro desse bloco de código você irá utilizar o método para abertura de formulários 'docmd.openform', cuja referência você encontra no link abaixo:
https://msdn.microsoft.com/pt-br/library/office/ff820845.aspx
Um dos argumentos do método 'docmd.openform' é o nome do formulário que você deseja abrir. O nome do formulário estará representado pelo elemento ativo na listbox, que é acessado através da propriedade listindex, cuja referência você encontra abaixo
https://msdn.microsoft.com/pt-br/library/office/aa196331(v=office.11).aspx
Não se esqueça de popular a listbox com o nome exato dos formulários
Vai ficar algo parecido com isto:
Private Sub Lista0_DblClick(Cancel As Integer) DoCmd.OpenForm Lista0.ListIndex End Sub
Espero que ajude !
- Sugerido como Resposta André Santo quarta-feira, 14 de outubro de 2015 13:46
- Marcado como Resposta danielbeneditorosa quarta-feira, 14 de outubro de 2015 13:59
-
Bom dia,
O listindex retorna a posição do valor selecionado.
Então na verdade, para recuperar o valor daquela posição você deve usar a propriedade list, que tem dois parametros, linha e coluna
ficaria por exemplo
lista0.list(lista0.listindex, 0)
onde lista0.listindex é a posição do valor selecionado, exemplo , 0 ou 1, e o 0 é a coluna 0
- Marcado como Resposta danielbeneditorosa terça-feira, 20 de outubro de 2015 11:56
-
Seu listbox só tem uma coluna ?
De um Msgbox em lista2,list(lista2.listindex, 0) e me diga se apareceu o nome do formulário
- Marcado como Resposta danielbeneditorosa terça-feira, 20 de outubro de 2015 11:56
-
é um comando que você escreve na programação
Msgbox lista2,list(lista2.listindex, 0)
Antes da instrução de abrir o formulário.
- Marcado como Resposta danielbeneditorosa terça-feira, 20 de outubro de 2015 11:56
-
Oi Daniel, pode hospedar no One Drive e poste aqui o link que dou uma olhada.
- Marcado como Resposta danielbeneditorosa terça-feira, 20 de outubro de 2015 11:57
-
Daniel,
Mandei o bd corrigido no seu email.
Na verdade no access utiliza-se ITEMDATA ao invés de LIST.
Só uma observação, alguns dos seus formulários não correspondem ao nome que você carregou na listbox, então não vai funcionar até você equalizar as duas nomenclaturas.
Abs
- Marcado como Resposta danielbeneditorosa terça-feira, 20 de outubro de 2015 11:56
-
Acho uma boa idéia..
Testa e veja se dá certo !
Abs
- Marcado como Resposta danielbeneditorosa terça-feira, 20 de outubro de 2015 11:55
Todas as Respostas
-
Olá Daniel
Primeiro você deve acessar a folha de propriedades do listbox (Apertando F4 ou botão direito-> proriedadades).
Na guia 'evento', quando você clicar no evento 'ao clicar duas vezes', aparecerá um botão com reticências, clique nesse botão e depois selecione o construtor de código.
Você será levado ao editor do visual basic e aparecerá o código conforme abaixo:
Private Sub Lista0_DblClick(Cancel As Integer) End Sub
Dentro desse bloco de código você irá utilizar o método para abertura de formulários 'docmd.openform', cuja referência você encontra no link abaixo:
https://msdn.microsoft.com/pt-br/library/office/ff820845.aspx
Um dos argumentos do método 'docmd.openform' é o nome do formulário que você deseja abrir. O nome do formulário estará representado pelo elemento ativo na listbox, que é acessado através da propriedade listindex, cuja referência você encontra abaixo
https://msdn.microsoft.com/pt-br/library/office/aa196331(v=office.11).aspx
Não se esqueça de popular a listbox com o nome exato dos formulários
Vai ficar algo parecido com isto:
Private Sub Lista0_DblClick(Cancel As Integer) DoCmd.OpenForm Lista0.ListIndex End Sub
Espero que ajude !
- Sugerido como Resposta André Santo quarta-feira, 14 de outubro de 2015 13:46
- Marcado como Resposta danielbeneditorosa quarta-feira, 14 de outubro de 2015 13:59
-
-
Ola André!
fiz exactamente como descreveste os passos, mas ao executar ele da uma mensagem de erro
Private Sub Lista0_DblClick(Cancel As Integer)
DoCmd.OpenForm Lista0.ListIndex
End Submas ao executar da uma mensagem de erro: o nome de formulario '0' esta mal escrito ou refere-se a um formulario que não existe.
como faço para contornar isto? onde devo corrigir esta informação?
Obrigado
Daniel Rosa Iniciante de programação em vb.net, linq sql e Sql server
-
Bom dia,
O listindex retorna a posição do valor selecionado.
Então na verdade, para recuperar o valor daquela posição você deve usar a propriedade list, que tem dois parametros, linha e coluna
ficaria por exemplo
lista0.list(lista0.listindex, 0)
onde lista0.listindex é a posição do valor selecionado, exemplo , 0 ou 1, e o 0 é a coluna 0
- Marcado como Resposta danielbeneditorosa terça-feira, 20 de outubro de 2015 11:56
-
Boa tarde André!
Obrigado pela resposta, mas continua não funcionando, fiz assim, mas da erro:
Private Sub Lista2_DblClick(Cancel As Integer)
DoCmd.OpenForm Lista2.List(Lista2.ListIndex, 0)
End Sub
da este erro: Method or data member not foud
não sei porque!
obrigado
Daniel Rosa Iniciante de programação em vb.net, linq sql e Sql server
-
Seu listbox só tem uma coluna ?
De um Msgbox em lista2,list(lista2.listindex, 0) e me diga se apareceu o nome do formulário
- Marcado como Resposta danielbeneditorosa terça-feira, 20 de outubro de 2015 11:56
-
-
é um comando que você escreve na programação
Msgbox lista2,list(lista2.listindex, 0)
Antes da instrução de abrir o formulário.
- Marcado como Resposta danielbeneditorosa terça-feira, 20 de outubro de 2015 11:56
-
Continua o erro,
erro: Sub or Function not defined
Private Sub Lista4_DblClick(Cancel As Integer)
MsgBox Lista4, list(Lista4.ListIndex, 0)
'DoCmd.OpenForm Lista4.ListIndex
End SubDaniel Rosa Iniciante de programação em vb.net, linq sql e Sql server
-
Olá André, Bom dia!
Desculpa, fiquei sem internet por isso não voltei, mas não funcionou, tentei todas as possibilidades e não consegui.
Posso te enviar o arquivo por email e dares uma olhada? pode ser que tenha alguma coisa que eu esteja a fazer errado sem perceber, é um arquivo access.
o meu email é danielbeneditorosa@hotmail.com
Obrigado..
Daniel Rosa Iniciante de programação em vb.net, linq sql e Sql server
-
Oi Daniel, pode hospedar no One Drive e poste aqui o link que dou uma olhada.
- Marcado como Resposta danielbeneditorosa terça-feira, 20 de outubro de 2015 11:57
-
Boa tarde e Obrigado André santo,
Segue o Link da partilha:
https://onedrive.live.com/redir?resid=6B07412E4CBE11E4!306&authkey=!AMGidQjNN3VmwW8&ithint=file%2caccdb
Tem um formulário com o nome formulário principal, e é nele que vou chamar os demais formulários.
qualquer duvida to aqui, fico atento ao seu sinal, e também quero que o formulário principal seja o primeiro a ser aberto..
Daniel Rosa Iniciante de programação em vb.net, linq sql e Sql server
-
Daniel,
Mandei o bd corrigido no seu email.
Na verdade no access utiliza-se ITEMDATA ao invés de LIST.
Só uma observação, alguns dos seus formulários não correspondem ao nome que você carregou na listbox, então não vai funcionar até você equalizar as duas nomenclaturas.
Abs
- Marcado como Resposta danielbeneditorosa terça-feira, 20 de outubro de 2015 11:56
-
Obrigado André,
Recebi o arquivo que enviaste.
Obrigado pela observação, na verdade vou alterar, vou criar uma tabela e nela cadastrar todos os formulários, e popular o listbox com os formulários cadastrados na tabela formulários.
pode ser?
Vou testar o sistema assim que chegar em casa daqui 2h.
Daniel Rosa Iniciante de programação em vb.net, linq sql e Sql server
-
Acho uma boa idéia..
Testa e veja se dá certo !
Abs
- Marcado como Resposta danielbeneditorosa terça-feira, 20 de outubro de 2015 11:55
-
Olá André!
Muito obrigado, ficou resolvido e funcionou, muito obrigado.
Depois posto o código para também poder ajudar outras pessoas que tiverem o mesmo problema.
Mais uma vez, obrigado.
Daniel Rosa Iniciante de programação em vb.net, linq sql e Sql server
-
Bom dia André .
para aqueles que tiverem o mesmo problema, o meu ficou resolvido da seguinte maneira:
DoCmd.OpenForm ListaFormularios1.ItemData(ListaFormularios1.ListIndex)
este é o código final, fornecido pelo Andre e eu adaptei, funcionou perfeitamente.
mais uma vez muito obrigado André e ao Forum
Daniel Rosa Iniciante de programação em vb.net, linq sql e Sql server