Reconhecer alguns dos objectos VBA Automatizar bases de dados recorrendo à programação VBA e scripts SQL



Documentos relacionados
Deverá ser apresentada uma caixa de combinação para auxiliar o utilizador a escolher o distrito de residência do entrevistado.

Noções básicas sobre macros no Access 97. Construção de algumas macros simples. Noções básicas sobre procedimentos VBA no Access 97

Iniciar o Data Adapter Configuration Wizard. Toolbox Data Duplo clique em OleDbDataAdapter. Botão next na caixa de diálogo

10. Acessando o Banco de Dados através do Visual Basic

Ficha prática nº 7. SGBD Microsoft Access e SQL Server

VBA e Access Modo de interacção

Manual de Administração Intranet BNI

COMPETÊNCIAS BÁSICAS EM TIC NAS EB1

Tarefa Orientada 6 Edição de Dados

Tarefa Orientada 2 Criar uma base de dados

A VISTA BACKSTAGE PRINCIPAIS OPÇÕES NO ECRÃ DE ACESSO

Findo o processo de normalização, obtemos o conjunto de tabelas indicado na tabela 1.28.

Facturação Guia do Utilizador

OBJECTIVO Utilização da Função ProcV e listas pendentes

5 - Se o documento estiver completo, com os campos totalmente inseridos e com o aspecto que pretende, poderá guardá-lo.

ZS Rest. Manual Profissional. BackOffice Mapa de Mesas. v2011

MICROSOFT ACCESS MICROSOFT ACCESS. Professor Rafael Vieira Professor Rafael Vieira

Aleph Manual de utilização do módulo de circulação e empréstimos

ZSRest. Manual de Configuração. Serviço de Entregas. V2011-Certificado

Excel - VBA. Macrocomandos (Macros) O que é uma macro? São programas que executam

Sistema Operativo em Ambiente Gráfico

Instituto Politécnico de Tomar. Manual da Área de Secretariados

Parte 5 LibreOffice Base

Aplicações de Escritório Electrónico

DIRETRIZES DE USO DA MATRIZ DE SISTEMATIZAÇÃO DE INFORMAÇÕES

Acronis Servidor de Licença. Manual do Utilizador

Transição de POC para SNC

Tarefa Orientada 17 Listas de dados

Tutorial exe elearning XHTML editor (versão 1.0x)

Avançado. Visão geral do ambiente do VBA Retornar à planilha Excel

Ambiente de trabalho. Configurações. Acessórios

Sumário: Fluxo Operacional... 3 Contatos Agenda Online Reservas de Salas Tarefas... 42

Tarefa Orientada 12 Junção Externa, Auto-Junção e União

Manual. Formações Modulares Certificadas. A Relha Cooperativa de Serviços CRL. Formador/a: Ricardo Cabral. Data: 05/2013. N.

❶ No Sistema Gênesis, na Aba ESTOQUE

Aleph Manual de utilização do Módulo de Catalogação

ZS Rest. Manual Avançado. Menus. v Certificado

Administração da disciplina

Criar um formulário do tipo Diálogo modal ; Alterar a cor de fundo de um formulário; Inserir botões de comando e caixas de texto;

UNIDADE 2: Sistema Operativo em Ambiente Gráfico

Criando formulário de pesquisa vinculando caixa de texto e caixa de listagem

Inserindo Dados no Banco de Dados Paradox.

Consultas (Queries) ou Interrogações

INSTALAÇÃO E OPERAÇÃO DE SISTEMAS INFORMÁTICOS Curso Educação e Formação de Adultos Nível Básico. Access 2003

Microsoft Access. No Access, existem vários tipos de objectos: Tabelas. Consultas. Formulários Relatórios Macros Módulos

Folha de Cálculo (Excel)

Google Sites. A g r u p a m e n t o C a m p o A b e r t o /

O dono de uma livraria cuja base de dados é administrada por si pediu-lhe para efectuar as seguintes alterações ao preço dos livros:

