Executando uma instrução INSERT, DELETE ou UPDATE SQL dentro do VBA

Publicado em 27/10/2017 | (0) comentários

O VBA possui nativo várias funções que executam operações prontas de obtenção (SELECT) de dados, podendo estas funções somar, obter, contar valores de um campo em uma tabela com determinado critério. Estas funções nativas do VBA basicamente são: DLOOKUP, DCOUNT, DSUM, etc, porém, para executar operações de modificação (INSERT, DELETE, UPDATE) nos registros, é necessário criar instruções em SQL agregada ao VBA.

Criando uma instrução SQL dentro do VBA

Para criar a instrução SQL dentro do VBA basta utilizar o comando:

CurrentDb.execute()

Este comando executa uma instrução SQL no banco de dados atual. A maneira correta de se declarar a instrução é declarando uma variável que define o banco desejado (pois é possível executar esta ação em um banco externo) e a função execute

Dim banco As DAO.Database
Set banco = CurrentDb
banco.Execute ("AQUI VAI O SQL")

Dentro do argumento EXECUTE, deverá ser colocado o SQL.

Exemplo prático

No exemplo abaixo iremos realizar um INSERT na tabela cad_pessoa, inserindo nas colunas dataRegistro, ativo e nome. Cada um destes campos conterá um conteúdo diferente e deve ser declarado corretamente dentro do SQL:

CampoTipo de conteúdoOrigem do valor
dataRegistroData (Date)Valor dinâmico, informado através da função Now() do VBA. A data deve ser envolvida com aspas simples e hashtag.
ativoNúmero (Integer)Valor fixo. No caso é o número 1. Números podem ser declarados sem aspas dentro do SQL
nomeTexto (String)

Valor coletado a partir de um campo no formulário. O campo se chama txtNome. Como o campo é texto, deve ser envolvido com aspas simples dentro do SQL.

A instrução SQL ficará da seguinte maneira:

banco.Execute ("INSERT INTO cad_pessoa (dataRegistro, ativo, nome) VALUES  ('#" & Now() & "#', 1, " & Nz(Me.txtNome.value) & ")")

No código acima, o trecho em cinza corresponde ao corpo da declaração da função EXECUTE. Os trechos em azul correspondem ao SQL e os trechos em vermelho são declarações VBA. Concatene o valor de origem VBA com SQL através do símbolo &, lembrando de fechar e abrir com aspas duplas. 

Categoria: access vba sql