VBA e Access Modo de interacção



Documentos relacionados
VBA e Access Modo de interacção Ricardo Rocha DCC-FCUP Visual Basic for Applications: # 52

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

ActiveX Data Objects I

VBA e Access. Opções do Access

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

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

VBA e Access. Modo de interacção

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.

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

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

INTRODUÇÃO AO MODELO ADO.NET (DESCONECTADO)

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


Tarefa Orientada 2 Criar uma base de dados

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

Base de dados I. Uma base de dados é um simples repositório de informação relacionado com um determinado assunto ou finalidade

Escola Secundária de Camarate

Introdução : 1. Temas Abordados no Livro 1. Novidades no Excel Explorando o ExceI O Microsoft Excel 3

Plano de Aula - Access cód Horas/Aula

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

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

Tarefa Orientada 19 Triggers

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

Parte 5 LibreOffice Base

Conteúdo de Formação

Aplicações de Escritório Electrónico

Índice. Introdução 31. Tutorial 1: O Microsoft Access como Sistema de Gestão de Bases de Dados Relacionais 35

P S I 2. º A N O F 5 M E S T R E / D E T A L H E E P E S Q U I S A. Criar uma relação mestre-detalhe. Pesquisa de informação

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

Manual de Administração Intranet BNI

Programação SQL. Manipulação de Dados. DML Data Manipulation Language

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO - TIC 10º C. Planificação de. Curso Profissional de Técnico de Secretariado

Base de dados I. Base de dados II

Índice. Introdução Tutorial 1: O Microsoft Access como Sistema de Gestão de Bases de Dados Relacionais... 35

Microsoft Excel Macro V. Índice 16-) Formulários ) Gerando código para o Formulário... 49

Tarefa Orientada 2 Aplic. Manutenção de Produtos - DataGridView

Microsoft Access: Criar relatórios para um novo banco de dados. Vitor Valerio de Souza Campos

MÓDULO 1 - Folha de Cálculo

FIGURA 1.3 Indicação dos tipos de relações num diagrama ER 1-N N-N 1-N DISTRITOS PRODUTOS

VBA e Excel I. Macros

Tarefa Orientada 16 Vistas

PLANIFICAÇÃO MODULAR ANO LECTIVO 2015 / 2016

EXCEL TABELAS DINÂMICAS

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

Tecnologias de Informação e Comunicação Página 1 de 5

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

Folha de Cálculo (Excel)

MANUAL DO EXCEL. Um campo é um espaço que contém determinada informação (ex: Nome do cliente X, Telefone do Sr. Y)

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

PACWEB Módulo de Pesquisa MANUAL DO UTILIZADOR

1 Função e criação do Programa. Relatório de desenvolvimento do projecto Programador/designer : Tiago MC Simões

Direcção Regional de Educação do Algarve

Migrar para o Access 2010

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

2.) Listagem Página a Página

Os elementos básicos do Word

Guia rápido do utilizador

MICROSOFT ACCESS MICROSOFT ACCESS. Professor Rafael Vieira Professor Rafael Vieira

Consultas (Queries) ou Interrogações

Programação SQL. Introdução

COMPETÊNCIAS BÁSICAS EM TIC NAS EB1

1. Lançamento em Contas Bancárias Liquidação de Clientes

Tarefa Orientada 10 Obter informação a partir de uma tabela

Centro Atlântico DESENHO E IMPLEMENTAÇÃO BASES DE DADOS COM MICROSOFT ACCESS XP

GERADOR DE RELATÓRIOS WINREPORT VERSÃO 2.0. Conteúdo

Collections. Objecto Collection. Propriedades e métodos

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

DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS (GRUPO INFORMÁTICA) Ano Letivo de 2014/2015 MÓDULO 1 FOLHA DE CÁLCULO

Revisando sintaxes SQL e criando programa de pesquisa. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Bases de Dados 2005/2006. Aula 5

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

Manual de Access 2007

Transações Seguras em Bancos de Dados (MySQL)

PL/SQL. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Laboratório de Bases de Dados PL/SQL

Curso de Iniciação ao Access Basic (I) CONTEÚDOS

Base de dados I. Uma base de dados é um simples repositório de informação relacionado com um determinado assunto ou finalidade

Desenvolvimento de Sistema de Software

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

PERIVER PLATAFORMA SOFTWARE REQUIREMENT SPECIFICATION. Periver_SoftwareRequirementSpecification_ _v1.0.doc. Versão 1.0

Oracle SQL Developer