FICHA ORIENTADA Nº1. Barra de fórmulas. Área de trabalho T E C N O L O G I A S D E I N F O R M A Ç Ã O E C O M U N I C A Ç Ã O

Os dados no MySQL são armazenado em tabelas. Uma tabela é uma colecção de informação relacionada e consiste em colunas e linhas.

Quinta Lista de Exercícios -

Microsoft Access XP Módulo Um

I. COMO FAZER O REGISTO NA PLATAFORMA MOODLE 3 II. COMO ACEDER (ENTRAR) NO MOODLE DA ESCOLA 1

Faculdade Boa Viagem Sistemas de Informação Gerenciais EXERCÍCIO PASSO-A-PASSO PEDIDOS E CONTROLE DE ESTOQUE. Microsoft Access.

Configuração de Séries, Tipos e Numeradores de Documentos. Séries

Guia rápido do utilizador

Avançado. Visão geral do ambiente do VBA Retornar à planilha Excel

Sistema de Informação de Licenciamento de Operações de Gestão de Resíduos

Manual de Utilização Frontoffice ZSRest

Guia de utilização. Gestão de Mensagens. Março 2009

1.1. Clique no botão Iniciar, seleccione Todos os programas, Microsoft Office e no submenu aberto escolha o programa Microsoft FrontPage.

Banco de Dados BrOffice Base

Aplicações de Escritório Electrónico

Formação Microsoft Excel Nível Intermédio

Manual de instruções BIOMUDA

Domine o Word Professor: Rafael Henriques. Ano Lectivo 2010/2011

Microsoft PowerPoint 2003

Catálogo Nacional de Compras Públicas. Manual de Fornecedores

Referências de tarefas de comunicação do Sametime

Tarefa Orientada 16 Vistas

1. FILTRAR OS DADOS ATRAVÉS DE FORMULÁRIO (FILTER BY FORM)

INSTALAÇÃO DO SAGE 2008 NO WINDOWS XP

Tarefa 18: Criar Tabelas Dinâmicas a partir de Listas de Excel

FAQ s para os Administradores do Sistema, sobre a Carreira especial médica

PRIMAVERA EXPRESS: Funcionalidades do Produto

GUIA PARA O PREENCHIMENTO DOS FORMULÁRIOS ENTIDADE GESTORA ERP PORTUGAL

Criando Banco de Dados, Tabelas e Campos através do HeidiSQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

MICROSOFT POWERPOINT

Ficha prática de PowerPoint

BARRA DE PROGRESSO EM VBA

Configuração de assinatura de

Microsoft Office FrontPage 2003

UNIDADE 2: Sistema Operativo em Ambiente Gráfico

Conceitos importantes

LeYa Educação Digital

ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO DELPHI FORMULÁRIO COM ABAS E BUSCAS DE REGISTROS

GESTÃO DE STOCKS. Para gerir o seu stock deve realizar 4 passos essenciais:

Tutorial: criação de uma Ficha de Voluntário online

O AMBIENTE DE TRABALHO DO WINDOWS

Manual de Utilizador Documentos de Transporte. TOConline. Suporte. Página - 1

Manual de utilizador CRM

NOÇÕES ELEMENTARES DE BASES DE DADOS

EXCEL TABELAS DINÂMICAS

PAINEL DE ADMINISTRADOR

A1;A7 é o mesmo que A1 e A7 A1:A7 é o mesmo que A1 até A7 (abrange A1, A2, A3, A4, A5, A6, A7).

1. Ambiente de Trabalho

ZS Rest. Manual Avançado. Ementas : e SMS. v2011

Manual SAGe Versão 1.2 (a partir da versão )

SAMUO APP: MANUAL DO UTILIZADOR

BEM VINDO À GESTÃO DE STOCKS DO XD UNLIMITED

Transcrição:

