VIDAL DE CARVALHO ANA AZEVEDO
ANTÓNIO ABREU
BASES DE
DADOS COM
MICROSOFT ACCESS 2007
Portugal/2008
’Microsoft’ is a registered trademark of Microsoft Corporation in the United States and/or other countries and is used by Centro Atlântico under license from owner. ‘Bases de Dados com Microsoft Access 2007’ is an independent publication not affiliated with Microsoft Corporation.
Reservados todos os direitos por Centro Atlântico, Lda. Qualquer reprodução, incluindo fotocópia, só pode ser feita com autorização expressa dos editores da obra.
BASES DE DADOS COM MICROSOFT ACCESS 2007 Colecção: Tecnologias
Autores: António João Vidal de Carvalho
Ana Isabel Rojão Lourenço Azevedo
António José Abreu da Silva
Direcção gráfica: Centro Atlântico Revisão técnica: Vítor Emanuel Pereira Capa: Paulo Buchinho
© Centro Atlântico, Lda., 2008
Av. Dr. Carlos Bacelar, 968 – Escr. 1 – A 4764-901 V. N. Famalicão
© Rua da Misericórdia, 76 – 1200-273 Lisboa
Portugal Tel. 808 20 22 21
[email protected] www.centroatlantico.pt
Impressão e acabamento: Inova 1ª edição: Janeiro de 2008 ISBN: 978-989-615-050-1 Depósito legal: /08
Marcas registadas: Todos os termos mencionados neste livro conhecidos como sendo marcas registadas de produtos e serviços foram apropriadamente capitalizados. A utilização de um termo neste livro não deve ser encarada como afectando a validade de alguma marca registada de produto ou serviço. O Editor e os Autores não se responsabilizam por possíveis danos morais ou físicos causados pelas instruções contidas no livro nem por endereços Internet que não correspondam às Home--Pages pretendidas.
Índice
PARTE I
I.1 OS SISTEMAS DE INFORMAÇÃO E AS ORGANIZAÇÕES ....... 17
1.1 Características de um Sistema .......................................................................... 18
1.2 A organização vista como um Sistema .............................................................. 19
1.3 A Informação ..................................................................................................... 19 1.3.1 Características da informação ........................................................................... 20 1.3.2 A Informação nas organizações......................................................................... 20 1.3.3 Tipos de informação nas organizações ............................................................. 21
1.4 Os Sistemas de Informação Organizacionais .................................................... 22 1.4.1 Evolução histórica dos Sistemas de Informação ............................................... 23 1.4.2 Planeamento e desenvolvimento de Sistemas de Informação .......................... 25 1.4.3 A introdução dos Sistemas de Informação nas organizações .......................... 28
TERMOS CHAVE ................................................................................................................. 30 PARA REVER … .................................................................................................................. 31 PARA INVESTIGAR … ........................................................................................................ 31
I.2 AS BASES DE DADOS ..................................................... 33
2.1 As raízes históricas: Ficheiros e Sistemas de Ficheiros .................................... 34 2.1.1 Gestão de dados nos Sistemas de Ficheiros ..................................................... 35 2.1.2 Dependência dados-aplicações ......................................................................... 38 2.1.3 Redundâncias nos dados .................................................................................. 38
2.2 Sistemas de Bases de Dados ............................................................................ 39 2.2.1 Características de um Sistema de Bases de Dados .......................................... 40 2.2.2 Intervenientes num Sistema de Bases de Dados .............................................. 41 2.2.3 As funções do Sistema de Gestão de Bases de Dados .................................... 42 2.2.4 Arquitectura do Sistema de Gestão de Bases de Dados e Independência dos Dados ......................................................................................................................... 44 2.2.5 Linguagens fornecidas pelo SGBD .................................................................... 46 2.2.6 Classificação dos SGBD’s ................................................................................. 48
6 BASES DE DADOS COM MICROSOFT ACCESS 2007
2.3 Modelos de Bases de Dados ............................................................................ 48 2.3.1 Modelo Hierárquico ........................................................................................... 49 2.3.2 Modelo em Rede ............................................................................................... 51 2.3.3 O Modelo Relacional ......................................................................................... 53 2.3.4 Novos modelos: Modelos Orientados a Objectos e Extensões ao Modelo Relacional .................................................................................................................. 54
2.4 Outras Aplicações das Base de Dados ............................................................. 59 2.4.1 Data Warehouses ............................................................................................. 59 2.4.2 OLAP’s .............................................................................................................. 62 2.4.3 Data Mining ...................................................................................................... 63 2.4.4 Integração com a Web ...................................................................................... 65
TERMOS CHAVE ................................................................................................................ 67 PARA REVER … ................................................................................................................. 68 PARA INVESTIGAR … ........................................................................................................ 69
I.3 O MODELO RELACIONAL DE BASES DE DADOS ................ 71
3.1 Terminologia básica .......................................................................................... 72
3.2 Atributos Chave ................................................................................................. 75 3.2.1 Super-Chave ..................................................................................................... 75 3.2.2 Chave Candidata .............................................................................................. 75 3.2.3 Chave Primária ................................................................................................. 76 3.2.4 Chave Estrangeira ............................................................................................ 76 3.2.5 Um exemplo ...................................................................................................... 77
3.3 Regras de Integridade ....................................................................................... 79 3.3.1 Integridade de Entidade .................................................................................... 79 3.3.2 Integridade Referencial ..................................................................................... 79
3.4 Operadores da Álgebra Relacional ................................................................... 80 3.4.1 O Operador SELECT ........................................................................................ 81 3.4.2 O operador PROJECT ...................................................................................... 81 3.4.3 O operador PRODUCT ..................................................................................... 82 3.4.4 O operador UNION ........................................................................................... 84 3.4.5 O Operador DIFFERENCE ............................................................................... 85 3.4.6 O Operador INTERSECT .................................................................................. 85 3.4.7 O operador JOIN ............................................................................................... 86 3.4.8 O operador DIVIDE ........................................................................................... 87
3.5 SQL – Uma linguagem de bases de dados relacionais ..................................... 88 3.5.1 Definição de dados ........................................................................................... 89 3.5.2 Inserção e actualização de dados ..................................................................... 92 3.5.3 Queries com SQL .............................................................................................. 94
ÍNDICE 7
3.6 As regras de Codd ............................................................................................. 98
TERMOS CHAVE ............................................................................................................... 101 PARA REVER … ................................................................................................................ 102 PARA INVESTIGAR … ...................................................................................................... 109
I.4 MODELAÇÃO DE DADOS ............................................... 111
4.1 A importância da modelação de dados ............................................................ 111
4.2 O modelo Entidade-Relacionamento (E-R) ...................................................... 112 4.2.1 Entidades e Atributos ....................................................................................... 113 4.2.2 Relacionamentos ............................................................................................. 115 4.2.3 Entidades fracas .............................................................................................. 123 4.2.4 Entidades compostas ....................................................................................... 124 4.2.5 Uma comparação de notações ........................................................................ 127
4.3 Desenvolvendo um Diagrama E-R ................................................................... 128
4.4 Correspondência entre o modelo E-R e o modelo relacional ........................... 133
TERMOS CHAVE ............................................................................................................... 136 PARA REVER … ................................................................................................................ 137 PARA INVESTIGAR … ...................................................................................................... 142
I.5 DEPENDÊNCIAS FUNCIONAIS E NORMALIZAÇÃO ............. 143
5.1 A Importância da Normalização ....................................................................... 145
5.2 Dependências funcionais ................................................................................. 146
5.3 O processo de Normalização ........................................................................... 147 5.3.1 Primeira Forma Normal .................................................................................... 149 5.3.2 Segunda Forma Normal ................................................................................... 151 5.3.3 Terceira Forma Normal .................................................................................... 152 5.3.4 Forma Normal de Boyce-Codd ........................................................................ 153 5.3.5 Multi-dependência e Quarta Forma Normal ..................................................... 156 5.3.6 Dependência de junção e Quinta Forma Normal ............................................. 157
TERMOS CHAVE ............................................................................................................... 160 PARA REVER … ................................................................................................................ 161 PARA INVESTIGAR … ...................................................................................................... 165
8 BASES DE DADOS COM MICROSOFT ACCESS 2007
PARTE II
II.1 O MICROSOFT ACCESS ................................................ 169
1.1 Características gerais ...................................................................................... 169
1.2 O Microsoft Access 2007................................................................................. 170
II.2 NOVIDADES DO MICROSOFT ACCESS 2007 ................... 173
2.1 Começar rapidamente a controlar as informações .......................................... 173 2.1.1 Excelentes modelos para introdução ............................................................... 173 2.1.2 Criação rápida avançada utilizando o separador Criar .................................... 174 2.1.3 Criação rápida de tabelas com a vista Folha de Dados melhorada ................. 175 2.1.4 Filtrar e classificar dados ................................................................................. 175 2.1.5 Campos com valores múltiplos ........................................................................ 176 2.1.6 Anexar documentos e arquivos à Base de Dados ........................................... 177 2.1.7 Texto formatado em campos Memo ................................................................ 177 2.1.8 Calendário automático para selecção da data ................................................. 177 2.1.9 Linha de total nas folhas de dados .................................................................. 178 2.1.10 Macros incorporadas ..................................................................................... 178 2.1.11 Dividir formulários .......................................................................................... 178 2.1.12 Visualizador de Ajuda melhorado .................................................................. 179
2.2 Partilhar informações controladas com outros utilizadores ............................. 179 2.2.1 Recolher dados usando o Outlook 2007 .......................................................... 179 2.2.2 Colaboração na Web com o Windows SharePoint Services ........................... 180 2.2.3 Trabalhar off-line com as listas do Windows SharePoint Services .................. 180 2.2.4 Integração com o fluxo de trabalho do Windows SharePoint Services ............ 181 2.2.5 Exportar para PDF e XPS ................................................................................ 181 2.2.6 Experiência melhorada de importação e exportação ....................................... 181
2.3 Criar e adaptar relatórios para responder às necessidades ............................ 182 2.3.1 Edição dos modos Relatório e Esquema ......................................................... 182 2.3.2 Painel de campos dos Relatórios .................................................................... 183 2.3.3 Informações agrupadas em Relatórios ............................................................ 183
2.4 Gerir e auditar informações confidenciais ....................................................... 184 2.4.1 Segurança avançada ....................................................................................... 184 2.4.2 Auditoria de dados ........................................................................................... 185 2.4.3 Histórico da revisão ......................................................................................... 185 2.4.4 Configuração de permissão ............................................................................. 185 2.4.5 Reciclagem ...................................................................................................... 185
ÍNDICE 9
II.3 A INTERFACE DO MICROSOFT ACCESS 2007 ................. 187
3.1 Interface de utilizador orientada a resultados................................................... 187
3.2 O friso .............................................................................................................. 188 3.2.1 Os separadores do friso ................................................................................... 188 3.2.2 Secções contextuais ......................................................................................... 189
3.3 O Botão Microsoft Office .................................................................................. 190
3.4 Barra de Ferramentas de Acesso Rápido ........................................................ 191
3.5 Painel de Navegação ....................................................................................... 192
3.6 Barra de Estado ............................................................................................... 193
II.4 CRIAÇÃO DE UMA BASE DE DADOS COM O ACCESS 2007 195
4.1 Compreender as Bases de Dados do Access .................................................. 195
4.2 Iniciar o Access 2007 ....................................................................................... 197
4.3 Alternativas para a criação de uma Base de Dados ........................................ 198 4.3.1 Criar uma Base de Dados utilizando um Modelo ............................................. 199 4.3.2 Criar uma Base de Dados vazia ....................................................................... 200
4.4 Gravar e Abrir Base de Dados do Access ........................................................ 201 4.4.1 Gravar Bases de Dados num formato diferente ............................................... 201 4.4.2 Abrir uma Base de Dados ................................................................................ 202
II.5 CONSTRUÇÃO DE TABELAS EFICIENTES ........................ 205
5.1 Opções para a criação de uma tabela ............................................................. 205
5.2 Criação de uma tabela com base num modelo predefinido ............................. 206
5.3 Criação de uma tabela por Inserção de Dados ................................................ 206
5.4 Criação de uma tabela na vista de estrutura .................................................... 207 5.4.1 Escolher tipos de dados ................................................................................... 208 5.4.2 Propriedades dos campos ................................................................................ 209 5.4.3 Campo chave primária ..................................................................................... 217
5.5 Relacionamentos entre tabelas ........................................................................ 218 5.5.1 Criação de relacionamentos ............................................................................. 219 5.5.2 Integridade Referencial .................................................................................... 220 5.5.3 Tipos de relacionamentos ................................................................................ 221 5.5.4 Alteração da estrutura de relacionamentos ...................................................... 222 5.5.5 Navegação nos relacionamentos ..................................................................... 223
10 BASES DE DADOS COM MICROSOFT ACCESS 2007
5.6 Manipulação da Folha de Dados: Formatar, ordenar, filtrar e procurar ........... 225 5.6.1 Navegação na Folha de Dados ....................................................................... 226 5.6.2 Formatação da Folha de Dados ...................................................................... 227 5.6.3 Rearranjar Colunas .......................................................................................... 227 5.6.4 Colunas escondidas ........................................................................................ 228 5.6.5 Ordenação ....................................................................................................... 229 5.6.6 Filtragem .......................................................................................................... 229 5.6.7 Pesquisa .......................................................................................................... 233 5.6.8 Imprimir a Folha de Dados............................................................................... 234
5.7 Importação e exportação de dados ................................................................. 235 5.7.1 Importar dados ................................................................................................. 236 5.7.2 Exportar dados ................................................................................................ 237
5.8 Exercício guiado .............................................................................................. 238
II.6 MANIPULAÇÃO DE DADOS COM CONSULTAS .................. 247
6.1 Tipos de consultas com o Access ................................................................... 247
6.2 Criação de uma consulta simples com o assistente ........................................ 248
6.3 Criação de uma consulta com a Vista de Estrutura ......................................... 250 6.3.1 Descrição da janela para a criação de uma consulta ...................................... 251 6.3.2 Caracterização da grelha da consulta ............................................................. 252 6.3.3 Inserção de campos nas consultas .................................................................. 252 6.3.4 Visualizar a consulta através da Folha de Dados ............................................ 254 6.3.5 Especificar o tipo de ordenação ....................................................................... 254 6.3.6 Valores superiores ........................................................................................... 255
6.4 Definição de critérios em consultas ................................................................. 255
6.5 Criação de consultas com tabelas relacionadas ............................................. 257
6.6 Consultas com parâmetros .............................................................................. 258
6.7 Criação de campos calculados ........................................................................ 260
6.8 Consultas de Referência Cruzada ................................................................... 265 6.8.1 Criação de uma consulta de referência cruzada com o Assistente ................. 266 6.8.2 Criar uma consulta de referência cruzada com a Vista de estrutura ............... 269
6.9 Consultas de Acção ........................................................................................ 270 6.9.1 Impedir que o modo Desactivado bloqueie uma consulta ............................... 271 6.9.2 Consulta criar tabela ........................................................................................ 271 6.9.3 Consulta eliminação ........................................................................................ 273 6.9.4 Consulta acrescentar ....................................................................................... 275 6.9.5 Consulta actualização ...................................................................................... 276
ÍNDICE 11
6.10 Consultas SQL ............................................................................................... 278 6.10.1 Visualização ou modificação de uma declaração SQL ................................... 279 6.10.2 Consultas SQL específicas ............................................................................ 279 6.10.3 Utilização de Subconsultas ............................................................................ 282
6.11 Exercício guiado ............................................................................................. 282
II.7 CONSTRUIR UMA INTERFACE COM FORMULÁRIOS .......... 289
7.1 Aplicação de formulários .................................................................................. 289
7.2 Opções para a criação de formulários ............................................................. 290
7.3 Formulário de Criação Rápida ......................................................................... 291
7.4 Formulários usando o Assistente ..................................................................... 293 7.4.1 Criação de um novo formulário com Assistente ............................................... 293
7.5 Formulários em branco .................................................................................... 294
7.6 Formulários usando a Vista de Estrutura ......................................................... 295 7.6.1 Criação de um formulário com a Vista de Estrutura ......................................... 296
7.7 Secções do formulário ..................................................................................... 297 7.7.1 Accionar as secções do formulário ................................................................... 297 7.7.2 Alterar o tamanho de uma secção .................................................................... 298 7.7.3 Seleccionar as propriedades de uma secção ou do próprio formulário ............ 298
7.8 Controlos num formulário ................................................................................. 299 7.8.1 Controlos dependentes, independentes e de cálculo ....................................... 299 7.8.2 Inserir campos na área do formulário ............................................................... 300 7.8.3 Criar outros controlos ....................................................................................... 300 7.8.4 Criar controlos que calculem valores ................................................................ 301 7.8.5 Criar controlos tipo etiqueta .............................................................................. 302 7.8.6 Alterar as propriedades de um controlo já existente ........................................ 303 7.8.7 Grupo de Opções ............................................................................................. 304 7.8.8 Caixa de Listagem e Caixa de Combinação ..................................................... 307 7.8.9 Subformulários ................................................................................................. 311 7.8.10 Cálculos num formulário ................................................................................. 313 7.8.11 Cálculos num subformulário ........................................................................... 314 7.8.12 Botões de comandos ...................................................................................... 317 7.8.13 Quebras de página ......................................................................................... 318 7.8.14 Moldura de objecto dependente e independente ........................................... 319
7.9 Tabelas Dinâmicas ........................................................................................... 321
7.10 Efeitos especiais de construção ..................................................................... 324 7.10.1 Como obter uma grande selecção de cores ................................................... 324 7.10.2 Formatação dos controlos do formulário ........................................................ 325
12 BASES DE DADOS COM MICROSOFT ACCESS 2007
7.10.3 Caixas de informação para os controlos ........................................................ 326
7.11 Exercício guiado ............................................................................................ 327
II.8 IMPRESSÃO DE RELATÓRIOS ........................................ 335
8.1 Aplicação de relatórios .................................................................................... 335
8.2 Modos de Criação de relatórios ....................................................................... 336
8.3 Relatório de Criação Rápida ........................................................................... 337
8.4 Relatórios usando o Assistente ....................................................................... 338
8.5 Relatórios em branco ...................................................................................... 341
8.6 Relatórios usando a Vista de Estrutura ........................................................... 343 8.6.1 Secções do relatório ........................................................................................ 344 8.6.2 Controlos em relatórios .................................................................................... 346
8.7 Filtragem, Ordenação e Agrupamento ............................................................ 348 8.7.1 Filtragem de um relatório ................................................................................. 348 8.7.2 Ordenação de dados ....................................................................................... 349 8.7.3 Agrupamento dos dados .................................................................................. 351
8.8 Gráficos em relatórios ..................................................................................... 353
8.9 Etiquetas com relatórios .................................................................................. 356
8.10 Impressão de um relatório ............................................................................. 358
8.11 Exportar relatórios ......................................................................................... 359
8.12 Exercício guiado ............................................................................................ 360
II.9 MACROS ..................................................................... 365
9.1 Acções e argumentos ...................................................................................... 365
9.2 Criação de uma macro .................................................................................... 366
9.3 Execução e Teste de uma macro .................................................................... 368 9.3.1 Executar uma macro a partir do Painel de Navegação.................................... 368 9.3.2 Executar uma macro com recurso a um botão de comando ........................... 369 9.3.3 Testar uma macro passo-a-passo ................................................................... 370
9.4 Criação de grupos de macros ......................................................................... 371
9.5 Criar macros condicionadas ............................................................................ 372
9.6 Atribuir macros a acontecimentos ................................................................... 374
ÍNDICE 13
9.6.1 Atribuir uma macro a um acontecimento .......................................................... 374 9.6.2 Criar uma nova macro para um acontecimento ................................................ 375
9.7 Exercício Guiado .............................................................................................. 376
II.10 GESTÃO DA BASE DE DADOS ..................................... 381
10.1 Sistema de Navegação .................................................................................. 381 10.1.1 Construção do Painel de Navegação ............................................................. 381 10.1.2 Designação do Sistema de Navegação como formulário de arranque da aplicação ................................................................................................................... 383
10.2 Fazer Cópias de Segurança........................................................................... 384
10.3 Utilizar uma palavra-passe para encriptar uma BD ........................................ 385 10.3.1 Encriptação utilizando uma palavra-passe ..................................................... 386 10.3.2 Desencriptar e abrir uma base de dados ........................................................ 387 10.3.3 Remover uma palavra-passe ......................................................................... 387
10.4 Segurança para Bases de Dados Distribuídas ............................................... 388
10.5 Divisão de Base de Dados ............................................................................. 389
10.6 Analisar o desempenho ................................................................................. 391
10.7 Analisar Tabelas ............................................................................................ 393
PARTE III
III. 1 INTRODUÇÃO À PROGRAMAÇÃO EM VBA .................... 399
III.2 CARACTERÍSTICAS DA PROGRAMAÇÃO EM VBA ........... 401
2.1 Programação Orientada por Objectos ..................................... 401
2.2 O ambiente de desenvolvimento do VBA ................................ 402 2.2.1 Objectos e Classes .................................................................. 402 2.2.2 Propriedades e Métodos .......................................................... 404 2.2.3 Eventos .................................................................................... 410
14 BASES DE DADOS COM MICROSOFT ACCESS 2007
2.3 Procedimentos e Módulos ........................................................ 412 2.3.1 SubProcedimentos ................................................................... 415 2.3.2 Funções ................................................................................... 418
2.4 Janelas do Editor de Visual Basic – VBE Windows ................. 423
2.5 Conceitos e Estruturas de Controlo em VBA ........................... 428 2.5.1 Tipos de dados ......................................................................... 428 2.5.2 Variáveis e Constantes ............................................................ 429 2.5.3 Variáveis declaradas e não declaradas ................................... 430 2.5.4 Âmbito das variáveis e constantes ........................................... 432 2.5.5 Operadores .............................................................................. 435 2.5.6 Estruturas de controlo .............................................................. 437
2.6 Funções do VBA ...................................................................... 451
III.3 MODELO DE OBJECTOS NO ACCESS 2007/VBA ........... 473
3.1 Arquitectura DAO ..................................................................... 474 3.1.1 Microsoft Data Access Objects ................................................ 476
3.2 Arquitectura ADO ..................................................................... 506 3.2.1 A Metodologia ADO no Access/VBA ........................................ 508 3.2.2 Modelo de Objectos ADO ........................................................ 508 3.2.3 Objectos ADO no Access 2007 ................................................ 510
III.4 TRANSIÇÃO DA METODOLOGIA DAO PARA ADO .......... 521
ANEXO I: GLOSSÁRIO DE ABREVIATURAS ........................... 525
ANEXO II: FUNÇÕES DO VBA ............................................. 529
BIBLIOGRAFIA ................................................................... 533
PARTE I
Na primeira parte deste livro é feito um enquadramento teórico sobre bases de dados. Neste sentido, começamos por abordar os Sistemas de Informação organizacionais, dos quais fazem parte os Sistemas de Bases de Dados. Posteriormente veremos alguns conceitos importantes relacionados com estes assuntos. Explora-mos também o modelo relacional de Bases de Dados, apresen-tando os operadores da Álgebra Relacional e fazendo uma breve abordagem à linguagem SQL. Seguidamente veremos o modelo Entidade-Relacionamento para modelação de dados. Abordare-mos, por fim, o conceito de Dependência Funcional e a sua apli-cação à Normalização de relações. No final de cada capítulo são apresentados os termos chave, algumas questões para revisão e alguns tópicos para investigação.
102 BASES DE DADOS COM MICROSOFT ACCESS 2007
PARA REVER …
23. Explique sucintamente o que entende por:
a. Relação
b. Atributo
c. Tuplo
d. Grau de uma relação
e. Cardinalidade de uma relação
f. Domínio
g. Base de dados relacional
h. Esquema de uma relação
i. Super-chave
j. Chave candidata
k. Chave primária
l. Chave estrangeira
m. Regra de integridade
n. Integridade de entidade
o. Integridade referencial
24. Refira e explique sucintamente os oito operadores originais da Ál-gebra Relacional.
25. Para cada uma das tabelas seguintes identifique, a partir dos dados fornecidos, as super-chaves, as chaves candidatas e a chave pri-mária:
a.
I.4 MODELAÇÃO DE DADOS 137
PARA REVER …
31. Explique por palavras suas cada um dos termos chave apresentados.
32. Em que medida é importante a modelação de dados?
33. Considere o seguinte esquema no modelo Entidade Relacionamento:
Apresente as tabelas do modelo relacional associadas a este esquema.
34. Considere o diagrama E-R seguinte:
divide
Contémensino
requere
Professor
Curso
Turma Aluno
Sala
1
1
M
M
M
M N
N
a. Com base no diagrama, apresente uma descrição do sistema real.
b. Transforme o diagrama de modo a conter apenas relacionamentos com cardinalidade 1:M.
Montanha Rio
origina
nome
comprimento
altitude nome localização
1 N
282 BASES DE DADOS COM MICROSOFT ACCESS 2007
6.10.3 Utilização de Subconsultas
Uma SUBCONSULTA é uma declaração tipo SQL SELECT dentro de outra CONSULTA DE SELECÇÃO ou CONSULTA DE ACÇÃO, ou seja, a SUBCONSULTA é uma consulta que se baseia na consulta principal.
É possível criar uma SUBCONSULTA que defina um campo, ou podemos usar uma SUBCONSULTA que defina o critério de um campo. Para definir um critério para um campo, insere-se a declaração SELECT na linha de crité-rio na grelha de QBE.
Podemos utilizar uma SUBCONSULTA para:
• Calcular totais;
• Testar a existência de algum resultado (se existe ou não uma certa palavra ou informação de um campo);
• Encontrar algum valor que seja maior, menor ou tão grande, como um valor da SUBCONSULTA;
• Criar SUBCONSULTA dentro de SUBCONSULTA.
6.11 EXERCÍCIO GUIADO
Consideremos novamente a nossa base de dados para exemplificação das operações de consultas com o Access. Vamos fazer uma abordagem a grande parte dos procedimentos associados às consultas, recorrendo a exemplos que se enquadrem na utilização da base de dados Editora.
Criação de consultas com base em várias tabelas
Vamos começar por criar uma consulta que apresente os dados referentes às vendas dos livros da editora. A consulta deverá apresentar a data, o tí-tulo, a quantidade e o preço unitário do livro. Para criar a nova consulta devemos accionar o separador CRIAR do friso. Posteriormente, seleccionamos o Botão ES-TRUTURA DA CONSULTA na secção OUTRO. A partir do quadro MOSTRAR TABELA adicionamos as tabelas cujos campos vão ser utilizados na consulta, nomeadamente Vendas, Venda/Livro e Livros.
II.6 MANIPULAÇÃO DE DADOS COM CONSULTAS 283
Figura II.6.45 Quadro MOSTRAR TABELA que permite a adição das tabelas cujos campos vão
ser utilizados na consulta
As referidas tabelas deverão aparecer na parte superior da janela da VISTA
DE ESTRUTURA ligadas pelos respectivos relacionamentos. Em seguida seleccionamos os campos que pretendemos incluir na consulta. Vamos incluir nesta primeira consulta os campos Número, Data da venda, Título, Quantidade e PreçoUnitário do respectivo livro.
Para inserir um campo na grelha de consulta, como já referimos, podemos arrastá-lo da respectiva tabela para a grelha ou seleccioná-lo na caixa de listagem, que podemos abrir na primeira linha da grelha.
Figura II.6.46 VISTA DE ESTRUTURA da consulta Valor Vendas
No final, a nossa consulta deve apresentar uma estrutura como a que pode ser vista na figura II.6.46. Depois de concluída a primeira fase da elabora-ção da consulta, devemos efectuar a sua gravação. Para tal, clicamos no respectivo botão GUARDAR e digitamos o nome Valor Vendas na janela que aparece no ecrã.
284 BASES DE DADOS COM MICROSOFT ACCESS 2007
Figura II.6.47 Caixa de diálogo usada para atribuir um nome e
efectuar a gravação da consulta
Estabelecer uma ordenação Vamos estabelecer uma ordenação dos registos da nossa consulta pela data da venda, de forma a aparecem primeiro as vendas mais recentes. Neste sentido, devemos premir com o rato no rectângulo em branco da co-luna “Data” correspondente à opção ORDENAR. Em seguida, devemos es-colher a opção DESCENDENTE que aparece na caixa de combinação.
Figura II.6.48 Escolha da opção de ordenação na grelha da VISTA DE ESTRUTURA da
consulta Valor Vendas
Critérios para a consulta
Podemos, a partir desta consulta, definir os mais variados critérios de selecção. Por exemplo, vamos elaborar a consulta que apresente apenas as Vendas do Livro “Desenho e Implementação de bases de dados com Microsoft Access XP” em 2004.
Vamos chamar a esta consulta ”Vendas Access 2004”, que terá a mesma estrutura de campos da consulta anterior. Em seguida, vamos introduzir na linha CRITÉRIO as respectivas condições, tal como mostra a figura.
Figura II.6.49 VISTA DE ESTRUTURA da consulta que apresenta apenas as vendas do livro
“Desenho e Implementação de bases de dados com Microsoft Access XP” em 2004
II.6 MANIPULAÇÃO DE DADOS COM CONSULTAS 285
Consultas com parâmetros
Suponhamos que, ao abrir a consulta “Vendas dos Livros”, queríamos indi-car um determinado intervalo de datas para visualizar as respectivas ven-das, sem sermos obrigados a alterar a condição no modo VISTA DE ESTRU-TURA da consulta.
Para resolver este problema, vamos criar uma nova consulta com o nome “Vendas Access Mês” que terá como base a consulta anterior. Adicional-mente, vamos impor que o intervalo de tempo será definido no início da sua execução. A figura seguinte apresenta a sequência dos procedimentos a adoptar, desde a configuração dos critérios da consulta, até à sua exe-cução.
Figura II.6.50 Consulta que apresenta as vendas do livro “Desenho e Implementação de
bases de dados com Microsoft Access XP” nos meses de Agosto e Setembro 2004
Campos calculados
Ainda recorrendo à consulta “Vendas dos Livros”, vamos efectuar algumas alterações que permitam introduzir um campo calculado. Neste caso, vamos inserir um novo campo que apresente o valor da venda de cada livro, ou seja, vamos multiplicar a quantidade pelo preço unitário de cada livro vendido.
Uma vez aberta a consulta em VISTA DE ESTRUTURA, vamos posicionar o indicador do rato na linha CAMPO e na primeira coluna da grelha que estiver vazia. Nessa célula escrevemos “Valor:” que será a legenda a apresentar
460 BASES DE DADOS COM MICROSOFT ACCESS 2007
Figura III.2.95 Tabela Venda/Livro antes da aplicação da instrução UPDATE (SQL)
Figura III.2.96 Tabela Venda/Livro depois da aplicação da instrução UPDATE (SQL), após
confirmação
Devemos ter algum cuidado na utilização deste tipo de consultas avança-das, visto podermos mesmo eliminar, acrescentar ou actualizar registos com valores não desejados. A pensar na eventual possibilidade de engano por parte do utilizador quer na actualização, eliminação e inserção de valo-res não desejados, o SQL nas consultas de acção, antes de realizar o “UPDATE” (actualização), interroga o utilizador, no sentido de confirmar a actualização. Esta interrogação é realizada através de uma caixa de diá-logo (MsgBox), podendo o utilizador ter a última palavra no que concerne à actualização ou não, através dos botões “sim” ou “não”.
O código VBA gerado para realizar este programa exemplo é o seguinte:
Figura III.2.97 código VBA desenvolvido para o exemplo solicitado
III.2 CARACTERÍSTICAS DA PROGRAMAÇÃO EM VBA 461
NOTA: O carácter (_) em código de programação permite quebrar uma linha de código, continuando numa outra imediatamente abaixo sem originar erro de pro-gramação.
Função IIF
A função IIF() permite ao utilizador realizar diferentes acções consoante a avaliação da condição (expressão), devolvendo uma das partes. A sua sin-taxe é a seguinte:
IIF(expressão, ParteVerdadeira, ParteFalsa)
O parâmetro expressão representa a expressão que queremos avaliar. Os parâmetros ParteVerdadeira e ParteFalsa, representam os valores de retorno, caso a expressão seja verdadeira ou falsa, respectivamente (figura III.2.100).
Funções categoria Data e Hora
As funções pertencentes a esta categoria assumem uma importância vital, nomeadamente as funções “Date” e “Time”, quando se pretende saber a hora e a data exacta em que um determinado registo foi introduzido ou então introduzir num formulário/relatório a data e hora. Vamos então enu-merar algumas dessas funções:
=Date() Esta função devolve um tipo de dados “Variant” contendo a data de sistema.
=Time() Esta função devolve um tipo de dados “Variant” contendo a hora de sistema.
=Now() Esta função combina as duas funções anteriores, devol-vendo um valor “Variant” que especifica a data e a hora de acordo com o relógio interno do computador.