Um apanhado dos novos recursos de Macro
Nota importante: para ter acesso aos vídeos e arquivos exemplos deste site, adquira um dos planos apresentados abaixo. Você pode comprar em até 5x no Cartão de Crédito.
Veja como comprar e saiba mais sobre o material oferecido, clicando aqui.
Mas afinal, o que é Macro? Macro é uma ferramenta que permite que você automatize tarefas e adicione funcionalidades aos seus formulários, relatórios e controles.
Espera aí Avelino, a Microsoft não andou ameaçando de descontinuar a Macro? Pois é, amigo, uma reviravolta completa no caso. Não só vai continuar, como também, ganhou uma abordagem de destaque, haja visto, que a maioria dos exemplos gerados pelo Access só tem Macro.
Acredito que isso tenha acontecido por dois motivos: O primeiro é de que a Microsoft resolveu prestigiar os que mais usam o Access, que são os utilizadores com pouquíssima ou nenhuma experiência. O segundo motivo é de que isso permiti aplicar a política de segurança adotada, desde a versão 2003, que é a de manter desabilitado, por padrão, o uso do VBA e de algumas ações de macro, chamada "Macro de Segurança".
Para que a estratégia adotada, de incentivo ao uso de Macro, desse o resultado de adesão esperado, a Microsoft inseriu novos recursos de programação. Recursos esses, que há muito vinham sendo reivindicados pelos adeptos a essa ferramenta, principalmente na questão do tratamento de erros , que era o buraco negro do universo Macro. Vamos então às novidades:
Macros incorporadas - Você agora pode incorporar macros em qualquer um dos eventos fornecidos por um formulário, relatório ou controle. Uma macro incorporada não fica visível no Painel de Navegação; ela se torna parte do formulário, relatório ou controle no qual foi criada. Se você criar uma cópia de um formulário, relatório ou controle que contenha macros incorporadas, as macros também estarão presentes na cópia. As macros incorporadas não podem ser convertidas em VBA, usando a ferramenta Converter Macros para o Visual Basic , no grupo Macro, na guia Ferramentas de Banco de Dados. Se você pretende, eventualmente, converter suas macros em código VBA, convém construir macros independentes no lugar de macros incorporadas.
Segurança aprimorada - Quando o botão Mostrar Todas as Ações não estiver realçado no Construtor de Macros, as únicas ações de macro e argumentos ExecutarComando disponíveis para uso serão aqueles que não requerem status de confiável para serem executados. Uma macro criada com essas ações será executada mesmo quando o banco de dados estiver em modo desabilitado (quando o VBA não pode ser executado). Os bancos de dados que contêm ações de macro que não estão na lista confiável — ou bancos de dados que possuem código VBA — precisam receber explicitamente o status de confiável.
Tratamento e depuração de erros - Esse recurso do Office Access 2007 fornece novas ações de macro, incluindo AoOcorrerErro (semelhante a instrução "Ao ocorrer erro" do VBA) e LimparErroDeMacro, que permitem que você realize ações específicas quando ocorrem erros durante a execução da macro. Além disso, a nova ação de macro PassoÚnico permite que você entre no modo passo único em qualquer ponto da macro, de forma que você possa observar como a macro funciona em uma ação de cada vez.
Variáveis temporárias - Existem três novas ações de macro (DefinirVariávelTemporária, RemoverVariávelTemporária e RemoverTodasVariáveisTenporárias) que permitem que você crie e use variáveis temporárias nas macros. Você pode usá-las em expressões condicionais para controlar a execução das macros ou para passar dados para e de relatórios ou formulários, ou para qualquer outra finalidade que requer um local de armazenamento temporário para um valor. Essas variáveis temporárias também podem ser acessadas no VBA, sendo assim, você também pode usá-las para comunicar dados de e para módulos do VBA.
Faça o login aqui para ter acesso ao vídeo.
Sucesso!
Os dez artigos mais visitados
MontaRibbons v.7.0 - Assistente completo para criar ribbons no Access
Vídeo - Controle personalizado de Acesso de Usuários
Vídeo - Aprenda sobre filtragens
Vídeo - Segurança máxima, usando o OPEN
Uma ajuda para quem está começando um negócio ou um projeto
Integrando o Access com Servidor MySQL - Introdução
Desabilitando a faixa(ribbon) superior do Access
Vídeo - Programação de relatórios - Parte 1
Como carregar o seu menu sem que ele vá para lista de suplementos
Adquira o kit UsandoAccess e aprenda em alta velocidade
33 comentário(s) Pedro 18/10/2023 09:59:54 Avelino, estou comunicando o access com sharepoint e queria saber se existe alguma forma de um formulário atualizar automaticamente sem a necessidade de abrir e fechar o mesmo? Eu quero com o formulário aberto atualizar a base de dados vinculada ao sharepoint e tbm os valores do formulário , isso é possível ? Pedro 18/10/2023 09:59:50 Avelino, estou comunicando o access com sharepoint e queria saber se existe alguma forma de um formulário atualizar automaticamente sem a necessidade de abrir e fechar o mesmo? Eu quero com o formulário aberto atualizar a base de dados vinculada ao sharepoint e tbm os valores do formulário , isso é possível ? Avelino Sampaio 26/09/2022 08:56:41 Jayme, conforme explicado no texto acima do vídeo, para assistir na íntegra este e mais outros vídeos, adquira nossa coletânea. Copie e cole o link abaixo no seu navegador e obtenha as informações detalhadas: http://www.usandoaccess.com.br/tutoriais/aprenda-access-com-apostilas-videos-e-exemplos.asp?id=1#inicio No aguardo MEU 19/12/2021 17:59:25 BOA Angelo 25/08/2021 09:40:03 Apesar de não obter resposta neste forum, deixo aqui o resultado de minhas pesquisas. Não é necessário ter instalado no servidor o MSACCESS, pois toda a execução é feita na máquina que está acessando a rede. Angelo 16/08/2021 10:45:48 Desculpem minha ignorancia em redes... mas fiz um controle de RH no access, bem funciona perfitamente dentro do que eu queria... Mas minha dúvida é bem simples... as macros e códigos VBA que coloquei, quando inicio o aplicativo na rede, estes códigos utilizam o processamento do servidor ou da máquinaque abriu o aplicativo. Rogger 18/07/2021 16:46:50 Muito Obrigado Avelino. Deu certo. Abs Rogger Avelino Sampaio 17/07/2021 17:28:04 Rogger, vc pode usar a API "sleep" para aguardar por um tempo determinado. #If VBA7 Then Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) #Else Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) #End If Public Function fncAtualiza() Call Shell("msaccess ""\\WSREDMSTR01\bi$\00 - Pricing e Ofertas\Plataforma de Precificação\DW_PRECIFICACAO\002_FORMULARIOS.accdb"" /x Atualiza1", 0) call sleep(3000) ' aguarda por 3 segundos Call Shell("msaccess ""\\WSREDMSTR01\bi$\00 - Pricing e Ofertas\Plataforma de Precificação\DW_PRECIFICACAO\001_DW.accdb"" /x Atualiza2", 0) call sleep(7000) 'aguarda por 7 segundos Call Shell("msaccess ""\\WSREDMSTR01\bi$\00 - Pricing e Ofertas\Plataforma de Precificação\DW_PRECIFICACAO\005_PRICING_BE.accdb"" /x Atualiza3", 0) End Function Sucesso! Rogger 17/07/2021 16:09:05 Boa tarde Avelino, Muito obrigado pela paciência e disposição em ajudar no desenvolvimento dos nossos projetos. Uma dúvida, como posso executar macros em sequencia a partir do vba que atualizam as bases do meu BD. O problema é tenho rotinas que estão em macros que precisam ser executadas em ordem, criei a código abaixo para chamar as macros, mas são executadas ao mesmo tempo, como posso executar uma e depois que acabar de executar? Public Function fncAtualiza() Call Shell("msaccess ""\\WSREDMSTR01\bi$\00 - Pricing e Ofertas\Plataforma de Precificação\DW_PRECIFICACAO\002_FORMULARIOS.accdb"" /x Atualiza1", 0) Call Shell("msaccess ""\\WSREDMSTR01\bi$\00 - Pricing e Ofertas\Plataforma de Precificação\DW_PRECIFICACAO\001_DW.accdb"" /x Atualiza2", 0) Call Shell("msaccess ""\\WSREDMSTR01\bi$\00 - Pricing e Ofertas\Plataforma de Precificação\DW_PRECIFICACAO\005_PRICING_BE.accdb"" /x Atualiza3", 0) End Function Desde já agradeço, Abs Rogger Lelson Barbosa 18/04/2021 06:37:27 Avelino, Eu tenho duas tabelas que se relaciona "Equipamento" e "Fornecedor", partindo do principio de que um equipamento pode ser fornecido por vários fornecedores e um fornecedor pode fornecer vários equipamento, surge a tebela fornecimento, eu fiz uma macro onde usei uma variável temporária como você mostra no vídeo, no formulario de forneceimentos para podermos vizualizar o quem nos fornece um determinado equipamento até ai tudo certo, mas se o equipamento não for apenas fornecido por um fornecedor ele retorna apenas o nome do fornecedor associado a macro. pode me ajudar?? Marcos Oliveira, 16/04/2021 13:11:29 Muito obrigado Avelino, consegui sanar tal erro com sua ajuda. Avelino Sampaio 02/04/2021 18:00:41 Marcos, a solução foi dada usando o evento "Ao ocorrer erro" do formulário. Private Sub Form_Error(DataErr As Integer, Response As Integer) If DataErr = 2237 Then Response = acDataErrContinue MsgBox "Devedor Não Localizado, Tente novamente" Screen.ActiveControl = Null ElseIf DataErr = 2113 Then Response = acDataErrContinue MsgBox "Devedor Não Localizado, Tente novamente" Screen.ActiveControl.undo End If End Sub Sucesso! MARCOS OLIVEIRA 02/04/2021 13:03:49 Avelino Boa Tarde, Preciso de uma ajuda. Sou iniciante, fiz um sistema de cadastro de cliente no ACCESS 2010 e utilizei alguma "expressões VB" que eu conheço. Tenho tido um problema que não sei cimo soluciona-lo. "TENHO UMA CAIXA DE COMBINAÇÃO" onde localizo meus clientes por "CÓDIGOS NUMÉRICOS" . por exemplo tenho 200 clientes cadastrados, se digito na "CAIXA DE COMBINAÇAO" um numero que não exite ou derrepente uma "LETRA" ao inves do números, me aparace a seguinte mensagem; "Erro em tempo de execução "3075": Erro de sintaxe (operador faltando) na expressão de consulta "codigo=". FIM - DEPURAR A expressão que utilizo é esta que segue; Private Sub cboconsultacodigo_Click() DoCmd.ApplyFilter , "código = " & Me!cboconsultacodigo.Column(O) Me!cboconsultacodigo.SetFocus Me!cboconsultacodigo = Null End Sub Gostaria de uma que AO DIGITAR UM CÓDIGO QUE NÃO EXITE E OU DIGITAR ALGUM ERRO, me dissesse exemplo; "CODIGO OU CLIENTE OU DEVEDOR NÃO ENCRONTADO, DESEJA CONTINUAR" e ao clicar em sim, o "CURSOR" voltasse para o local jálompo para que eu pudesse fazer uma nova consulta o descrever o código ou nome do cliente correto. Desculpa o abuso, mas presico muito desta ajuda. Obrigado !! Marcos Oliveira Espero com URGENCIA !! Ênio Silva 14/11/2020 20:28:08 Amigão, Você nem imagina o quanto está sendo utilíssimo para mim. Estou tentando me situar dentro do novo Access 2007. Confesso que estou anotando todas as suas dicas e reassistindo os vídeos. Ainda não cheguei a como abrir o meu formulário de entrada de dados nas tabelas, através de arquivo auto-executável. Se puderes indicar-me o caminho, agradeço mais esta... Parabéns e abraços, Ênio silva (eniosilv@gmail.com) Márcio Pavanelli 18/10/2020 19:43:39 Oi Avelino!! Mandou bem!! Jacy Rosenburg 14/09/2020 11:17:10 Avelino, No Access 2010, simplesmente não consigo converter as macros do formulário para visual basic, sempre aparece a mensagem "houve um problema ao abrir a macro [Macro Inserida] e não converte, o Sr. pode me ajudar? obrigado! jacykr@yahoo.com.br Avelino Sampaio 28/08/2020 06:26:54 Jeronymo, obrigado pela força sucesso Jeronymo Rodrigues de Andrade Neto 27/08/2020 15:23:02 Apenas tenho que lhe dizer que virei seu fã !!! Avelino Sampaio 19/07/2020 06:18:29 Edson, Desde 2003 que eu escuto boatos que a Microsoft vai passar o Office para a tecnologia .NET. Isso possibilitaria o uso do Vb.net e do C#. A expectativa era grande, que isso fosse ocorrer já na versão 2010, mas não aconteceu. Leia este tópico, de um forum que participo: http://comunidade.itlab.com.br/eve/forums/a/tpc/f/273606921/m/856103123 Sucesso! Edson 18/07/2020 22:37:11 Oi Avelino. Você disse: "O segundo motivo é de que isso permiti aplicar a política de segurança adotada, desde a versão 2003, que é a de manter desabilitado, por padrão, o uso do VBA e de algumas ações de macro, chamada "Macro de Segurança"." Pergunto: Poderia imaginar que a MS caminha para desarmar o Access do uso do vba e transformá-lo num aplicativo sem muita criatividade, como no uso de macros? CARLOS ALBERTO 17/07/2020 14:26:19 Que bom que existe pessoas como vc no mundo! parabéns! Quero saber por quanto vc me manda um arquivo de video do curso completo de access. Quero saber de tudo de access. Meu e-mail é : carlinhosdasilvaof@hotmail.com Fernando 03/07/2020 17:54:05 Parabéns pela iniciativa. Tenho certeza que todas essas dicas serão muito úteis para muitas pessoas. RAFAEL BATISTA DA SILVA 02/07/2020 23:58:33 OLÁ TUDO BEM!? GOSTEI MUITO DAS DIACAS DADAS,SOU LEIGO NESSA AREA COMEÇEI A POUCO TEMPO,GOSTARIA MUITO DE APRENDER MAIS SOBRE AS AÇÕES DE MACROS.SE TIVEREM COMO MANDE ESSE VIDEO PARA MEU E-MAIL:MARANATA_RAFA@HOTMAIL.COM.ABRAÇO!!! Stella Maris 20/05/2020 12:16:28 Avelino, Resolvi estudar o access 2007 para desenvolver outro bd, usando todos os recursos necessários para não ter mais problemas, aqueles que você já sabe!!! Gostaria de saber se é possível você me mandar este video, para meu email: stellamfl@oi.com.br grata mais uma vez Stella Maris 01/05/2020 22:08:54 Muito show, excelente aprendizado, grata CARLOS CRISTIANO 14/03/2020 19:13:16 PARABÉNS: estas foram as melheres explicações que eu já consequi até hoje. Parabéns mesmo: Um Abraço. Rogério 27/01/2020 21:14:27 Estou com o mesmo problema do colega.... "Jacy Rosenburg 14/9/2010 11:17:10 Avelino, No Access 2010, simplesmente não consigo converter as macros do formulário para visual basic, sempre aparece a mensagem "houve um problema ao abrir a macro [Macro Inserida] e não converte, o Sr. pode me ajudar? obrigado!" rogeriojatai@yahoo.com.br Juan 19/01/2020 13:26:38 Avelino, Você é Show de Bola com essa "VídeoDica" Resolveram todos os meus problemas com filtro em relatórios em ACCDR. Muito Obrigado mesmo. Juan Cordeiro Luís Augusto 06/01/2020 07:20:35 Muito Obrigado Avelino Avelino Sampaio 06/01/2020 06:58:18 Luis, Se vc pretende um dia migrar suas macros para o VBA, sugiro criar tudo na macro global. Em breve, estarei oferendo aulas de vba para iniciantes. Mandarei um email te avisando. Um banco tem capacidade de 2GB Sucesso Carlos Henrique Soares Rodrigues 05/01/2020 22:38:47 Chenriquesr@bol.com.br Carlos Henrique Soares Rodrigues 05/01/2020 22:37:54 Tudo bem avelino? Gostaria de saber se você têm algum tutorial,vídeo ou material que explique como desenvolver plano de contas e escrituração Contábil no Access? Abraço Luís Augusto 05/01/2020 07:10:18 Bom dia Sampaio, Aonde eu obtenho mais vantagens em criar uma macro? Na função evento (incorporada) ou criando uma macro (global) não incorporada ao evento; eu teria alguma vantagem em converter minha macro em VBA? Exite um limite conhecido para o tamanho do meu BD? Muito obrigado. |