Tarefa Orientada 18 Tabelas dinâmicas

Índice. Excel Básico e Intermédio. Parte 1

Microsoft Office FrontPage 2003

Aleph Manual de utilização do módulo de aquisições

COMPUTAÇÃO E PROGRAMAÇÃO

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

Informática Básica. Microsoft Word XP, 2003 e 2007

EDUTec Learning. José Paulo Ferreira Lousado

Módulo 6: Linguagem de Programação IV 6.1. Introdução 6.2. Bases de Dados Visão Estrutural SGBD: Sistema de Gestão de Bases de Dados

DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS

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

Conteúdo de Formação

Excel Avançado. Antonio Fernando Cinto Wilson Moraes Góes. Novatec Editora

Linguagem SQL Sub-linguagem DDL

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

LIÇÃO 1 - USANDO O GRAVADOR DE MACROS

PLANIFICAÇÃO ANUAL DE CONTEÚDOS

Transcrição:

VBA e Access Modo de interacção As funcionalidades do VBA estão completamente integradas com o Access Um bom exemplo dessa integração é o facto dos formulários e dos módulos fazerem por defeito parte integrante de uma base de dados em Access Visual Basic for Applications: # 52

Hierarquia de objectos Objectos de nível um [Application.]Forms: collection dos formulários que se encontram abertos na base de dados [Application.]Reports: collection dos relatórios que se encontram abertos na base de dados [Application.]DataAccessPages: collection das páginas que se encontram abertas na base de dados [Application.]Modules: collection dos módulos que se encontram abertos na base de dados [Application.]DoCmd: permite utilizar directamente no código o conjunto de acções disponíveis como macros (abrir formulários, imprimir relatórios,...) [Application.]Screen: permite referenciar o controle, página, folha de dados, formulário ou relatório que tem o foco num dado momento Screen.ActiveControl Screen.ActiveDataAccessPage Screen.ActiveDatasheet Screen.ActiveForm Screen.ActiveReport Visual Basic for Applications: # 53

Objecto DoCmd I Abrir formulários/relatórios DoCmd.OpenForm FormName,,, WhereCond, DataMode,, Args: abre o formulário FormName em modo DataMode, filtra a informação mediante a condição WhereCond e instancia a propriedade OpenArgs do formulário com o valor indicado em Args. DataMode pode ser uma das seguintes constantes: acformedit: permite inserir novos registos e alterar os existentes acformadd: apenas permite inserir novos registos (os registos existentes são ocultos) acformreadonly: não permite inserir novos registos nem editar os existentes acformpropertysettings: usa as permissões definidas nas propriedades do formulário DoCmd.OpenReport ReportName,,, WhereCond,, Args: abre o relatório ReportName, filtra a informação mediante a condição WhereCond e instancia a propriedade OpenArgs do relatório com o valor indicado em Args Exemplos DoCmd.OpenForm Clientes,,, Apelido = Silva, acformedit DoCmd.OpenReport Clientes,,, Nome Like A*,, 10 Visual Basic for Applications: # 54

Objecto DoCmd II Fechar formulários/relatórios DoCmd.Close ObjectType, ObjectName, Save: fecha o objecto do tipo ObjectType com nome ObjectName e guarda-o segundo a opção Save ObjectType pode ser uma das seguintes constantes (entre outras): acdefault: para fechar a janela activa acform: para fechar formulários acreport: para fechar relatórios Save pode ser uma das seguintes constantes: acsaveprompt: questiona o utilizador para guardar possíveis alterações acsaveyes: guarda possíveis alterações acsaveno: não guarda possíveis alterações Exemplos DoCmd.Close acform, Clientes, acsaveyes DoCmd.Close acreport, Clientes, acsaveno Visual Basic for Applications: # 55

Objectos Form I Referenciação Forms( Clientes ): referência directa ao nome do formulário Forms!Clientes: referência directa ao nome do formulário Forms![Clientes e Facturas]: para nomes com espaços Forms(0): referência ao primeiro formulário a ser aberto Screen.ActiveForm: referência ao formulário que tem o foco Propriedades form.name: nome do formulário form.caption: título do formulário form.visible: visibilidade do formulário form.modal: se True requer que o formulário seja fechado para que o foco possa ser movido para outro objecto form.recordsource: origem dos registos do formulário (tabela/consulta da base de dados ou expressão SQL) Visual Basic for Applications: # 56

