Propósito

✔ Programação GLOBAL® - Quaisquer soluções e/ou desenvolvimento de aplicações pessoais, ou da empresa, que não constem neste Blog devem ser tratados como consultoria freelance. Queiram contatar-nos: brazilsalesforceeffectiveness@gmail.com | ESTE BLOG NÃO SE RESPONSABILIZA POR QUAISQUER DANOS PROVENIENTES DO USO DOS CÓDIGOS AQUI POSTADOS EM APLICAÇÕES PESSOAIS OU DE TERCEIROS.

.: Vitrine

Carregando artigos...

Views

Mostrando postagens com marcador interface. Mostrar todas as postagens
Mostrando postagens com marcador interface. Mostrar todas as postagens

VBA Tips - Interface de Desenvolvimento do VBA - VBE Visual Basic Editor

Inline image 1
Sim, é muito, mas muito básico...Mas necessário...

Para começar a escrever códigos VBA é necessário que conheça a interface de desenvolvimento.

Para acessar O VBE clique em 'Desenvolvedor' e depois clique no botão Visual Basic ou simplemeste pressione as teclas [ALT] + [F11] simultaneamente.

Inline image 2

O VBE possue 3 diferentes painéis:

Projeto

Propriedades

Área de Codificação

Inline image 3

Projeto: Neste painel podemos navegar por todos os elementos como os formulários, módulos classes, ... Perceba que o VBA considera cada planilha aberta como um projeto.

Como padrão o VBE agrupa objetos semelhantes dentro da mesma pasta.

Microsoft Excel Objetos: Toda planilha numa pasta de trabalho é considerado um objeto.

Formulários: A pasta formulários armazena os formulários adicionados ao projeto.

Módulos: Um módulo é um container que armazena todos os procedimentos e funcionalidades que escrevemos. Antes de começar a escrever os códigos, iniciamos inserindo um módulo.

Módulos de Classe: Módulos de classe são um tipo especial de módulo que nos permite criar os nossos próprios objetos.

Perceba que no canto superior esquerdo do painel Projeto existem 3 botões: Exibir código, Exibir Objeto e Alternar pastas.

O botão Exibir código mostra o código relacionado ao objeto selecionado no painel Projeto.

O botão Exibir Objeto acessa o objeto selecionado. Por exemplo se selecionarmos uma planilha e clicarmos no painel do Projeto e em ver objeto seremos levados automaticamente para a respectiva planilha.

O botão Alternar pastas muda a maneira como os objetos são apresentados na janela do projeto, agrupados em pastas, ou não.

É interessante perceber que se estivermos com mais de uma planilha aberta e arrastarmos Módulos, Formulários, Classes entre eles, estes são copiados automaticamente. Isso certamente economiza muito o nosso tempo.

Inline image 4

Propriedades: No Painel de Propriedades podemos alterar uma série de características dos Objetos ou Formulários. Esse painel muda de contexto de acordo com a seleção ou enquanto desenhamos um formulário as propriedades exibidas são relacionadas ao objeto manuseado no momento.

Código: A maior área é preparada para que escrevamos os nossos  códigos e/ou criemos os nossos formulários.

A área maior é onde você vai escrever seus códigos ou criar seus formulários, não tenho muito a dizer sobre ela agora, mas você vai utilizá-la e muito, em breve.

Se você ainda não sabe como inserir formulários ou módulos nos seus projetos de VBA, isso é muito tranqüilo. clique sobre o VBAProject, botão direito e insirta o objeto que desejar, é bem intuitivo. Explore bem a janela do VBE.

Inline image 5

Reference:
ExcelVBA2007.BlogSpot
Inspiration:

TagsVBA, dummy, VBE, tips, interface

MS Access – Exec Proc in ORACLE




A questão é a seguinte: Ao utilizarmos qualquer versão do MS Access (2007/2003/XP/2000/97) como interface de aplicação [front-end], acessando certas funcionalidades no banco de dados Oracle [back-end], como executo ou efetuo chamadas a uma stored procedure no Oracle (RDBMS) a partir do MS Access?

Considere: application_program_interface (member_id, provider_id, service_date)
Procedimento: Para chamar a stored procedure no Oracle, é necessário criar algum código VBA.

Antes do código VBA, precisamos de uma conexão ODBC no Windows para o seu banco de dados Oracle, usando o driver {Microsoft ODBC for Oracle}.

Para criar a conexão no Windows vá até o Painel de Controle | Data Sources ODBC e crie um novo Data Source usando o driver {Microsoft ODBC for Oracle}.