OBJECTIVOS Reconhecer alguns dos objectos VBA Automatizar bases de dados recorrendo à programação VBA e scripts SQL O objecto DOCMD Este objecto permite o acesso a todas as operações sobre todos os objectos de BD (filtragem, pesquisa e tratamento de dados, dos, execução de consultas de todos os tipos, navegação entre registos, automatização de formulários, impressão, etc.). Docmd contém apenas métodos na sua definição, cujo lote de comandos se refere às acções disponibilizadas pelas macros não programadas do Access. Método Quit - Este método termina a aplicação. Exemplo: Docmd.quit Método RunSql - Executa uma consulta de acção ou de definição de dados por especificação de uma instrução SQL. Exemplo: DoCmd.RunSQL "delete from clientes where nome='" & txtnome & "' and bi=" & txtbi executa a query delete. Método OpenForm - Abre o formulário com determinado nome. Exemplo: docm.openform verclientes abre o formulário verclientes. Método Close - Fecha um determinado objecto de BD com um nome específico. Exemplos: docmd.close fecha a janela actual O objecto ADODB Com o VBA, o programador pode gerir quando e como uma aplicação interage com uma BD, mais especificamente com os seus objectos. O modelo de programação ADO é constituído por uma biblioteca de objectos que proporciona toda a gestão e acesso a um SGBD. A tabela seguinte apresenta a listagem dos objectos e colecções mais importantes, definidos na biblioteca de objectos ADO: OBJECTO DESCRIÇÃO Recordset Conjunto de registos retornados por uma origem de dados ou query. Field Corresponde a uma coluna (campo) num objecto recordset Fields Colecção contendo todas as colunas de um objecto recordset. Connection Representa uma ligação a uma BD 1

A aplicação a ser construída consiste numa base de dados onde vão ser registadas as encomendas efectuadas, os clientes e os fornecedores. Para este exemplo vamos precisar de criar a tabela clientes com os seguintes campos: Esta tabela deve ser preenchida com os seguintes registos: Da tabela fornecedores com os seguintes campos e registos: E a tabela encomendas com os seguintes campos e registos: 2

Na vista de estrutura crie ainda um formulário semelhante ao seguinte. Deve guardá-lo com o nome formclientes. 1 2 3 4 Fig. Formulário FormClientes 1. Caixa de texto com o nome txt_pesquisa. 2. Botão com o nome cmd_pesquisa. Nota: As caixas de listagem são constituídas por rótulo e a caixa onde vai surgir a lista de dados. Altere o texto dos rótulos como mostrado na imagem e em cada lista deve apenas alterar, nas propriedades, o nome. Deve ainda alterar nas propriedades das caixas de listagem no separador dados a propriedade tipo de origem da linha para lista de valores, uma vez que a caixa vai ser preenchida por linhas resultantes de uma consulta à tabela. 3. Caixa de listagem com o nome lst_clientes 4. Caixa de listagem com o nome lst_pesquisa_clientes O objectivo agora é que a primeira lista (lst_clientes) seja preenchida automaticamente com os nomes dos clientes que se encontram na tabela clientes. Como esta acção vai ocorrer orrer quando o formulário é carregado, vai acontecer no evento Form_Load. Para aceder ao editor de código vba clique com o botão direito no formclientes (em vista de estrutura) e aceda à opção construir evento > construtor de código. Possivelmente vai-lhe surgir o método Detalhe_Click e não o Form_Load. 3

1 2 Em 1 altera-se o nome do objecto e em 2 o evento a ele associado. Altere em 1 Detalhe para Form que automaticamente surge o evento Form_Load. Como vamos necessitar do objecto ADO deve adicionar a biblioteca Microsoft ActiveX Data Objects 2.7 Library à sua base de dados. Para adicionar a biblioteca clique no menu Tools >References Localize a biblioteca, seleccione e por fim clique em OK. No evento form_load vai ser estabelecida a ligação à tabela, vai ser criado um registo que vai guardar o resultado do select efectuado à tabela clientes e por fim cada registo vai ser adicionado à lista. 4