Objectos Form II Propriedades form.navigationbuttons: esconde/apresenta os botões de navegação form.allowedits: se True permite editar os registos previamente guardados form.allowdeletions: se True permite remover registos form.allowadditions: se True permite adicionar novos registos form.dataentry: se True apenas permite adicionar novos registos form.filter: filtra os registos a apresentar no formulário form.filteron: activa/desactiva o filtro form.orderby: modo de ordenação dos registos do formulário form.orderbyon: activa/desactiva o modo de ordenação Exemplo Private Sub Form_Load() Me.Filter = País = Portugal : Me.FilterOn = True Me.OrderBy = País, Cidade DESC End Sub Private Sub BotãoOrdenação_Click() Me.OrderByOn = Not Me.OrderByOn End Sub Visual Basic for Applications: # 57

Objectos Form III Métodos form.requery: executa novamente a consulta na qual o formulário é baseado form.refresh: actualiza o conjunto actual de registos do formulário. Os registos que entretanto tenham sido adicionados/removidos (por outro utilizador num ambiente multi-utilizador) não serão incluídos/excluídos do conjunto actual. Tão pouco serão excluídos os registos que já não satisfaçam a consulta associada ao formulário form.undo: desfaz todas as alterações feitas ao registo actual desde que foi guardado pela última vez Exemplo Private Sub Form_BeforeUpdate(Cancel As Integer) If... then... Me.Undo End If End Sub Visual Basic for Applications: # 58

Objectos Report I Referenciação Reports( Clientes ): referência directa ao nome do relatório Reports!Clientes: referência directa ao nome do relatório Reports![Clientes e Facturas]: para nomes com espaços Reports(0): referência ao primeiro relatório aberto Screen.ActiveReport: referência ao relatório que tem o foco Propriedades report.name: nome do relatório report.caption: título do relatório report.visible: visibilidade do relatório report.recordsource: origem dos registos do relatório (tabela/consulta da base de dados ou expressão SQL) report.filter: filtra os registos a apresentar no relatório report.filteron: activa/desactiva o filtro report.orderby: modo de ordenação dos registos do relatório report.orderbyon: activa/desactiva o modo de ordenação Visual Basic for Applications: # 59

Objectos Report II Secções report.section(index): secções do relatório. Index pode ser uma das seguintes constantes: acdetail: secção detalhe acheader: secção cabeçalho acfooter: secção rodapé acpageheader: secção cabeçalho de página acpagefooter: secção rodapé de página acgrouplevel1header: cabeçalho do nível de agrupamento 1 (só relatórios) acgrouplevel1footer: rodapé do nível de agrupamento 1 (só relatórios) acgrouplevel10header: cabeçalho do nível de agrupamento 10 (só relatórios) acgrouplevel10footer: rodapé do nível de agrupamento 10 (só relatórios) Exemplo Reports( Alunos ).Section(acGroupLevel1Header).Visible = True Visual Basic for Applications: # 60

Objectos Report III Grupos report.grouplevel(index): níveis de agrupamento/ordenação do relatório grouplevel.sortorder: modo de ordenação do grupo (False corresponde a ordenação ascendente) grouplevel.groupheader: se True activa o cabeçalho do grupo grouplevel.groupfooter: se True activa o rodapé do grupo grouplevel.groupon: especifica como os dados são agrupados grouplevel.keeptogether: impõe restrições ao modo de apresentar o cabeçalho, rodapé e secção de detalhe do grupo nas páginas do relatório grouplevel.groupinterval: especifica o intervalo para agrupar os dados Visual Basic for Applications: # 61

Objectos Report IV Exemplo as propriedades SortOrder, GroupHeader, GroupFooter, GroupOn, GroupInterval e KeepTogether só podem ser alteradas quando ocorre o evento Open do relatório em causa Private Sub Report_Open(Cancel As Integer) With Me.GroupLevel(0).SortOrder = False ordenação ascendente.groupon = 4 agrupar os registos por....groupinterval = 6... semestre (6 meses).keeptogether = 0 sem restrições de agrupamento End With End Sub Visual Basic for Applications: # 62

Objectos Control I Referenciação [form report].controls( Nome ): referência directa ao nome do controlo [form report].controls!nome: referência directa ao nome do controlo [form report]!nome: referência directa ao nome do controlo [form report].controls(0): referência ao primeiro controlo no contexto da ordem que se encontram no formulário/relatório respectivo Screen.ActiveControl: referência ao controlo que tem o foco Exemplos formas de referenciar o controlo [xpto] do formulário [Novo] Forms( Novo ).Controls( xpto ) Forms( Novo ).Controls!xpto Forms( Novo )!xpto Forms!Novo!xpto Forms.Novo.xpto 'ao utilizar o símbolo! não pode seguir-se uma collection Application.Forms!Novo!xpto ok Application!Forms!Novo!xpto erro Forms!Novo!Controls!xpto erro Visual Basic for Applications: # 63