Configure a sua conexão ODBC:
Neste exemplo configuraremos o Data Source com o nome de AAAA, o usuário com o nome de BBBB, e um servidor Oracle chamado CCCC. Você precisará configurar a sua conexão ODBC com as suas próprias informações para estes parâmetros.

No exemplo abaixo chame sua stored procedure do Oracle através da application_program_interface em VBA.

No MS Access crie um novo Módulo e cole o código abaixo:
Function CallSProc() As Boolean
Dim db As Database Dim LSProc As QueryDef
On Error GoTo Err_Execute
Set db = CurrentDb()
Set LSProc = db.CreateQueryDef("")
' Utilize {Microsoft ODBC for Oracle} para a conexão ODBC LSProc.Connect = "ODBC;DSN=AAAA;UID=BBBB;PWD=DDDD;SERVER=CCCC" LSProc.SQL = "BEGIN application_program_interface; END;" LSProc.ReturnsRecords = False LSProc.ODBCTimeout = 0
LSProc.Execute
Set LSProc = Nothing
CallSProc = True
Exit Function
Err_Execute: MsgBox "A execução da Stored Procedure no Oracle falhou." CallSProc = False 
End Function

Ei! Note que você precisará customizar o seu código adequando a linha abaixo:

LSProc.Connect = "ODBC;DSN=AAAA;UID=BBBB;PWD=DDDD;SERVER=CCCC"

Isto é:

AAAA é o nome ODBC do "Data Source" que você configurou. 
BBBB é o nome do usuário que se logará no Oracle. 
CCCC é o nome do seu servidor Oracle. 
DDDD é a senha que utilizará para logar-se no Oracle.

Pode acontecer que ao tentar executar a stored procedure, receba uma mensagem similar a "not defined" error on the "Dim db as Database" declaration, neste caso precisará seguir os passos abaixo:

Na janela VBE do MS Access escolha a opção de Referências. 

Quando a janela aparecer, role para baixo até achar a opção "Microsoft DAO 3.6 Object Library", clicando a caixa e depois o botão OK. 

Agora sua aplicação MS Access reconhecerá o objeto database e a mensagem de erro desaparecerá.

Dica importante: Ao passo que é possível executar Stored Procedures do Oracle através do MS Access, não é possível recuperar informações históricas de status vindas do Oracle. Recomendo que crie uma tabela para auditoria posteriormente. Grave nela registros com informações das ações executadas através da sua interface MS Access, propiciando posteriores auditorias em seus procedimentos. Através desta solução, poderá consultar a tabela do MS Access e visualizar o status da sua stored procedure.

Stored procedure with parameters
O segundo exemplo executa uma stored procedure chamada application_program_interface com parâmetros, considere:

application_program_interface (member_id, provider_id, service_date)

Onde

member_id é um valor numérico
provider_id é um valor numérico
service_date é um valor de data

No MS Access crie um novo Módulo e cole o código abaixo:

Function CallSProc() As Boolean
Dim db As Database Dim LSProc As QueryDef Dim LSQL As String
On Error GoTo Err_Execute
Set db = CurrentDb()
Set LSProc = db.CreateQueryDef("")
' Código SQL para executar a stored procedure (com parâmetros) LSQL = "BEGIN application_program_interface (" & member_id & ", " LSQL = LSQL & provider_id & ", " LSQL = LSQL & "to_date('" & Format(service_date, "mm/dd/yyyy") & "','mm/dd/yyyy'))" LSQL = LSQL & "; END;"
' Utilize {Microsoft ODBC for Oracle} para a conexão ODBC LSProc.Connect = "ODBC;DSN=AAAA;UID=BBBB;PWD=DDDD;SERVER=CCCC" LSProc.SQL = LSQL LSProc.ReturnsRecords = False LSProc.ODBCTimeout = 0
LSProc.Execute
Set LSProc = Nothing
CallSProc = True
Exit Function
Err_Execute: MsgBox "A execução da Stored Procedure no Oracle falhou." CallSProc = False 
End Function

Ei! Não se esqueça de customizar o seu código na seguinte linha:

LSProc.Connect = "ODBC;DSN=AAAA;UID=BBBB;PWD=DDDD;SERVER=CCCC"

Isto é:

AAAA é o nome ODBC do "Data Source" que você configurou. BBBB é o nome do usuário que se logará no Oracle. CCCC é o nome do seu servidor Oracle. DDDD é a senha que utilizará para logar-se no Oracle.

Tags: VBA, Office, Access, Oracle, frontend, interface, backend, RDBMS, SGBDR, stored procedure, PROC, ODBC







diHITT - Notícias