O MS Access é tão flexível e dinâmico, que nos permite facilidades criativas inimagináveis. Bem, agora são imagináveis. Veja a seguir...
Antigamente, a dois ou três anos atrás, quando desejávamos alterar uma query que não servia mais aos nossos propósitos, usávamos a velha técnica de apagá-la, criando uma nova com os comandos SQL que desejávamos.
De fato, isso não causava grandes transtornos dentro do banco de dados, uma vez que não ocorresse excessivamente, transformando-se numa ação de processamento paralelo. Mas (sempre há um mas), se esta ação fosse constante e requeresse processamento contínuos, essa técnica não se aplicaria tão bem, trazendo transtornos tais como a corrupção do banco, dependendo do tipo de código SQL que estivermos gerando.
A versão do MS Access 2013 permiti-nos aplicar uma técnica mais simples, avançada, e eficiente. Esta não trará quaisquer transtornos e tão trará morosidade as nossas aplicações.
Qual o segredo?
Reflitamos um pouco:
Uma query nada mais é do que mais um objeto dentro do banco de dados.Ao alinharmos esse conceito básico, podemos começar a ter ideias. Por exemplo, todo objeto é composto por propriedades.
O código que compõe o objeto é, de certo modo, parte das suas propriedades. E se pudermos trocar o valor da propriedade?
Sim, podemos fazer isso. Como?
Execute as seguintes funcionalidades:
Dim nSQL01 as String
Let nSQL01 = "Select * from Tbl_Bernardes"
' Criando a query fisicamente.'Call ShowProcess ("Criando a query fisicamente: 'qry_01_Bernardes'", nSQL01) ' Essa função mostra uma mensagem na tela.Call UpdateQuery ("qry_01_Bernardes", nSQL01)Sub UpdateQuery (QueryName, SQL)' Author: André Luiz Bernardes - Bernardess@gmail.com.' Date: 22/01/2013 - 09:30.' Application: Bernardess Application' Functionality: Criando fisicamente uma query.
' Usa o nome e a String SQL, caso a query não exista altera o conteúdo dela.If IsNull(DLookup("Name", "MsysObjects", "Name='" & QueryName & "'")) Then'' cria-a ...CurrentDb.CreateQueryDef QueryName, SQLElse'' Caso contrário, altera o seu conteúdo.Let CurrentDb.QueryDefs(QueryName).SQL = SQLEnd IfEnd Sub
Simples e limpo! Divirta-se.
Tags: VBA, Excel, SQL, query, queries, generate, dynamic, statements, Access 2013,
Nenhum comentário:
Postar um comentário