Objectos Control II Propriedades comuns ControlSource: origem dos dados do controlo (campo ou expressão utilizando campos da tabela/consulta em que o formulário é baseado) Combo / list boxes RowSource: origem dos dados do controlo RowSourceType: tipo da origem dos dados do controlo Table/Query: os dados são os registos de uma tabela/consulta ou expressão SQL Value List: os dados são uma lista de itens Exemplos Forms.Clientes.Combo.RowSourceType = Table/Query Forms.Clientes.Combo.RowSource = Clientes Forms.Clientes.Combo.ColumnCount = 2 campos Id e Nome Forms.Clientes.Combo.ColumnWidths = 0;1 Forms.Clientes.Combo.BoundColumn = 1 Forms.Clientes.Lista.RowSourceType = Value List Forms.Clientes.Lista.RowSource = 1;2;3 Forms.Clientes.Lista.AddItem 4 Visual Basic for Applications: # 64

ActiveX Data Objects I Aspectos gerais A biblioteca ADO oferece uma interface genérica para acesso a dados Permite comunicar com um amplo conjunto de diferentes formatos de dados Define uma única sintaxe para manipular o mesmo tipo de objectos (é independente do formato dos dados) Constitui por si só uma hierarquia de objectos independente da hierarquia de objectos da aplicação principal Visual Basic for Applications: # 65

ActiveX Data Objects II Hierarquia de objectos ADODB: objecto de topo da hierarquia ADO Connection: para definir e estabelecer ligações com diferentes bases de dados Command: para executar instruções sobre uma dada ligação Recordset: para manipular conjuntos de registos Errors: conjunto de erros ocorridos durante a última operação duma ligação Parameters: conjunto de parâmetros de um dado comando com parâmetros Fields: conjunto de atributos (campos) de um dado registo Properties: conjunto de propriedades específicas de um dado objecto ADODB Connection Command Recordset Errors Properties Parameters Properties Fields Properties Visual Basic for Applications: # 66

Objectos Connection I Métodos connection.open ConnectionString: estabelece uma nova ligação connection.execute(commandtext,,options): para executar comandos adcmdtable: indica que CommandText refere o nome de uma tabela ou consulta adcmdtext: indica que CommandText refere uma expressão SQL connection.close: fecha a ligação Exemplos estabelecer ligação explícita a uma base de dados do Access Dim con As New Connection a declaração New cria desde logo uma nova instância do objecto con.open Provider=Microsoft.Jet.OLEDB.4.0; Data Source=teste.mdb con.close ligação corrente ao Access Dim con As Connection se vou usar Set posso omitir New Set con = CurrentProject.Connection con.close Visual Basic for Applications: # 67

Objectos Connection II Exemplos criar recordset a partir duma ligação explícita (3 exemplos) Dim con As Connection : Dim rst As Recordset Set con =... Set rst = con.execute( Clientes,, adcmdtable) Set rst = con.execute( [Query sem Parâmetros],, adcmdtable) Set rst = con.execute( SELECT * FROM Clientes,, adcmdtext) rst.close con.close criar recordset a partir da ligação corrente ao Access Dim rst As New Recordset rst.open Clientes, CurrentProject.Connection rst.close criar recordset a partir duma ligação implícita Dim rst As New Recordset rst.open Clientes, Provider=Microsoft.Jet.OLEDB.4.0; Data Source=teste.mdb rst.close Visual Basic for Applications: # 68

Objectos Command Propriedades e métodos command.activeconnection: ligação associada ao comando command.commandtext: texto do comando command.commandtype: tipo de comando (adcmdtable / adcmdtext) command.parameters: parâmetros do comando command.execute: para executar o comando Exemplos Dim com As New Command comando sem parâmetros com.activeconnection = CurrentProject.Connection com.commandtext = SELECT * FROM Clientes com.commandtype = adcmdtext : Set rst = com.execute comando com parâmetros com.activeconnection = CurrentProject.Connection com.commandtext = [Query com Parâmetros] com.commandtype = adcmdtable com.parameters.refresh lê os parâmetros com.parameters( [Limite?] ) = 100 : Set rst = com.execute Visual Basic for Applications: # 69