O código para este evento vai ser o seguinte: Neste caso vamos precisar de usar um ciclo While para percorrer as linhas da tabela e em seguida preencher a caixa de listagem. A sintaxe da estrutura de repetição While é a seguinte: While condição Wend Bloco de instruções Fig Programação do evento Form_Load Programação do evento Form_Load() - Explicação do código linha a linha Nota: Os comentários em VBA são feitos utilizando o apóstrofe. Dim ligacao As ADODB.Connection a variável ligação vai conter a ligação à tabela da BD Dim registo As ADODB.Recordset a variável registo vai guardar cada linha e coluna resultante do select efectuado à tabela clientes. Dim sql As String a variável sql vai conter o código sql de consulta à tabela clientes. Set ligacao = CurrentProject.Connection inicializar a variável ligacao com a ligação ao projecto corrente Set registo= New ADODB.Recordset inicializar a variável registo como um novo conjunto de registos sql = "select nome from clientes order by nome" seleccionar apenas o campo nome, da tabela clientes e ordenar registo.open sql, ligacao preenchimento do registo com o total de linhas da tabela clientes. While Not registo.eof a tabela vai ser percorrida linha a linha e enquanto não chegarmos ao fim da linha(registo.eof) as duas linhas de código seguintes vão ser executadas lst_clientes.additem registo!nome adicionar o campo nome da variável registo (registo!nome) à lista lst_clientes. 5

registo.movenext mudança para a próxima linha da tabela Wend fim do ciclo while End Sub O próximo passo vai ser programar o botão OK (cmd_pesquisa). O que se pretende é que ao clicar ele seleccione da tabela clientes todos os nomes começados pela letra que coloca na caixa de texto. A lista de nomes encontrada vai preencher a caixa de listagem lst_pesquisa_clientes. O código do evento cmd_pesquisa_click vai ser o seguinte: Fig Programação do evento cmd_pesquisa_click Vamos utilizar a estrutura de decisão if para que, no caso da consulta à base de dados não devolver valores, a caixa de listagem seja preenchida com o texto Não existem resultados A estrutura if avalia a condição especificada e, se a mesma for verdadeira, executa determinada instrução ou conjunto de instruções; se for falsa, executa uma instrução ou bloco de instruções diferente do anterior. Sintaxe: If condição then utilizamos no caso de ser preciso executar apenas um bloco de instruções. If condição then end if quando é necessário executar ecutar um bloco de instruções. If condição then.else. end if a condição é testada, se for verdadeira executa o bloco de instruções após o then, senão executa o bloco de instruções depois de else. Programação do evento cmd_pesquisa_click- Explicação do código linha a linha Private Sub cmd_pesquisa_click() criação e inicialização das variáveis registo,ligação e sql cuja função já foi explicada anteriormente. Dim registo As ADODB.Recordset Dim ligacao As ADODB.Connection 6

Dim sql As String Set ligacao = CurrentProject.Connection Set registo = New ADODB.Recordset seleccionar todos os campos e registos da tabela clientes onde o nome começa pela letra colocada na caixa txt_pesquisa. sql = "select * from clientes where nome like '" & txt_pesquisa & "%'" preenchimento do registo com o total de linhas da tabela clientes. registo.open sql, ligacao limpamos a caixa de listagem para não ficar com os valores da pesquisa anterior lst_pesquisa_clientes.rowsource = "" enquanto não chegar ao fim da tabela While Not registo.eof mostra = registo!nome guardar campo nome na variável mostra lst_pesquisa_clientes.additem registo!nome adicionar linha com o campo nome à caixa de listagem registo.movenext passar para o registo seguinte Wend fim do ciclo while txt_pesquisa = "" limpar a caixa de texto txt_pesquisa If mostra = "" Then se a variável mostra estiver vazia a caixa de listagem é preenchida com o texto Não existem resultados... lst_pesquisa_clientes.additem "Não existem resultados..." End If fim do if End Sub Coloque ainda no formulário o seguinte grupo de opções, caixas de texto e botão: 1 2 3 4 1. Caixa de texto txtnome Fig. Formulário listaclientes 7

