... Assinatura do site por 3 anos + Kit MontaRibbons + 3 Livros em PDF + Diversas Revistas (pdf) de brinde, por apenas R$182,00
(
podendo parcelar em até 10 vezes no cartão de crédito)...

Clique aqui e obtenha mais detalhes do nosso kit completo e de como comprar.


Um apanhado dos novos recursos de Macro

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.

Vídeo


 

Faça o login aqui para ter acesso ao vídeo.


Sucesso!


 

 


31 comentário(s)

RAFAEL BATISTA DA SILVA   02/07/2009 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!!!

Fernando   03/07/2009 17:54:05

Parabéns pela iniciativa. Tenho certeza que todas essas dicas serão muito úteis para muitas pessoas.

Márcio Pavanelli   18/10/2009 19:43:39

Oi Avelino!!

Mandou bem!!

Ênio Silva   14/11/2009 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)

Luís Augusto   05/01/2010 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.

Avelino Sampaio   06/01/2010 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

Luís Augusto   06/01/2010 07:20:35

Muito Obrigado Avelino

CARLOS CRISTIANO   14/03/2010 19:13:16

PARABÉNS: estas foram as melheres explicações que eu já consequi até hoje.
Parabéns mesmo:
Um Abraço.

Stella Maris   01/05/2010 22:08:54

Muito show,
excelente aprendizado,
grata

Stella Maris   20/05/2010 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

CARLOS ALBERTO   17/07/2010 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

Jeronymo Rodrigues de Andrade Neto   27/08/2010 15:23:02

Apenas tenho que lhe dizer que virei seu fã !!!

Avelino Sampaio   28/08/2010 06:26:54

Jeronymo,

obrigado pela força

sucesso

Jacy Rosenburg   14/09/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!

jacykr@yahoo.com.br

Carlos Henrique Soares Rodrigues   05/01/2011 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

Carlos Henrique Soares Rodrigues   05/01/2011 22:38:47

Chenriquesr@bol.com.br

Juan   19/01/2011 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

Rogério   27/01/2011 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

Edson   18/07/2011 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?

Avelino Sampaio   19/07/2011 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!

MARCOS OLIVEIRA   02/04/2012 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 !!

Avelino Sampaio   02/04/2012 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,   16/04/2012 13:11:29

Muito obrigado Avelino, consegui sanar tal erro com sua ajuda.

Rogger   17/07/2012 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

Avelino Sampaio   17/07/2012 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   18/07/2012 16:46:50

Muito Obrigado Avelino.
Deu certo.

Abs
Rogger

Angelo   16/08/2012 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.

Angelo   25/08/2012 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.

MEU   19/12/2012 17:59:25

BOA

Lelson Barbosa   18/04/2013 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??

Avelino Sampaio   26/09/2016 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


Envie seu comentário: