VIDAL DE CARVALHO ANA AZEVEDO ANTÓNIO ABREU BASES DADOS DE 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 13 ÍNDICE 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 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. Exploramos também o modelo relacional de Bases de Dados, apresentando os operadores da Álgebra Relacional e fazendo uma breve abordagem à linguagem SQL. Seguidamente veremos o modelo Entidade-Relacionamento para modelação de dados. Abordaremos, por fim, o conceito de Dependência Funcional e a sua aplicaçã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. I 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 Álgebra Relacional. 25. Para cada uma das tabelas seguintes identifique, a partir dos dados fornecidos, as super-chaves, as chaves candidatas e a chave primária: a. 137 I.4 MODELAÇÃO DE DADOS 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: comprimento 1 Montanha altitude nome localização N origina Rio nome Apresente as tabelas do modelo relacional associadas a este esquema. 34. Considere o diagrama E-R seguinte: Curso 1 divide M Professor 1 ensino M Turma M Contém N Aluno M requere N Sala 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. 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 ESTRUTURA 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 coluna “Data” correspondente à opção ORDENAR. Em seguida, devemos escolher 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 indicar um determinado intervalo de datas para visualizar as respectivas vendas, sem sermos obrigados a alterar a condição no modo VISTA DE ESTRUTURA 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. Adicionalmente, 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 execuçã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çadas, 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 valores 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 programaçã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 sintaxe é 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 enumerar 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, devolvendo um valor “Variant” que especifica a data e a hora de acordo com o relógio interno do computador.