2. Caixa de texto txtbi 3. Caixa de texto txtnif 4. Botão cmd_editarcliente Altere as propriedades de caixas de texto para que fiquem desactivas, para isso coloque a propriedade activado igual a não (separador dados). Vamos agora programar a caixa de listagem lst_pesquisa_clientes quando ocorre o evento click. Ao clicar numa das opções da lista os dados das caixas de texto(txtnome, txtbi e txtnif) vão ser automaticamente preenchidos. Esta acção só é efectuada caso a opção seleccionada seja diferente de Não existem resultados O código para o evento lst_pesquisa_clientes_click é o seguinte: Elabore o seguinte formulário que deve guardar com o nome verclientes. 3 1 2 4 5 6 Formulário verclientes Altere os nomes de cada caixa de texto e botão para os seguintes: 1. Caixa de texto txtnome 2. Caixa de texto txtbi 3. Caixa de texto txtnif 4. Botão cmd_editarc 5. Botão cmd_eliminar 6. Botão o cmd_fechar 8

O botão fechar apenas fecha o formulário e o código é o seguinte: O botão editar permite registar as alterações, na tabela clientes, efectuadas nos campos do formulário onde o bi corresponda ao bi apresentado. O código vai ser o seguinte: O botão eliminar vai eliminar o registo corrente da tabela. Caso seleccione sim na caixa de mensagens, o registo é eliminado e surge a mensagem o cliente nome_d_cliente foi eliminado!, caso contrário o registo mantém-se. Programação do evento cmd_eliminar_click- Explicação do código linha a linha Private Sub cmd_eliminar_click() msg = MsgBox("Tem a certeza que pretende eliminar?", vbquestion + vbyesnocancel) o resultado da opção escolhida (botão sim/não/cancelar) na caixa de mensagem vai ser guardado na variável msg. DoCmd.SetWarnings False retirar os avisos mostrados pelo access If msg = vbyes Then se clicar no botão sim (vbyes) elimina da tabela clients o registo que está a ser mostrado DoCmd.RunSQL "delete from clientes where nome='" & txtnome & "' and bi=" & txtbi mostra a caixa de mensagem com o texto O cliente nome_do_cliente foi eliminado! MsgBox "O cliente " & txtnome & " foi eliminado!" End If End Sub 9

EXERCÍCIO PROGRAMAÇÃO DO FORMULÁRIO ENCOMENDAS Para este exemplo vai ser necessário importar os seguintes objectos da base de dados Sql e VBA exemplo: formulários encomendas, verclientes e verfornecedores e tabela encomendas. Verifique se os seguintes registos se encontram na tabela clientes. Verifique ainda se os seguintes registos se encontram na tabela fornecedores. A tabela encomendas encontra-se organizada do seguinte modo: 10

No formulário encomendas coloque os nomes nos controlos como se apresenta em seguida (atenção que o texto apresentado só irá surgir depois de programar cada objecto): 1 2 3 4 5 6 7 8 1. Caixa de listagem lst_encomenda; 2. Caixa de texto txt_encomenda; 3. Caixa de texto txt_fornecedor; 4. Caixa de texto txt_cliente; ; 5. Caixa de texto txt_valor; 6. Caixa de texto txt_data. 7. Botão cmd_verf; 8. Botão cmd_verc; Vamos então passar à programação dos objectos do formulário. a. A caixa de listagem lst_encomendas deve ser preenchida, logo quando o formulário for carregado, com o código de cada encomenda. b. Quando uma encomenda é seleccionada (ao clicar na lista lst_encomendas) as caixas de texto dos dados da encomenda são automaticamente preenchidas. c. O botão verfornecedores vai abrir o formulário verfornecedor com os dados do fornecedor que corresponde aquela encomenda. 11

d. O botão ver Cliente vai abrir o formulário verclientes com os dados do cliente que corresponde aquela encomenda. e. No formulário dos fornecedores deve programar o botão fechar para fechar o formulário e o botão remover para remover o registo. Quando clica em remover apenas deve surgir uma msgbox com o texto Tem a certeza que pretende eliminar o cliente?. Se clicar em sim remove e mostra a mensagem o cliente Maria foi eliminado com sucesso!, caso contrário mantém o registo. 12