[resolvido] Mensagem temporizada

Moderador: Avelino Sampaio

mylton
Mensagens: 48
Registrado em: 18 Jul 2015, 15:00

[resolvido] Mensagem temporizada

Mensagempor mylton » 13 Set 2017, 00:43

Boa noite
Tentei seguir sua dica sobre mensagem temporizada, porém não consegui faze-la funcionar.
A ideia é quando clicarmos numa caixa de texto apareça a msg.
Anexo um exemplo.
Obrigado.
Caixa MSG.accdb
(472 KiB) Baixado 6 vezes

Disable adblock

Precisamos do seu apoio. Faca uma doacao para o site atraves do Paypal.


Avatar do usuário
Damasceno Jr.
Mensagens: 307
Registrado em: 08 Jun 2015, 01:30
Localização: Medicilândia-Pará

Re: Mensagem temporizada

Mensagempor Damasceno Jr. » 13 Set 2017, 10:26

Tente alterar o nome da função

Como tá agora:
Código:
Public Function Mensagem(Seconds As Integer, Prompt As String, _
Optional Buttons As VbMsgBoxStyle = vbOKOnly, _
Optional Title As String) As VbMsgBoxResult
Dim wshell As Object
Set wshell = CreateObject("WScript.Shell")
MsgBoxTimer = wshell.PopUp(Prompt, Seconds, Title, Buttons)
End Function

Como deve ficar:
Código:
Public Function Mensagem2(Seconds As Integer, Prompt As String, _
Optional Buttons As VbMsgBoxStyle = vbOKOnly, _
Optional Title As String) As VbMsgBoxResult
Dim wshell As Object
Set wshell = CreateObject("WScript.Shell")
Mensagem2 = wshell.PopUp(Prompt, Seconds, Title, Buttons)
End Function

mylton
Mensagens: 48
Registrado em: 18 Jul 2015, 15:00

Re: Mensagem temporizada

Mensagempor mylton » 13 Set 2017, 15:15

Fiz a correção e apresenta erro devido a espera de variável ou procedimento, não módulo.
Em anexo.
Obrigado

Caixa MSG versão 2.accdb
(472 KiB) Baixado 8 vezes

Avatar do usuário
Damasceno Jr.
Mensagens: 307
Registrado em: 08 Jun 2015, 01:30
Localização: Medicilândia-Pará

Re: Mensagem temporizada

Mensagempor Damasceno Jr. » 13 Set 2017, 23:58

Você não fez como eu indiquei. A ideia é que você não pode usar palavras reservadas para nomear funções ou objetos dentro do VBA, e você nomeou a função como "Mensagem" (eu tinha sugerido "Mensagem2", não é o ideal, mas daria certo)...

Refiz o trecho com um nome mais apropriado, confira:

Código:
Public Function MsgBoxTemporizada(Seconds As Integer, Prompt As String, _
Optional Buttons As VbMsgBoxStyle = vbOKOnly, _
Optional Title As String) As VbMsgBoxResult
Dim wshell As Object
Set wshell = CreateObject("WScript.Shell")
MsgBoxTemporizada = wshell.PopUp(Prompt, Seconds, Title, Buttons)
End Function

Para chamar por ela, use:

Código:
MsgBoxTemporizada 2, "Teste com a caixa de mensagem...", vbOKOnly, "Aviso"

Disable adblock

Precisamos do seu apoio. Faca uma doacao para o site atraves do Paypal.


mylton
Mensagens: 48
Registrado em: 18 Jul 2015, 15:00

Re: Mensagem temporizada

Mensagempor mylton » 14 Set 2017, 19:15

Segui sua dica.
Vide anexo.
Mas...não rolou.

Caixa MSG versão 3.accdb
(780 KiB) Baixado 4 vezes

Avatar do usuário
Damasceno Jr.
Mensagens: 307
Registrado em: 08 Jun 2015, 01:30
Localização: Medicilândia-Pará

Re: Mensagem temporizada

Mensagempor Damasceno Jr. » 14 Set 2017, 23:05

rsrs... custei a entender o que estava acontecendo... mas enfim entendi.

O código está funcional, o problema é que você sempre está renomeando o módulo com o mesmo nome da função. Isso faz com que o VBA não saiba exatamente a quem o código se refere.

É necessário adotar um padrão para que não haja confusão na hora de referenciar um objeto ou função.

Sugiro assim:
Inicie o nome de tabelas com "tbl" (ex: tblFornecedores)
Inicie o nome de consultas com "cns" (ex: cnsFornecedoresLocais)
Inicie o nome de formulários com "frm" (ex: frmCadastroFornecedores)
Inicie o nome de macros com "mcr" (ex: mcrGeral)
Inicie o nome de módulos com "mod" (ex: modGeral)
Inicie o nome de classes com "cls" (ex: clsProdutos)
Inicie o nome de funções com "fnc" (ex: fncMsgBoxTemporizada)

No caso em questão o módulo se chamaria "modMsgBoxTemporizada" e a função "fncMsgBoxTemporizada"

Avatar do usuário
Damasceno Jr.
Mensagens: 307
Registrado em: 08 Jun 2015, 01:30
Localização: Medicilândia-Pará

Re: Mensagem temporizada

Mensagempor Damasceno Jr. » 14 Set 2017, 23:15

Veja como com o módulo e a função nomeados diferentes funciona redondinho
funcionamento.jpg
funcionamento.jpg (141.92 KiB) Visto 82 vezes

Avatar do usuário
Avelino Sampaio
Mensagens: 2004
Registrado em: 04 Jun 2015, 18:27
Contato:

Re: Mensagem temporizada

Mensagempor Avelino Sampaio » 15 Set 2017, 10:39

Damasceno,

vc tem talento para ensinar. Te dou os meus parabéns!!!
==================================================
Clique no link abaixo e veja um ótimo kit de ensino que tenho para você.
http://www.usandoaccess.com.br
==================================================

Avatar do usuário
Damasceno Jr.
Mensagens: 307
Registrado em: 08 Jun 2015, 01:30
Localização: Medicilândia-Pará

Re: Mensagem temporizada

Mensagempor Damasceno Jr. » 15 Set 2017, 15:22

Vindo de quem sabe muito sobre o assunto pra quem tá em processo de aprendizagem... fico muito agradecido, professor, de verdade.
Última edição por Damasceno Jr. em 15 Set 2017, 15:29, editado 1 vez no total.

Avatar do usuário
Damasceno Jr.
Mensagens: 307
Registrado em: 08 Jun 2015, 01:30
Localização: Medicilândia-Pará

Re: Mensagem temporizada

Mensagempor Damasceno Jr. » 15 Set 2017, 15:23

mylton, conseguiu fazer funcionar com as dicas?

mylton
Mensagens: 48
Registrado em: 18 Jul 2015, 15:00

Re: Mensagem temporizada

Mensagempor mylton » 15 Set 2017, 16:21

Boa tarde.
Desculpe a demora.
Mas to no plantão um no hospital e não troxe note.
Verei a manhã sem falta. E respondo.
Concordo com Avelino e c vc.
Área de saúde para entender programação...demora um pouco.
Kkk.
Obrigado e gde abs.

mylton
Mensagens: 48
Registrado em: 18 Jul 2015, 15:00

Re: Mensagem temporizada

Mensagempor mylton » 16 Set 2017, 21:55

Damasceno.
Funcionou.
Obrigado.
Resolvido.

Disable adblock

Precisamos do seu apoio. Faca uma doacao para o site atraves do Paypal.



Voltar para “Módulos VBA”

Quem está online

Usuários neste fórum: Bing [Bot] e 1 visitante