Escolar Documentos
Profissional Documentos
Cultura Documentos
MICROSOFT ACCESS
FEA/USP
1998
Captulo 1 Tabelas
1.1 - Definio
Uma Tabela uma rea de disco ou memria que armazena informaes sobre algum assunto, por exemplo, uma relao de funcionrios. As informaes de cada funcionrio constituem um registro. Uma determinada informao constitui um campo.
Registro
Nome da Tabela
Chave Primria
Campo
Nome do Campo
Texto (3)
Nmero
Texto (30)
Texto (5)
Figura 1.1 - Tabela Cada campo possui caractersticas prprias. Por exemplo, na tabela da figura 1.1 podemos identificar campos numricos como o campo nmero do funcionrio e campos alfanumricos ou textuais como o campo nome do funcionrio. Dizemos, portanto, que cada campo contm dados de um certo tipo. Alm do tipo, cada campo possui caractersticas adicionais que eventualmente dependem do seu tipo. Por exemplo, campos textuais possuem um comprimento mximo em nmero de caracteres. Por outro lado, em campos numricos as informaes so armazenadas em diferentes formatos internos do computador: como nmero inteiro, como nmero fracionrio, como nmero fracionrio de dupla preciso etc. Todas estas caractersticas precisam ser especificadas quando se cria uma nova tabela no Banco de Dados.
Usualmente tambm necessrio especificar para cada tabela qual o campo ( ou conjuntos de campos ) que identifica univocamente cada registro. Este campo denominado Chave Primria. No exemplo dado, a chave primria mais natural o campo nmero do funcionrio j que nunca teremos dois funcionrios com o mesmo nmero. O campo nome do funcionrio no seria uma boa escolha porque podemos ter homnimos na tabela. A chave primria: determina a ordem padro segundo a qual os registros so listados na tela; impede que se alimentem dois registro com chaves idnticas.
Figura 1.2 Janela Banco de dados Geralmente, o Access abre na janela Tabela. Caso isso no ocorra, basta selecion-la e em resposta na janela aparecero todas as tabelas pertencentes ao Banco de Dados em questo. Quando uma nova tabela criada, o Access atribui a ela o nome de Tabela1. Este nome ser posteriormente alterado para o nome definitivo da tabela. A figura 1.3 mostra a
4
janela de definio de estruturas de tabelas, ela vem acompanhada da correspondente barra de ferramentas mostrada na figura 1.4. Para digitar informaes basta clicar a barra de insero na linha desejada e digitar. Para saltar de uma coluna para outra, basta utilizar a tecla TAB. Para remover informaes, selecione ou marque e use a tecla Delete ou DEL.
Clicar para selecionar todas as linhas Clicar para selecionar a linha inteira Aumenta a largura das colunas Definio dos campos
Help
Salva modificaes
ndices
Figura 1.5 Tipos de dados Texto: Memorando: Nmero: Data/Hora: Moeda: AutoNumerao: Sim/No: Assistente de pesquisa: at 255 caracteres at 65.535 bytes (sentenas/pargrafos) tipo exato depende do tamanho do campo data e hora para anos de 100 a 9999 15 dgitos esquerda e 4 a direita do ponto decimal incrementado automaticamente ao adicionar registro valor booleano de 1 bit cria campo cujo valor pode ser escolhido de uma lista
Os campos tipo nmero podem ter vrios tamanhos de campo que determinam sua capacidade de armazenamento de valores numricos:
Tamanho Byte Inteiro Inteiro Longo Simples Duplo Bytes 1 2 4 4 8 Variao 0 a 255 -32.768 a 32767 -2.147.483.648 a 2.147.483.647 -3.402.823E38 a 3.402.823E38 -179.768.313.486.232E308 a 179.769.313.486.232E308
Alm disso, os nmeros podem ter diversos formatos de exibio. Os formatos apenas atuam sobre a forma como o dado mostrado na tela, ele no altera a forma de armazenamento interno. O nmero de casas decimais tambm pode ser escolhido pelo usurio: Nmero geral: Moeda: Fixo: Padro: Porcentagem: Cientfico: exibe o nmero no formato padro separa milhares, mostra negativos entre parentesis, com 2 decimais exibe no mnimo 1 dgito com dois decimais idem, mas separa em milhares multiplica por 100 e acrescenta sinal % usa notao mantissa/expoente
As outras propriedades dos campos incluem: Mscara de entrada: Legenda: Valor padro: Regra de validao: Texto de validao: Requerido: Comprimento zero: Indexado: usada para facilitar a entrada de dados para ser usada no lugar do nome do campo em formulrios valor que inicializa o campo expresso que verifica a consistncia do dado alimentado (por exemplo: >0 e < 100) mensagem de erro a ser apresentada se a regra de validao no foi satisfeita indica que este campo exige entrada de algum dado, se no for requerido, o campo admitir o valor nulo (teclar enter) indica se a cadeia vazia() para campos texto constitui ou no uma entrada vlida permite definir o campo como sendo um ndice para acelerar o acesso s informaes da tabela.
Para alterar a campo chave, simplesmente reposicione sobre outro campo e clique o boto da chave primria. Em geral necessrio definir uma chave primria para cada tabela. No cadastro de funcionrios, o campo nmero do funcionrio o candidato mais natural pois define precisamente cada funcionrio. O campo nome do funcionrio seria um candidato se tivssemos certeza de que no ocorressem homnimos no cadastro. possvel criar tabelas sem chave primria, basta que o usurio responda No quando o Access perguntar se deseja ou no criar uma chave ( a pergunta feita sempre que o usurio no tiver acionado a definio atravs do boto correspondente). Quando o Access faz esta pergunta o usurio deve tomar cuidado pois a resposta Sim faz com o Access inclua mais um campo automaticamente. Este um campo de autonumerao que funciona como chave pois cada novo registro inserido ele numera atravs deste campo. Em geral o usurio no deseja esse campo. Sugere-se que o usurio d como resposta Cancelar voltando para a janela de estrutura onde ele pode escolher e definir o(s) campo(s) da chave primria.
Primeiro registro
Retroceder registro
Avanar registro
ltimo registro
Novo registro
Figura 1.6 Folha de Dados de uma tabela Para remover registros, selecione os registros e aperte a tecla DEL ou aperte o boto de Excluir registro. Para criar um novo registro basta posicionar o ponto de insero em uma linha em branco ou clicar no boto de Novo registro situado na barra de ferramentas ou na borda inferior da tabela. Para inserir registros, insira sempre no final. Quando a tabela for reapresentada o registro estar inserido de acordo com a chave primria. Para alterar registros basta redigitar por cima do texto atual. Pode-se alterar o layout da folha de dados alterando a altura das linhas, largura de colunas, fontes para caracteres etc. Para tanto, utilizar no menu Formatar as opes l indicadas. A opo Congelar colunas serve para fixar a coluna onde est o ponto de insero ou colunas situadas esquerda da janela, evitando que elas sejam roladas para fora. Para salvar as mudanas no layout da tabela basta clicar no boto Salvar na barra de ferramentas ou selecionar a opo Salvar no menu Arquivo. Ao fechar a tabela sem ter salvado as alteraes, o prprio Access abre uma caixa de dilogo perguntando se voc deseja salvar o novo layout; caso voc queira salv-lo clique em Sim.
Para trocar colunas de lugar, selecione a coluna, clique novamente na sua legenda e arraste-a para uma outra coluna ao lado da qual ser inserida. Pode-se copiar, mover e remover dados/registros via menu Editar e opes Recortar, Copiar, Colar, tradicionais em ambiente Windows. Podemos copiar dados entre campos, copiar registros para o final da tabela ou copiar registros entre tabelas diferentes. Neste ltimo caso a cpia feita segundo a ordem dos campos, independentemente do nome deles. Caso se deseja que a cpia substitua certos registros, estes devem ser selecionados antes de usar Colar. Se a cpia for para o final da tabela, utilizar Colar acrscimo no menu Editar. A folha de dados possui barra de ferramentas prpria:
Filtros Aplicar/remover filtro
Salvar
Visualizar impresso
Figura 1.7 Barra de ferramentas da folha de dados de uma tabela Para procurar dados na tabela pode-se acionar o boto correspondente na barra de ferramentas ou utilizar Localizar no menu Editar. Na caixa de dilogo que aparecer em seguida voc pode escolher onde o dado deve ser procurado. Em princpio, a procura ser feita no campo onde est o ponto de insero. Tambm possvel trocar uma informao por outra atravs da opo Substituir do menu Editar. Neste caso necessrio fornecer o valor a procurar e o novo valor que ser atribudo. Para mostrar na folha de dados apenas os registros que satisfaam determinada condio deve-se especificar um filtro. A montagem de filtros utiliza recursos anlogos construo de consultas como ser visto mais adiante. Uma vez especificados os critrios de seleo dos registros, aplica-se o filtro com o boto correspondente. Para voltar a visualizar todos os registros utiliza-se o boto Remover.
As folhas de dados das outras tabelas que constituem o banco de dados Empresa esto indicadas a seguir:
10
Captulo 2 Relacionamentos
comum que informaes de uma tabela estejam associadas com informaes de outras tabelas. Neste caso podemos estabelecer um relacionamento entre as duas tabelas. atravs do relacionamento que o Access consegue, a partir de informaes numa tabela, obter informaes registradas na outra tabela. Existem trs tipos de relacionamentos entre duas tabelas A e B: um-para-um, um-para-muitos e muitos-para-muitos.
11
ocupado por diversos funcionrios. Nesse relacionamento fica imediatamente aparente que ao par funcionrio/cargo provavelmente estaro associadas outras informaes, por exemplo, a data em que o funcionrio assumiu o cargo em questo. Relacionamentos do tipo muitos-para-muitos no podem ser especificados diretamente em Access. necessria a criao de uma tabela intermediria que no caso poderia ter o nome: cargos ocupados. Cada registro nesta tabela seria composto de trs campos: nmero do funcionrio, cdigo do cargo e data de admisso neste cargo. Como se observa, criou-se um relacionamento um-para-muitos entre o cadastro de funcionrios e o cadastro de cargos ocupados e, analogamente, outro relacionamento um-para-muitos entre o cadastro de cargos e salrios e o cadastro de cargos ocupados. Portanto um relacionamento muitos-para-muitos convertido em dois relacionamentos um-paramuitos quando houver informaes associadas aos pares relacionados.
12
Para exibir a janela Relacionamentos, clica-se o boto Relacionamentos na barra de ferramentas da janela Banco de Dados. Em resposta aparece a janela acompanhada da janela de dilogo Mostrar Tabela. Se o dilogo no aparecer, basta clicar o boto Mostrar tabela na barra de ferramentas. No caso foram adicionadas as trs tabelas anteriormente construdas. As tabelas adicionais podem ser arrastadas e redimensionadas at que fiquem visualmente legveis. Para criar o relacionamento entre o cadastro de departamentos e o cadastro de funcionrios, clica-se sobre o campo sigla do departamento na tabela cadastro de departamentos e arrasta-se at o campo sigla do departamento na tabela cadastro de funcionrios. Em resposta surge a janela de dilogo relacionamentos (figura 2.3) para que sejam fornecidas mais especificaes sobre a ligao em questo. Caso se deseje alterar posteriormente estas especificaes basta dar duplo clique sobre a linha de unio, isto faz aparecer a janela de dilogo relacionamentos. No caso deseja-se impor a integridade referencial para impossibilitar o cadastramento de funcionrios em departamentos inexistentes no cadastro de departamentos. Ao ligar esta opo passa a ser necessrio especificar tambm qual o tipo de relacionamento. O tipo um-para-muitos j aparece selecionado porque o padro do Access. Alm disso, necessrio indicar se deseja-se a atualizao em cascata e a excluso em cascata. A atualizao em cascata ocorre quando se altera a sigla de um departamento na cadastro de departamentos e automaticamente todas siglas correspondentes no cadastro de funcionrios so atualizadas. A excluso em cascata ocorre na caso da excluso de um departamento do cadastro de departamentos. Em resposta so excludos todos os registros correspondentes do cadastro de funcionrios. Ao fechar a janela Relacionamentos o sistema em geral pergunta se deseja-se salvar o layout desta janela. Convm salv-lo se uma nova distribuio das tabelas for visualmente mais adequada. Deve-se observar que o desenho dos relacionamentos indica se ele do tipo um-para-muitos (algarismo 1 e smbolo de infinito) ou um-para-um (algarismo 1). As bordas mais grossas da linha de unio indicam que a integridade referencial foi imposta para o relacionamento.
13
internamente. Em seguida pode-se adicionar uma tabela e utilizar o boto da barra de ferramentas Exibir relacionamentos diretos para exibir apenas os relacionamentos diretamente associados tabela. Para exibir tudo, acione o boto Exibir todos relacionamentos.
Mostrar tabela
Limpar layout
14
Captulo 3 Consultas
3.1 Definio
Uma consulta recupera informaes no Banco de Dados e eventualmente apresenta-as na tela. Sero estudados trs tipos de consultas: de seleo: seleciona e apresenta registros no formato padro de cruzamento: seleciona e apresenta registros em formato de planilha de ao: altera o contedo de registros numa nica operao
Os registros selecionados constituem um conjunto. Este conjunto dinmico no sentido de seu contedo ter por origem vrias tabelas e no sentido de s existir enquanto a consulta estiver ativa. Ao fechar uma consulta, ele deixa de existir. Isto constitui uma grande vantagem pois se alterarmos os dados de uma tabela as consultas sobre ela automaticamente refletiro essas alteraes. Consultas constituem um recurso prtico para obter informaes especficas contidas no Banco de Dados. Com elas podemos: escolher campos especficos de tabelas especficas; selecionar informaes via critrios; mostrar as informaes em vrias ordens; obter dados de vrias tabelas simultaneamente; calcular totais; criar formulrios e relatrios; criar outras consultas e grficos.
15
Figura 3.1 Janela Mostrar tabela da consulta A ativao da janela de dilogo Mostrar tabela tambm pode ser realizada atravs do menu Consulta opo Mostrar tabela ou pelo boto correspondente na barra de ferramentas. A janela Consulta Seleo possui duas reas, a rea das tabelas envolvidas na consulta e a rea da consulta propriamente ativa. Nesta ltima rea a montagem da consulta feita atravs do esquema QBE (query by example). Neste esquema criamos as consultas arrastando campos da rea superior da janela para a rea inferior. Na planilha QBE cada coluna contm informaes a respeito do campo includo na consulta.
Executa a consulta
Mostrar tabela
Propriedades
Tipo de consulta
Figura 3.2 Barra de ferramentas da Janela Consulta A figura 3.3 mostra a estrutura da consulta que foi denominada Engenheiros da Empresa. Ao acionar a execuo da consulta aparece o resultado apresentado na figura
16
3.4. Esta figura mostra que o resultado apresentado numa folha de dados que, em princpio, pode ser tambm usada para alterar e excluir registros.
Duplo clic seleciona tudo Chave primria Arrastar para o campo ou duplo clic Inclui todos os campos A seta seleciona a coluna
17
Tambm possvel adicionar um campo selecionando o campo na rea inferior. Basta abrir a caixa de combinao que aparece quando o ponto de insero est posicionado na rea do campo e escolher entre os campos listados. Para adicionar todos os campos da tabela planilha QBE necessrio inicialmente selecionar todos os campos. H um atalho para esta tarefa: basta clicar duas vezes a barra de ttulo da tabela. Outro mtodo consiste no arraste da linha de asterisco (*) da tabela para algum campo da parte inferior. Entretanto, neste caso ele arrasta toda a tabela e produz um efeito secundrio interessante: caso a tabela venha a ser alterada na sua estrutura, pela adio/excluso de campos, no ser necessrio refazer a consulta envolvida. Por outro lado, campos QBE baseados em asterisco no admitem critrio de classificao e seleo. Para inserir um campo entre outros j existentes na planilha QBE basta arrastar o campo selecionado na parte superior para o campo que ficar direita do campo inserido. Para rearranjar campos na planilha QBE basta selecionar e arrastar para outra posio. Para eliminar um campo, basta selecionar e dar DEL. Para remover todos os campos da planilha use a opo Limpar grade do menu Editar. O texto que identifica colunas na folha de dados o nome do campo. Muitas vezes esse nome longo e deseja-se substitui-lo por outro. Para tanto basta preceder o nome do campo na planilha QBE com o nome desejado seguido de dois pontos. Exemplo: Cargo: cdigo do cargo. Entretanto, se a coluna possuir a propriedade legenda esta ter prioridade. Eventualmente necessrio utilizar um campo numa consulta sem que haja necessidade de mostr-lo na folha de dados, por exemplo, quando esse campo participa da chave de classificao. Neste caso basta desativar a marquinha de Mostrar correspondente na planilha QBE.
18
estabelecidos os critrios de classificao e seleo concomitantemente com a desativao de sua apresentao na linha Mostrar da planilha QBE.
19
expresses ligadas por e ficam na mesma linha expresses ligadas por ou ficam em linhas diferentes.
Os exemplos seguintes esclarecem a questo: a) selecionar todos os engenheiros e que sejam do departamento de finanas:
b)
todos
os
engenheiros
ou
funcionrios
do
departamento
de
finanas:
c) todos engenheiros nvel 2 do departamento de marketing ou engenheiros nvel 2 com nomes iniciados pela letra R
20
Figura 3.6 Consultas sem e com valores exclusivos Como se observa h repetio de valores pois todos os registros foram selecionados e apenas o campo cdigo do cargo apresentado. Para listar sem repetio deve-se indicar que a seleo deve omitir valores repetidos. Para tanto deve-se acionar na tela de projeto (Modo Estrutura) o menu Exibir opo Propriedades ou clicar no boto correspondente. Na janela de dilogo que aparece em seguida, ativar a opo Valores Exclusivos.
21
que consta nas duas tabelas. Essa ligao estabelecida no modo estrutura da consulta aps ter-se adicionado as duas tabelas na parte superior. Para fazer a ligao, basta clicar sobre a linha cdigo do cargo na tabela cadastro de funcionrios e arrastar at que o cone fique sobre a linha cdigo do cargo na tabela cadastro de cargos e salrios. Se os campos envolvidos possurem o mesmo nome nas duas tabelas ento o Access tentar estabelecer o relacionamento automaticamente. Da mesma forma, caso j tenham sido estabelecidos os relacionamentos entre as duas tabelas na janela relacionamentos, ento ao adicionar as tabelas na janela de projeto de consultas automaticamente aparecer a reta de ligao entre os campos relacionados. Finalmente especificamos na planilha QBE quais campos a incluir na consulta: o nome do funcionrio o salrio do cargo o desconto de 8% sobre o salrio
O ltimo campo um campo computado cuja descrio se inicia com a palavra desconto seguida de dois pontos. Esta ser a legenda da coluna. O clculo efetuado envolve a seguinte expresso: Cmoeda(IIf(nulo([salrio do cargo]);0;[salrio do cargo]*0,08)) Esta frmula envolve vrias funes internas do sistema. Inicialmente deve-se observar que campos envolvidos em expresses precisam estar entre colchetes, da a razo de se escrever [salrio do cargo]. A funo IIf uma funo do tipo IIf(x;y;z) onde x um teste e y e z so os resultados que a funo fornece. Se o teste der verdadeiro, ento retorna o resultado y, se o teste der falso, ento retorna z. No caso, necessrio testar o campo salrio do cargo pois podemos ter funcionrios sem cargo. Dessa forma, feito um teste para verificar se o campo tem valor nulo. Observar que ao digitar IIf, o nome da funo automaticamente substitudo pelo nome Selmed. Observar tambm que o fato do salrio no existir que est sendo testado pela funo nulo e no que o valor do salrio valha zero. Se no existir o salrio ento retorna zero como desconto. Se o salrio existir ento ele empregado para calcular 8% sobre ele. Tanto um resultado quanto o outro acabam sendo alimentados na funo Cmoeda que converte esse resultado do formato interno para formato moeda e que finalmente apresentado na folha de dados. A frmula para clculo dos descontos foi digitada diretamente na coluna QBE porm, poderia ter sido construda com auxlio do boto Construir que aciona o construtor de expresses.
22
3.10 Totalizaes
possvel obter totais em consultas. Podemos contar o nmero de ocorrncias de registros, obter somas, mdias, mnimos, mximos etc. Para obter totais necessrio acrescentar uma linha Total na planilha QBE o que feito pelo boto somatria na barra de ferramentas ou menu Exibir opo Totais. Na linha Total para cada campo da consulta dever ser especificado o tipo de totalizao desejada. Por exemplo, se o campo servir apenas para contar registros, devemos escolher a opo Contar. Se o campo tiver que ser somado, escolhe-se Soma. Por outro lado, sempre haver campos que vo controlar o agrupamento dos registros, por exemplo, se
23
desejamos totais por departamentos, no caso para o de nome do departamento, especificaremos Agrupar por. Para obter totais de subagrupamentos basta incluir na sequncia correta os campos que do origem aos grupos e subgrupos indicando a ordem de classificao mais conveniente. O exemplo da figura 3.9 mostra a obteno do total de funcionrios por cargo dentro de cada departamento. Para cada entrada nesta consulta tambm apresentada a soma dos salrios. Na figura 3.10 da folha de dados observa-se que a coluna com o total dos salrios possui legenda e est em formato moeda. Estas caractersticas foram definidas selecionando a coluna salrio do cargo na janela de estrutura da consulta e acionando o boto propriedades na barra de ferramentas. Na janela Propriedades do campo foram especificados o formato moeda, casas decimais automticas e legenda Soma.
24
25
26
Figura 3.13 Consulta para campos associados iguais Ao se clicar sobre a linha de associao aparece a janela Propriedades da Associao, conforme a figura 3.14.
Figura 3.14 Janela para definir tipo de associao Nessa janela est ligada a primeira opo, o que indica que na folha de dados da consulta s iro aparecer as informaes de campos das duas tabelas para registros onde o nmero do gerente e o nmero do funcionrio forem iguais. A folha de dados correspondente aparece na figura 3.15.
27
Figura 3.15 Folha de dados para a associao tipo 1 Por outro lado, se desejamos que apaream todos os departamentos mesmo aqueles que no possuem gerente ou cujo nmero de gente por alguma razo no ocorra no cadastro de funcionrios, ento devemos ligar a opo que inclui todos os registros do cadastro de departamentos. Observar que neste caso a linha de associao se transforma numa seta que vai do cadastro de departamentos para o cadastro de funcionrios. A folha de dados correspondente aparece na figura 3.16.
Figura 3.16 - Folha de dados para a associao tipo 2 Finalmente possvel relacionar todos os funcionrios do cadastro de funcionrios acompanhados de seu eventual registro associado no cadastro de departamentos (caso sejam gerentes). Neste caso necessrio escolher a terceira opo na janela Propriedades da Associao. Observar que neste caso a linha de associao se transforma numa seta que vai do cadastro de funcionrios para o cadastro de departamentos. A folha de dados correspondente aparece na figura 3.17.
28
29
30
Figura 4.1 Boto tipo de consulta O sistema em geral vai exigir confirmao para cada ao realizada por este tipo de consulta. Observe que esta confirmao pode ser inibida ( via menu Ferramentas, opo Opes, categoria Editar/Localizar, opo Confirmar consultas Ao). Para construir consultas envolvendo aes secundrias normalmente partimos de uma consulta tipo Seleo. Tambm uma boa prtica inicialmente testar a seleo para verificar sobre quais registros ela atua antes de transform-la numa consulta tipo Ao. As aes que podemos ativar so: Construir novas tabelas Excluir registros de tabelas Adicionar registros tabela Alterar blocos de registros de tabelas.
31
estrutura da consulta ou Boto tipo de consulta e clicando na opo Consulta criar tabela. Em resposta aparecer uma janela de dilogo para informar o nome que deve ser atribudo a tabela: funcionrios de mkt.
Figura 4.2 Consulta para a criao de uma nova tabela Observar na figura 4.2 que na consulta foram includos todos os campos do cadastro de funcionrios atravs do arraste do asterisco correspondente. Isto impede a especificao do critrio de seleo, por esta razo foi includa a coluna sigla do departamento, porm, com a caixa Mostrar inibida. Alm disso, para a coluna salrio do cargo foi necessrio, via dilogo de propriedades do campo, especificar formato moeda com duas casas decimais.
32
Para realizar a ao devemos acionar o boto de execuo na barra de ferramentas (boto com ponto de exclamao). O sistema responde dizendo quantos registros sero copiados e exige confirmao. Para inspecionar a tabela gerada devemos fechar a janela de estrutura de consultas e ir para a janela do Banco de Dados ativando Tabela e Abrir para a tabela funcionrios de mkt.
Onde: indicao do campo cujo critrio ser considerado como sendo de excluso. De: indicao da tabela na qual a excluso deve ser feita Critrio dos registros a serem excludos
33
Figura 4.3 Consulta para a excluso dos engenheiros da tabela funcionrios de mkt cpia1
A consulta de anexao de registros utiliza como origem dos campos as tabelas cadastro de funcionrios e cadastro de cargos e salrios pois ser necessrio acrescentar o salrio de cada funcionrio. Como pretendemos anexar somente os engenheiros, ser necessrio indicar na planilha QBE que alm da seleo do departamento(mkt), necessrio selecionar o cargo(eng*). Portanto iremos selecionar os funcionrios de mkt que sejam engenheiros. A seguir, a consulta convertida numa consulta de anexao escolhendo a opo Consulta acrscimo do menu Consulta. Ser solicitado o nome da tabela a qual as informaes sero anexadas: funcionrios de mkt cpia 2. Em seguida podemos executar a consulta via boto executar e salvar a Consulta de anexao com nome: anexa eng* em funcionrios de mkt cpia 2. Observar na figura 4.4 que os dados foram recompostos porm esto fora de ordem pois a tabela no possui chave primria.
34
35
36
Para gerar um formulrio rapidamente no formato padro basta escolher o assistente para autoformulrios colunar, tabular ou folha de dados. Ao final deste processo pode-se inspecionar o formulrio gerado na janela de estrutura ou na janela de formulrio com os dados da tabela ou consulta. Acessoriamente pode-se inspecionar essa tabela ou consulta no formato padro de folha de dados, basta acionar os botes correspondentes na barra de ferramentas na parte superior da tela. A figura 5.1 mostra o formulrio gerado para o cadastro de funcionrios.
Figura 5.1 Formulrio gerado pelo assistente para o cadastro de funcionrios Para verificar a distribuio das informaes desse formulrio impresso, basta acionar o boto Visualizar impresso. Este boto tambm pode ser acionado diretamente na janela Banco de Dados. O sistema fornece uma viso da impresso em formato compactado. Para visualizar detalhes pode-se acionar o zoom clicando sobre a parte desejada. Para sair
37
do modo de visualizao de impresso, basta clicar a tecla ESC ou clicar o boto Fechar na barra de ferramentas.
Sees
Rtulos
Figura 5.2 Janela de projeto do formulrio do cadastro de funcionrios. As barras de ferramentas para a construo de formulrios apresentam recursos que dependem da personificao usada (menu Exibir, opo Barra de Ferramentas, Personalizar). Em geral apresentam-se configuradas conforme a figura 5.3. Alm disso, tambm empregada a caixa de ferramentas para construir rtulos e caixas de texto conforme detalhado a seguir. Caso as barras ou a caixa no estejam visveis no modo estrutura do formulrio deve-se torn-los visveis atravs das opes no menu Exibir.
Lista de campos
Caixa de ferramentas
Propriedades
Cor de fundo
Cor de letra
Cor de borda
Tipo de borda
38
Figura 5.3 Barras e caixa de ferramentas para a construo de formulrios O projetista de formulrios manipula controles na janela de estrutura. As aes que ele pode realizar em geral envolvem seleo, movimentao, redimensionamento e ajuste destes controles. Estas aes bsicas tambm valem para o desenvolvimento de relatrios sendo apresentadas a seguir.
5.1 Seleo
A seleo do controle feita clicando sobre ele, em resposta aparecem marcas guias de manipulao (handles). Alguns controles, como caixas de texto, possuem outro controle associado do tipo rtulo. Estes dois controles em geral andam juntos.
Guias de Movimentao
Guias de Redimensionamento
Rtulo
Figura 5.4 Caixa de texto com rtulo associado Clicando sobre o rtulo ser considerado selecionado o rtulo, clicando sobre a caixa de texto ser considerada selecionada a caixa de texto. possvel selecionar mltiplos controles clicando o mouse fora da rea em que esto estes controles, arrastando por sobre eles at envolv-los e soltando em seguida o mouse. Este procedimento tambm pode ser usado para selecionar s caixas de texto ou s rtulos dependendo de quais objetos foram envolvidos pela seleo. Outra forma de selecionar mltiplos controles clicando um por um enquanto se mantm pressionada a tecla SHIFT.
39
5.2 Movimentao
Para movimentar o par rtulo e caixa de texto selecionados deve-se colocar o cursor sobre suas bordas inferiores at que ele se transforme numa mozinha. Neste instante deve-se clicar e arrastar. Para mover apenas o rtulo, clicar a sua guia de movimentao(a seta se transforma em uma mozinha com o dedo indicador apontando para a guia) e arrastar. Para mover apenas a caixa de texto utilizar sua correspondente marca guia. Observar que apesar da movimentao ser separada, os dois controles permanecem associados. Caso seja necessrio mover apenas um dos elementos do par para outra seo (cabealho, rodap), ser necessrio utilizar o menu Editar. Seleciona-se o elemento e utiliza-se Recortar. A seguir seleciona-se a seo objetivo e aciona-se Colar. Agora os dois controles estaro definitivamente desassociados. Para restringir a direo de movimentao dos controles recomenda-se manter pressionada a tecla SHIFT, selecionar o controle e arrast-lo. A direo do primeiro movimento prevalecer e ser a nica segundo a qual poderemos mover o controle at soltar o boto do mouse.
5.3 Redimensionamento
O redimensionamento feito atravs do posicionamento do mouse sobre uma guia de redimensionamento. O ponteiro deve mudar de formato para uma seta de duas pontas, neste instante deve-se clicar e arrastar. possvel ajustar as bordas de rtulos ao texto que ele contm automaticamente. Deve-se selecionar o rtulo e acionar Formatar, Dimensionar, Para caber. Caso o texto seja expandido ou reduzido em quantidade de caracteres, automaticamente feito o ajuste das bordas.
5.4 Replicao
Podemos duplicar um controle diversas vezes. Deve-se selecionar o controle e usar o menu Editar com a opo Duplicar. A duplicata que aparece ao lado ou abaixo do controle original deve ser movida para a posio desejada e, caso necessrio, nova duplicao pode ser solicitada. Neste caso a duplicata j vai aparecer numa posio relativamente idntica a que havia entre os dois controles anteriores. Outra maneira de replicar atravs do recurso Copiar/Recortar/Colar. Neste caso seleciona-se o objeto, recorta-se ou copia-se via menu Editar. A seguir, seleciona-se a
40
seo (detalhe, rodap, cabealho) para onde deve ser feita a colagem. Novamente no menu Editar escolhe-se Colar.
A partir deste instante, todos os novos controles desenhados na tela sero automaticamente alinhados s marcas de grade. Caso, para algum controle, no se deseje este efeito, deve-se manter pressionada a tecla CTRL enquanto se desenha/arrasta o controle na tela. A apresentao da grade pode ser desligada desativando a opo Grade no menu Exibir. O alinhamento automtico pode ser inibido desligando a opo Encaixar na grade no menu Formatar. Se o alinhamento automtico no est ativo, possvel momentaneamente fazer um alinhamento. Deve-se selecionar os controles a acionar o menu Formatar, opo Alinhar
41
seguida da opo grade. Todos os controles selecionados sero alinhados segundo sua ponta superior esquerda. Caso se deseje que um controle totalmente desalinhado (nem a ponta superior esquerda, nem suas dimenses esto conforme a grade) fique de acordo com a grade deve-se acionar o menu Formatar com a opo Dimensionar/na grade.
Para copiar formulrios entre Banco de Dados distintos deve-se utilizar a opo Exportar do menu Arquivo.
42
A lista de propriedades permite ajustar caractersticas especficas de cada controle. Para exibi-la deve-se selecionar o objeto, o menu Exibir e opo Propriedades ou acionar o boto de propriedades na barra de ferramentas. O mesmo efeito tambm obtido clicando duas vezes o objeto ao selecion-lo. Ao digitar o valor de uma propriedade pode ser que a rea seja insuficiente, utilize SHIFT + F2 para mostrar a caixa de zoom da propriedade. Para exibir a lista de campos deve-se acionar o menu Exibir e opo Lista de Campos. Tambm pode-se acionar o boto da lista de campos na barra de ferramentas. Existem paletas de cores para o fundo/preenchimento, para o primeiro plano/fonte e para linha/borda. A utilizao dessas paletas realizada atravs da barra de ferramentas de formatao que, caso no esteja ativa, deve ser acionada via menu Exibir opo Barra de Ferramentas e Formatao. A caixa de ferramentas em geral j vem exibida quando alternamos para a janela de estrutura. Caso seja necessrio forar a exibio da caixa de ferramentas, deve-se usar o menu Exibir opo Caixa de ferramentas, ou clicar o boto correspondente na barra de ferramentas.
Selecionador de objetos Rtulo Grupo de opo Boto de opo Caixa de combinao Boto de comando Moldura de objeto no acoplado Quebra de pgina Subformulrio/subrelatrio Retngulo Assistente para controles Caixa de texto Boto alternar Caixa de seleo Caixa de listagem Imagem Moldura de objeto acoplado Controle guia Linha Mais controles
43
No formulrio criamos e manipulamos controles que podem ser de trs tipos: controle associado a algum campo de tabela ou consulta e que exibir automaticamente o contedo deste campo controle sem associao como o caso de retas, retngulos, cabealhos e caixas de texto para a entrada de dados que no vo para a tabela controle calculado que ficar ligado uma expresso.
44
Formato: Casas Decimais: Texto da barra de Status: Valor Padro: Regra de validao: Bloqueado:
permite especificar um formato para a apresentao de valores nas caixas quantas casa decimais sero apresentadas texto a ser exibido na barra de status na parte inferior da tela quando o controle for ativado no formulrio valor padro que preenche inicialmente o controle teste da consistncia sobre o dado alimentado, por exemplo >0 e <1000 indica que este controle no pode receber qualquer entrada de dados.
Figura 6.2 Estrutura do formulrio com listas de escolhas Caixa de combinao para cdigo do cargo Inicialmente deve-se selecionar e remover o rtulo e a caixa de texto correspondente ao cdigo do cargo pois vamos substitui-los pela caixa de combinao. Proceder conforme indicado:
45
escolher caixa de combinao na caixa de ferramentas desenhar na rea de detalhe no rtulo associado digitar cdigo selecionar a caixa de combinao e abrir a janela de propriedades definindo:
Tipo de origem da linha como sendo Tabela/Consulta, pois iremos obter os cdigos dos cargos da tabela cadastro de cargos e salrios, somente os cdigos l cadastrados podero ser escolhidos pelo usurio. Origem da linha como sendo cadastro de cargos e salrios, pois a tabela onde esto os cdigos vlidos. Nmero de colunas como sendo 3, pois queremos apresentar os trs primeiros campos que constituem a tabela cadastro de cargos e salrios. Cabealhos das colunas como sim, pois desejamos identificar pelo nome dos campos da tabela origem as colunas da caixa de combinao. Largura das colunas como sendo 1cm; 2,71cm; 2cm, pois desejamos evitar que a caixa de combinao venha com barras de rolagem horizontais. Coluna acoplada como sendo 1, pois o primeiro campo da tabela cadastro de cargos e salrios que contm o cdigo do cargo que pode ser escolhido pelo usurio. Linhas da lista como sendo 8, pois queremos evitar a barra de rolagem vertical. Limitar a uma lista como sendo sim, pois queremos impedir que o usurio digite um valor para o cdigo do cargo, ele apenas pode escolher dentre a lista. Finalmente, e isto deve ser entendido claramente, necessrio indicar de onde vem o valor apresentado na caixa de combinao (ou para onde vai o valor escolhido da lista que se abre abaixo da caixa de combinao). Para isso necessrio definir a propriedade Origem do controle como sendo: cdigo do cargo. Esse cdigo do cargo o campo da tabela cadastro de funcionrios para a qual estamos projetando este formulrio. Caixa de listagem para a sigla do departamento As caixas de listagem ficam permanentemente abertas no formulrio contrariamente s caixa de combinao que o usurio abre clicando o boto associado. Portanto as caixas de listagem precisam de alguma rea livre no formulrio apesar de suas barras de rolagem. Neste exemplo no iremos remover a caixa de texto para a sigla do departamento. O objetivo mostrar uma lista de possveis siglas dentre as quais o usurio escolhe uma. Alm disso, no iremos criar esta lista a partir da tabela cadastro de departamentos (o
46
que seria mais correto) pois o exemplo visa mostrar a possibilidade de definir a lista de valores na janela de propriedades. Procedimento: escolher a caixa de listagem na caixa de ferramentas desenh-la na rea de detalhe mover o rtulo que veio junto para cima da caixa de listagem e alterar seu texto para: relao de siglas selecionar a caixa de listagem e abrir a janela de propriedades definindo:
tipo de origem da linha como sendo Lista de valores, pois desejamos listar os valores manualmente a seguir origem da linha como sendo fin;mkt;pro Finalmente necessrio indicar de onde vem a informao que reala a linha da lista ou para onde vai a escolha efetuada na lista. Para isso necessrio definir a propriedade Origem do controle como sendo sigla do departamento. Esse outro campo da tabela cadastro de funcionrios que a base do formulrio que est sendo desenvolvido.
6.5 Subformulrios
possvel criar formulrios contidos dentro de formulrios. Por exemplo, podemos listar para cada departamento os funcionrios que l trabalham. A nvel de departamento criase um formulrio de coluna simples ao qual incorporamos um subformulrio a nvel de funcionrio em formato tabular. O procedimento para a criao do exemplo consiste de trs partes: a criao de uma consulta para o subformulrio, a criao do subformulrio a partir desta consulta e
47
finalmente a criao do formulrio principal e incorporao do subformulrio. Em todos os processos envolvendo a criao de formulrios utilizou-se assistentes realizando-se os ajustes necessrios ao final. a) Criao da consulta salrios e descontos por func por depto Esta consulta envolve duas tabelas pois a sigla do departamento e o nome do funcionrio constam numa tabela, enquanto o salrio dele consta em outra. A ligao entre elas precisa ser estabelecida atravs do cdigo do cargo. Escolheu-se uma ligao com a propriedade da associao indicando que devem ser includos todos os registros do cadastro de funcionrios. Para ativar a janela de propriedade da ligao deve-se selecionar a ligao e ativar o menu Exibir opo Propriedades da Associao. Esse tipo de ligao fora a entrada de todos os funcionrios inclusive aqueles momentaneamente sem cargo. A janela de projeto correspondente apresentada na figura 6.4. O desconto foi computado atravs da frmula Cmoeda(IIf(nulo([salrio do cargo];0;[salrio do cargo]*0,08))
Figura 6.4 Consulta salrios e descontos por func por depto b) Criao do formulrio salrios e descontos por func por depto (sub) Utiliza-se o assistente gerador de formulrios a partir da consulta criada anteriormente: salrios e descontos por func por depto. Utilizar um assistente para o formato tabular incluindo todos os campos, estilo padro e ttulo salrios e descontos por func por depto(sub) No formulrio gerado so necessrios vrios ajustes:
48
ajustar os ttulos das colunas nas caixas de rtulo do cabealho ajustar o tamanho das caixas de texto na linha detalhe reposicionar as colunas incluir no rodap uma linha de totalizao dos salrios e descontos atravs das frmulas: =soma([salrio do cargo]) e =soma([descontos])
Figura 6.5 Formulrio salrios e descontos por func por depto (sub) c) Criao do formulrio salrios e descontos por func por depto (prin) Este formulrio tambm criado pelo assistente a partir da tabela cadastro de departamentos. Empregar formato de coluna simples e atribuir o ttulo salrios e descontos por func por depto (prin). Ao final so necessrios alguns ajustes na rea de detalhe: ajustar a posio dos controles que permanecem incluir um controle de subformulrio a partir da caixa de ferramentas, na seo detalhe
Ao alinhar a rea para o subformulrio acionado o assistente para a criao do subformulrio. Este assistente faz trs perguntas: 1) Se deseja usar um formulrio, j criado anteriormente, como subformulrio. Escolha a opo formulrio e especifique o nome a partir da lista apresentada (salrios e descontos por func por depto (sub)). Cuidado na escolha porque o texto truncado pelo Access. Aps a escolha ative o zoom via SHIFT/F2 para ver se o nome correto foi escolhido. 2) Se deseja definir os campos de vinculao entre os 2 formulrios ou se deseja escolher da lista. Escolha da lista a opo exibir salrios e descontos por func por depto para cada registro....
49
3) Qual o nome que deseja dar ao subformulrio. Especifique o nome salrios e descontos por func por depto (sub) igual ao formulrio que o originou. Finalizado o assistente podemos remover o rtulo que veio acompanhando a rea desenhada para o subformulrio pois ele no ser usado. Basta abrir o formulrio principal para visualizar o conjunto criado. Finalmente, caso se deseje impedir a alterao e entrada de dados no subformulrio, basta ligar a propriedade bloqueado para todos os campos que o constituem.
Figura 6.6 Formulrio salrios e descontos por func por depto (prin)
50
51
Captulo 7 Relatrios
Relatrios constituem um recurso especfico para apresentao de informaes em papel impresso. A origem destas informaes pode ser uma tabela ou consulta. Alm disso, possvel incluir no relatrio elementos grficos para torn-lo mais atrativo. Como ser visto, os relatrios tambm incluem meios para agrupar e agregar dados.
52
Figura 7.1 Relatrio funsal por cargo por depto (verso final) Como um relatrio que envolve informaes originrias das trs tabelas do banco de dados, devemos criar inicialmente uma consulta que envolva todas as informaes necessrias. Na consulta foram utilizadas legendas mais mnemnicas para facilitar as elaboraes posteriores: sigla do departamento (depsig) nome do departamento (depnom) cdigo do cargo (carcod) nome do cargo (carnom) nmero do funcionrio (funnum) nome do funcionrio (funnom) salrio do cargo (carsal)
A tela de projeto desta consulta consta da figura 7.2. Observar que j foi indicada a ordem adequada de classificao: sigla do departamento, cdigo do cargo e o nome do funcionrio. Entretanto, isto no obrigatrio para gerar o relatrio, o assistente efetivamente refaz essa classificao. O relatrio na sua verso original foi gerado pelo assistente de relatrio, opo escolhida na janela Novo relatrio. Nesta janela tambm deve ser escolhida a consulta funsal por cargo por depto cujos registros iro compor o relatrio gerado. O assistente faz 6 perguntas comentadas a seguir. 1) Quais campos so desejados na relatrio. Incluir todos na ordem em que iro aparecer nas linhas: depsig, depnom, carcod, carnom, funnum, funnom e carsal. 2) Se so desejados nveis de grupo. Certamente so pois desejamos totalizar salrios por cargo dentro de cada departamento. Dessa forma os nveis de grupo em ordem de prioridade so: depsig e carcod.
53
Figura 7.2 Consulta funsal por cargo por depto 3) Qual ordem de classificao e resumo informativo desejado. A ordem se refere a classificao das linhas de detalhe: por funnom. O resumo se refere ao que ser totalizado e em qual nvel: soma de carsal mostrado a nvel de detalhe e resumo. 4) Como se deseja ordenar/distribuir o relatrio. O esquema mais adequado verso final o esquema por nvel. 5) Qual o estilo desejado de fontes e arte grfica: Negrito. 6) Qual o ttulo que deve ser atribudo ao relatrio: funsal por cargo por depto (verso original) O relatrio gerado pelo assistente pode ser visto acionando o boto Visualizar na janela Banco de dados. Uma parte dele apresentada na figura 7.3 aps alguns ajustes manuais realizados na sua estrutura que pode ser vista na figura 7.4, estes ajustes foram feitos para reduzir sua largura e permitir melhor visualizao nas janelas apresentadas. Como se observa, o relatrio possui a estrutura desejada mas apresenta muitas diferenas em relao a verso final. Entre outras coisas observamos que os campos no esto distribudos conforme desejado e possuem comprimentos inadequados. H ttulos em demasia, resumos no requeridos e no aparecem as linhas de separao que identam os grupos na verso final.
54
Figura 7.3 relatrio funsal por cargo por depto (verso original) Tudo isso ter que ser resolvido manualmente na janela de estrutura. Para correr menos risco sugere-se que o usurio tire uma cpia do relatrio (via editar/copiar/colar na janela banco de dados) antes de iniciar esta atividade. Resumidamente as alteraes realizadas foram: a) Mover para o cabealho do relatrio a caixa de texto da data atual identificada pela funo Agora( ) no rodap da pgina. Esse movimento pode ser por arraste ou via editar/recortar/colar. Para encostar a data direita da caixa acionar o boto correspondente na barra de ferramentas. Tambm incluir na rea do cabealho do relatrio um rtulo com o texto (verso final). b) Remover do cabealho da pgina os rtulos indesejados e alterar outros para os textos departamento e cargo. c) Mover para o cabealho depsig a caixa de texto depnom. d) Mover para o cabealho carcod a caixa de texto carnom.
55
Figura 7.4 Estrutura do relatrio funsal por cargo po depto (verso original) e) Na linha de detalhe redistribuir e redimensionar as caixas de texto que restaram: funnum, funnom, carsal. f) No rodap carcod remover as caixas de texto de resumo indesejadas mantendo a caixa que calcula a soma de carsal. g) Idem no rodap depsig. h) Remover a numerao de pginas do rodap da pgina e eliminar a sua rea. i) No rodap do relatrio remover o rtulo de total geral e reposicionar a soma de carsal. j) Redimensionar direita as linhas retas que aparecem na cabealho do relatrio e cabealho da pgina. Copiar uma dessas linhas para o rodap depsig e para o rodap do relatrio e tornar sua espessura mais fina. Essas linhas ficam pouco visveis na janela estrutura porque se confundem com outros elementos grficos da tela. k) Tambm necessrio copiar ou gerar uma linha reta no rodap carcod cuidando para acertar seu tamanho esquerda corretamente.
56
l) Se todos os objetos mais a direita na janela estrutura foram reposicionados, deve ter sobrado espao (fundo branco) que pode ser reduzido por arraste da sua borda. Se permanecerem objetos nesta rea o arraste no se concretiza. m) Reduzir o tamanho vertical das diversas reas do relatrio de modo que as linhas impressas fiquem mais juntas. n) Acertar as fontes das caixas de texto e rtulos. No exemplo foram empregadas fontes arial, de tamanho 9 e 10, com e sem negrito. Alm disso, todas as cores geradas pelo assistente forma convertidas em preto. Realizados os ajustes foi obtida a janela de estrutura que corresponde ao relatrio na sua verso final. A janela de estrutura da verso final aparece na figura 7.5.
Figura 7.5 Estrutura do relatrio funsal por cargo por depto (verso final)
57
Figura 7.6 Relatrio funcionrios por cargo Aps clicar OK aparece a janela de estrutura do relatrio. Convm especificar inicialmente qual ser a organizao de agrupamentos e classificao dos campos envolvidos. Para isto aciona-se o menu Exibir opo Classificar e agrupar ou aciona-se o boto correspondente na barra de ferramentas. Em resposta aparece a janela Classificar e agrupar. Nesta janela indica-se que haver agrupamento por cdigo do cargo e os cargos devem ser listados em ordem crescente. Por outro lado, dentro de cada cargo os funcionrios devem ser classificados segundo seu nome (na verdade o nome no constituir grupo). Para o cdigo do cargo desejamos a incluso de uma linha adicional ao final de cada grupo (rodap de grupo), mas no desejamos a linha adicional no incio (cabealho de grupo). Alm disso, o agrupamento deve ser feito pelo cdigo do cargo por inteiro e no segundo alguns caracteres iniciais, portanto escolhemos Reagrupar cada valor. Para esta opo o nmero de caracteres irrelevante e no precisa ser especificado. Como para o nome do funcionrio no desejamos agrupamento, no indicamos nem cabealho nem rodap nas propriedades do grupo. Aps fechar esta janela o sistema incorpora a linha adicional de rodap do cdigo do cargo janela de estrutura. Agora podemos detalhar os campos que desejamos dispor na janela. Para isto, basta exibir a janela lista de campos e selecionar o nmero e nome do funcionrio e cdigo do cargo (via tecla CTRL). Arrasta-se a seleo para a linha de detalhe. Os campos vem acompanhados de seus rtulos que precisam ser selecionados, recortados e colados na linha cabealho da pgina. A seguir, deve-se definir a posio correta das caixas, sua dimenso e tipo de fonte. Tambm falta incluir um ttulo e acessrios estticos.
58
Indicar grupo
Figura 7.7 Janela Classificar e agrupar para o relatrio funcionrios por cargo Para evitar a repetio do cdigo do cargo em cada linha deve-se selecionar sua caixa de texto na linha detalhe, exibir sua lista de propriedades e indicar sim para a propriedade Ocultar repeties. Para obter a coluna que numera os funcionrios dentro de cada grupo deve-se adicionar um campo calculado na linha de detalhe. Abra uma caixa de texto (remova o rtulo associado) e digite a expresso =1. Isso indica, em princpio, que seu valor ser sempre um. Para obter o efeito de contagem ou de acumulao basta exibir sua lista de propriedades e indicar Por grupo para a propriedade Soma parcial. Isso indica ao sistema que a cada novo registro o valor do campo somado ao valor anterior antes de ser impresso. Para obter a acumulao ou total de funcionrios ao final de cada grupo adiciona-se uma caixa de texto calculada na linha de rodap do cargo. No seu rtulo digita-se o texto total e na caixa de texto digita-se =soma(+1). Isso indica ao sistema que a expresso entre parentesis (+1) deve ser acumulada a cada novo registro impresso e quando o grupo terminar ser impresso o total vigente e o acumulador ser zerado antes de iniciar o prximo grupo. Para numerar as pginas basta acrescentar linha de rodap da pgina uma caixa de texto com a expresso =pgina. Ser acionada a funo interna do sistema (pgina) que retorna o nmero da pgina corrente. Esse texto aparece na parte inferior da pgina impressa mas no foi possvel mostr-lo na janela de relatrio anteriormente apresentada. Um meio mais simples de acrescentar a numerao de pginas no relatrio atravs do menu Inserir opo Nmeros de pginas. Na janela de dilogo que aparece em seguida, possvel escolher a posio, o tipo e o alinhamento da numerao. A janela com a estrutura final consta na figura 7.8.
59
60
caracteres indica a faixa que ser usada: de 1000 em 1000. Essa janela apresentada na figura 7.10.
Figura 7.9 Relatrio por faixa de salrio O relatrio possui vrias caixas de texto com valores computados. Existe uma totalizao de salrios por grupo e uma totalizao geral. A este total geral na rodap do relatrio foi atribudo uma identificao: total que passou a ser o nome da caixa de texto. O nome uma propriedade de controles muito til se este controle precisar ser referenciado em frmulas. Este o caso pois para poder computar a participao percentual necessrio conhecer o total de salrios. No relatrio tambm computado um campo atravs da funo iif/selmed. Ela testa o departamento do funcionrio e marca com asterisco os funcionrios do departamento de marketing. A janela estrutura do relatrio gerado aparece na figura 7.11.
61
Nome: total
62
Captulo 8 Macros
Uma macro uma espcie de rotina que pode ser executada em resposta algum evento que ocorre no sistema. Por exemplo, podemos acionar uma rotina quando uma excluso de registro estiver para ser efetivada e esta rotina pode exigir confirmao pelo usurio. O Access fornece uma srie de aes que sero exemplificadas neste texto.
Parmetros da ao AbrirTabela.
Figura 8.1 Janela de projeto de Macro Esta janela mostra uma macro constituda de 4 aes. Essa macro ser ativada em um formulrio (detalhado mais a frente) atravs do acionamento de um boto e vai apresentar na tela uma janela tipo folha de dados correspondente tabela cadastro de departamentos. Como se observa, para a ao AbrirTabela temos que especificar 3 parmetros: qual a tabela a ser aberta, de que forma ela exibida (folha de dados), e qual ao do usurio ser admitida sobre a janela exibida (somente leitura). A ao AbrirTabela imediatamente seguida da ao de posicionamento da janela recm aberta porque desejamos escolher sua dimenso e posio. A opo MoverDimensionar
63
especifica a dimenso (largura, altura) e posio (direita, abaixo) em relao a tela. As duas aes iniciais desta macro: Eco e Ampulheta fornecem um controle adicional sobre o processo de apresentao da tabela. A ao Eco deve ter o parmetro Eco ativo especificado como sendo No. Isto indica que eventuais processos intermedirios que ocorrem durante a montagem da tabela na tela no sero exibidos (no so ecoados na tela). Em geral no h realmente interesse em se exibir esses processos. Entretanto, como isto pode significar que durante um breve espao de tempo o usurio ficar sem qualquer resposta na tela, aciona-se a ao Ampulheta para mostrar o cone correspondente at a tabela ser definitivamente apresentada na tela. Vale lembrar que a janela de montagem de macros funciona analogamente s janelas de construo de tabelas. Podemos redimensionar as colunas, selecionar e mover linhas, remov-las e redimensionar suas alturas. Eventualmente pode ser at necessrio acrescentar duas colunas adicionais de nomes de macros e de condies. Isso feito via menu Exibir ou atravs dos botes correspondentes na barra de ferramentas. O uso de condies e grupos de macros visto nos exemplos que seguem.
Desfazer Condies Passo nico
Nome de colunas
Executar
64
Figura 8.3 Formulrio que apresenta os dados em formato tabular. O boto deptos no includo pelo assistente gerador do formulrio. Ele incorporado pelo projetista na janela de projeto via caixa de ferramentas. Ao boto deve ser atribudo um texto para a legenda. Convm tambm atribuir um nome (interno) ao controle/boto. Finalmente necessrio especificar qual ao ele deve executar quando for clicado com o mouse. Para isso especifica-se o nome da macro com as aes desejadas na propriedade Ao clicar do boto. A macro mostrada no item anterior foi a macro associada ao evento Ao clicar conforme se pode observar na janela de projeto correspondente na figura 8.4. Se o boto Assistentes de controles da barra de ferramentas estiver ativado, o processo ser um pouco diferente. Na primeira janela de dilogo que aparece logo aps o desenho do boto de comando, a categoria a ser selecionada Miscelnea e a ao Executar macro. A prxima tela pede a definio da macro que vai ser utilizada para o controle, que no caso mostrar cadastro de departamentos. Na tela seguinte deve-se escolher Texto e digitar o nome do boto (correspondente legenda) e clicar Avanar. Depois escolhe-se um nome que vai ser atribudo ao controle, para uso interno do Access e clicar Concluir.
65
Figura 8.4 Tela de projeto do formulrio e janela de propriedades do boto A macro funciona apresentando na tela a janela da tabela cadastro de departamentos. A ativao de uma janela se sobrepe s outras que porventura estiverem ativas. Qualquer janela pode ser movida, minimizada, fechada e redimensionada. Entretanto isto interpe um problema se fecharmos a janela do formulrio sem fechar a janela da tabela. Efetivamente esta continua aberta. Apesar dela poder ser fechada manualmente, pode-se forar seu fechamento se a janela do formulrio for fechada. Para isto construmos a macro fechar cadastros constituda de uma ao de fechar. A ao tem dois parmetros: o tipo de objeto a fechar (no caso a tabela) e o nome do objeto. Essa macro especificada na propriedade/evento do formulrio que ocorre quando ele fechado: Ao fechar. Portanto, antes do formulrio ser fechado agora executada a ao de fechar a tabela, esteja a tabela ativa ou no na tela. A figura 8.5 mostra a macro que foi descrita.
66
Figura 8.6 Caixa de mensagem da Macro confirmar excluso Essa janela de aviso mostrada atravs da chamada de funo interna CaixaDeMensagem (confirma excluso?; 52, ) onde o primeiro parmetro a mensagem a ser exibida, o segundo indica os botes a serem exibidos e o terceiro o ttulo da caixa de mensagem. A forma exata de determinar o segundo parmetro pode ser vista no help correspondente funo. Ele se constitui numa soma de valores: 4 para exibir botes sim e no, 48 para o cone de exclamao e zero para o primeiro boto ser assumido como padro. O boto que for acionado determina o resultado que a funo devolve: 6 para o boto Sim e 7 para o boto No. Como a funo retorna um valor optamos neste formulrio por empregar um controle tipo caixa de texto com funo auxiliar de apenas armazenar o valor resultante da funo. Na
67
janela de projeto esse controle deve ser criado no cabealho direita. Ele um controle invisvel na janela de formulrio por ter a propriedade Visvel posicionada em No. Alm disso, obrigatrio atribuir um nome ele pois o nome ser referenciado na macro, no caso o nome escolhido foi: aux. A macro ser acionada quando ocorrer o evento Ao excluir do formulrio. Ela dever realizar duas aes: mostrar a caixa de mensagem (e obter o resultado da chamada da funo) e em seguida deve testar se o valor resultante determina ou no o cancelamento da excluso. Como uma condio est envolvida necessrio acrescentar a coluna de condies na janela da macro conforme detalhado na figura 8.7.
Figura 8.7 Janela de projeto da macro confirmar excluso A ao DefinirValor possui dois parmetros: para onde deve ir o valor calculado (caixa de texto aux) e qual a expresso a ser calculada (CaixaDeMensagem(confirmar escluso?;52; )). Executada essa ao passa-se para o teste do contedo da caixa aux na coluna condio. Se o teste der o resultado verdadeiro, ser executada a ao especificada na coluna ao. No caso, deseja-se cancelar o evento em curso, portanto, utiliza-se a ao CancelarEvento. Construda a macro e atribudo um nome a ela (confirmar excluso) pode-se incorporar sua chamada no evento correspondente do formulrio. Para isso deve-se abrir a janela de propriedades do formulrio e especificar o nome da macro na propriedade/evento Ao excluir. Convm lembrar que padro do Access solicitar confirmao a cada remoo de registros. Entretanto, essa mensagem padro pode ser desativada para todo ambiente via menu Ferramentas, opo Editar/Localizar, desativando em Confirmar a opo Alteraes de registro.
68
No caso o teste incorporado macro est especificado a seguir. Na janela da macro no possvel ver todo o texto do teste por razes de espao. Nulo(DPesquisa ([nome do departamento]; cadastro de departamentos; [sigla do departamento]=[sigla])) Portanto a funo pesquisa a tabela cadastro de departamentos. Nesta tabela ela faz a pesquisa sobre a coluna [sigla do departamento] at localizar a primeira linha onde o valor seja igual ao contedo da caixa de texto [sigla]. Esta linha determina o valor na coluna [nome do departamento] que ser devolvido como resultado da chamada da funo. Se em nenhuma linha o teste for satisfeito ento a pesquisa no teve sucesso e a funo retorna valor nulo. Na macro em questo estamos apenas interessados em saber se um valor foi localizado ou no. Realmente no nos interessa o nome do departamento em caso de localizao. Desta forma, a ao na macro corresponde a verificar se a funo retornou Nulo pois, neste caso, desejamos mostrar uma mensagem de aviso via ao CaixaDeMensagem seguida da ao CancelarEvento. Como so duas aes a serem executadas caso o texto d verdadeiro, devemos colocar reticncias (...) na coluna Condio correspondente. Observar que para a ao CaixaDeMensagem temos que indicar o texto da mensagem, se queremos ou no um aviso sonoro e o tipo de cone que deva ser mostrado junto com a mensagem. Finalmente, o nome da macro (validao da sigla do departamento)
69
70
Figura 8.9 Formulrio tela base Para acionar esta tela criamos uma macro que abre o formulrio tela base. Esta macro no apresenta novidades. Para que sua ativao seja imediata devemos atribuir-lhe um nome padro do Access: autoexec. A macro est apresentada a seguir.
Figura 8.10 Tela de projeto da macro que abre o formulrio tela base
71
Figura 8.11 Grupos de macros da tela base Trata-se de uma janela que rene um grupo de macros. Para isso foi necessrio acrescentar uma coluna para o nome da macro e empregar nomes mais curtos porm mnemnicos. Este nome ser especificado na propriedade/evento Ao clicar do boto correspondente atravs da seguinte sintaxe: nome do grupo.nome da macro, por exemplo, no boto funcionrios especifica-se botes da tela base.abrfun. O Access trata de procurar o nome da macro no grupo e executa suas aes at encontrar o nome de outra macro na coluna de nomes. O formulrio tela base merece mais algumas observaes pois ele no se parece com um formulrio comum. Isso se deve ao fato de todos os controles estarem no cabealho do formulrio. Para este cabealho se especificou cor de fundo cinza. Alm disso, as seguintes propriedades do formulrio foram especificadas:
72
(desativa Permitir Edio) (remove barras de rolagem) (desativa boto folha de dados) (desativa botes de filtros)
73