CEFET-ES EXERCÍCIOS DE ACCESS INSTRUÇÕES INICIAIS Crie uma pasta com o nome da sua turma, sob o diretório raiz; por exemplo: C:\M01A. Sob esta, crie uma nova pasta com o nome Access; nesta pasta coloque os arquivos de exercício copiados do disquete do professor; Use sempre a mesma máquina, se for possível; isto lhe permitirá retomar suas lições mais rapidamente; trabalhe também sempre gravando no HD (drive C: ou D:); nunca use o drive A:, pois é muito mais lento e disquetes dão problema freqüentemente; Tenha um disquete para copiar o BD ao final da aula; caso você não possa usar a mesma máquina na aula seguinte, pode copiar a BD do disquete para outra máquina e prosseguir; poderá também fazer o exercício fora do horário de aula. Use sempre disquetes novos e não tente recuperar ou usar disquetes que já deram problema; Você usará o mesmo BD durante todas as aulas de Access. Algumas tabelas, consultas, formulários e relatórios serão criadas por você e usadas nas lições seguintes. Assim, copie o seu bd para disquete no final da aula, pois as lições novas freqüentemente dependem do que você fez nas anteriores; Leia todo o exercício antes de começar a fazê-lo, para ter uma compreensão completa do texto; faça depois o exercício seguindo passo a passo. Releia o texto e repita o exercício após, sem seguir o passo a passo para certificar-se que aprendeu; Repita os exercícios em casa ou em outro horário, na escola. Se não puder, ao menos releia o texto da lição, rememorando os passos do exercício; isto é necessário para fixar o aprendizado; Quando terminar o seu exercício, pode iniciar o seguinte. Se não quiser iniciar o próximo exercício, pode retirar-se: você é o responsável pela velocidade do seu aprendizado. Se ficar na sala, respeite o silêncio, para que seus colegas possam trabalhar sem serem perturbados; Quando for fazer a primeira lição, você deverá converter o banco de dados Sweet.mdb para a versão do Access97; o Access sugere o nome bd1.mdb: digite por cima um nome mnemônico (para você lembrar facilmente: com parte do seu nome, por exemplo); não grave nenhum bd com os nomes bd1, bd2..., pois com o tempo poderá haver dezenas de bd1, bd2... no disco e você não saberá qual é o seu banco; a estrutura das tabelas do bd Sweet.mdb é mostrada na próxima página; Para fazer as provas de Access você pode usar este material para consulta ou qualquer outro livro ou apostila que tenha. O material de consulta é individual, pois não é permitido conversar durante as provas. Tire suas dúvidas durante as aulas; não deixe para perguntar no dia da prova; Não é permitido comer, beber ou chupar balas no laboratório: isto pode danificar o mouse e o teclado. Clientes Id do Cliente Sobrenome Nome Rua Cidade Estado CEP País Telefone DatAssinatura DuraçãoAssin Renovação Empregados ID Empregado Nome SobreNome Cargo Ramal NomeDepartamento Aniversário DataContratação Pedidos ID do pedido ID do cliente ID Transportadora Data pedido Presente Método pedido Nome Destinatário Sobrenome destin Ender.destin Cidade destin Estado destin CEP destinat. País destinat Numero cartão Validade Cartão crédito DetalhesDosPedidos ID Pedido ID Caixa Quantidade Caixas ID Caixa Nome da caixa Peso Descrição Preço da cx Qtidade disponível Interrompido Detalhes das caixas ID Caixa ID bombom Quantidade Transportadoras ID Transportadora NomeTransportadora Método de entrega Contato Telefone de contato Remessa Id Transportadora Estado destinatario Taxa de remessa Obs.: a definição deste banco de dados apresenta os seguintes problemas: redundância em alguns dados (verifique quais são), e nomes de campos com espaço em branco e sinais especiais (til, cedilha, acentos...). Bombons ID do bombom Nome bombom Tipo chocolate Tipo da noz Tipo recheio Descrição Custo do bombom Figura Ingredientes Categoria Tipo IdOrigem Fornecedores Id do Fornecedor NomeFornecedor NomeDoContato NumDoTelefone Fax BD SWEET Lição 1– ACRESCENTANDO DADOS A UM BD 1. ACCESS - conceitos introdutórios 1.1 Elementos (ou objetos) básicos do Access: campo, registro, tabela, banco de dados: onde ficam os dados formulário: para entrada de dados (ou exibi-los) relatórios e queries (consultas) macros e módulos propriedades dos objetos métodos: para encontrar, classificar, consultar Sistema relacional de gerenciamento de banco de dados (RDBMS) 1.2 Nosso banco de dados: SWEET (indústria de chocolates): Examinar a estrutura das tabelas: o examinar o significado de cada campo; o identificar aquelas que descrevem entidades e outras que descrevem relacionamentos, o identificar tabelas que possuem chaves simples e compostas. Verificar os relacionamentos entre as tabelas: chaves primárias e estrangeiras, Nomes de campos: espaços em branco no meio, nomes diferentes para campos com mesmo significado; nomes de tabelas iguais aos dos formulários, que geram confusão. Examinar redundâncias e dependência funcional: o se todas as tabelas respeitam estes princípios: verificar solução para as redundâncias encontradas, o caso do preço da caixa: se deveria entrar na tabela “Detalhes dos pedidos”: vantagens e desvantagens Examinar relacionamentos: 1-1, 1-N, N-N: verificar se “Assinaturas” poderia ser uma tabela separada; quais as vantagens ou desvantagens; que tipo de relacionamento seria Access trata o BD todo como se fosse um arquivo único, diferentemente de outros BD’s: Paradox, DBASE... 1.3 Conceituar os objetos do Windows: caixas de texto, caixas de lista, botões de opção (rádio), caixas de verificação, botões de comando. 2. Abrindo o banco de dados: abra o Access: menu Arquivo, Abrir Banco de dados, seu diretório, seu banco Explorar as abas com os objetos do BD: tabelas, formulários, consultas... Escolher a tabela Clientes e abri-la para consulta. 3. Usando o help: formas de obtenção do help: - numa janela ou caixa de diálogo: aperte F1, ou botão Ajuda - sobre um comando ou ferramenta: clique no botão Ajuda ? da barra de ferramentas e clique depois sobre o comando ou ferramenta que deseja esclarecer - por palavra chave: menu ?, escolha Localizar - por tópico ou atividade: no menu ?, escolha Conteúdo Exercício 1: procure ajuda sobre “Tabelas”: leia alguns trechos dos tópicos: “Criar uma tabela”, “Criar uma tabela – partir do zero” e “Aprender mais sobre tabelas”... Exercício 2: procure ajuda sobre “Consultas”: como criar. 4 4. Acrescentando dados a um BD usando um formulário: 4.1 Cenário: a Sweet Lil’s lançou uma circular mensal a fim de atrair novos clientes. Você vai usar o formulário Assinaturas para inserir novos clientes. 4.2 Abra o seu banco no seu diretório Maximize sua janela, clique no objeto Formulário, depois dê um clique duplo em Assinatura. Identifique os elementos: caixa de texto, de verificação, botões de opção (botões de rádio). 4.3 Digite os dados de um cliente: para mover de um campo para outro use TAB, para voltar ao campo anterior, use Shift+Tab Nome: Ernesto Sobrenome: Leal End.: Avenida Gavião, 28 Cidade: Salvador Estado: BA CEP: 40000-000 País: Brasil Assinatura: clique em 2 anos Clique em Renovação Aperte TAB quando estiver no campo Renovação (último do formulário): o atual registro é gravado e aparece o próximo a ser digitado. O Access grava o registro quando você sai de um registro e vai para o seguinte. Se o dado não couber no campo, abrevie, pois o campo foi definido com um tamanho fixo. 4.4 Digite outro cliente: Nome: Beatriz Cidade: Santos País: Brasil Sobrenome: Fonseca Santos de Moraes End.: Rua Coral, 26 Estado: SP CEP: 10200-000 Assinatura: 6 meses Não é Renovação. 5. Navegue e corrija: use PgUp e PgDown para navegação observe o lápis e o triângulo: o triângulo indica o registro corrente (onde você está); o lápis indica que o registro foi alterado e que vai ser regravado; para você eliminar uma alteração, aperte Esc uma ou duas vezes: a primeira vez suprime a alteração do campo; a segunda vez suprime as alterações do registro; volte para o primeiro registro e altere o Endereço para: Rua Gavião, 28; feche o formulário: clique na caixa de controle do formulário ou no menu Arquivo Fechar. 6. Abrindo uma tabela: na janela Bco de Dados, clique no objeto Tabela, depois dê um clique duplo em Clientes. Compare as colunas existentes com a descrição da tabela Clientes. Compare os campos do formulário Clientes com a descrição da tabela Clientes; navegue na tabela: pode usar a barra de rolagem ou os botões de navegação em baixo da janela: observe os registros que você inseriu; feche o MS Access: clique na caixa de controle ou use o menu Arquivo Sair: não há necessidade de gravar, pois o Access gravou cada registro incluído ou alterado logo depois que saiu do registro. 7. Recordando os passos: insira mais dois registros no formulário Assinaturas: Nome: Haroldo Sobrenome: Prado End.: Av. Panamérica, 244 Cidade: São Paulo Estado: SP CEP: 33907-000 País: Brasil Assinatura: 6 meses É Renovação. Nome: Rita de Sobrenome: Oliveira End.: Al. do Lago, 300 Cidade: Três Corações Estado: MG CEP: 30000-000 País: Brasil Assinatura: 2 anos É Renovação. Feche o formulário, abra a tabela e verifique se os clientes foram incluídos corretamente. 5 Lição 2 – ORDENANDO, FILTRANDO E ENCONTRANDO INFORMAÇÕES 1. Conceitos: os registros podem ser filtrados e ordenados como no Excel. Filtro e classificação implicam na definição de critérios, que são colocados em uma grade do mesmo tipo de uma consulta, os formulários podem ser vistos de três modos: - formulário: mostra os dados arrumados, - folha de dados: mostra os dados como em uma tabela, - estrutura: que permite alterar o formato do formulário. os relatórios podem ser vistos de dois modos: - relatório: mostra os dados arrumados, - estrutura: que permite alterar a forma como os dados serão exibidos, as tabelas podem ser vistos de dois modos: - folha de dados: mostra os dados como em uma tabela, - estrutura: que permite alterar as chaves, os campos da tabela e suas propriedades. as consultas podem ser vistos de três modos: - folha de dados: mostra os dados como em uma tabela, - estrutura: que permite alterar a forma como os dados serão exibidos, - SQL: mostra os comandos de SQL que correspondem àquela consulta. 2. Encontrando registro com pouca informação: Exemplo 1: suponha que lhe pedem: “Ligue para R. Teixeira, ou ela vai cancelar o pedido”. Use o BD para achar seu número de telefone: - abra o seu banco de dados e o formulário (não a tabela) Exame do Cliente; clique no campo Sobrenome, clique no botão Localizar na barra de ferramentas - a caixa Localizar mostra o campo procurado; digite Teixeira na caixa Localizar; clique em Localizar Primeira ou Próxima; veja se o resultado atende ao solicitado - procure outro Teixeira: clique em Localizar Próxima, veja o resultado; feche a caixa. Exemplo 2: há uma etiqueta rasgada numa caixa para entrega, onde só se vê parte do nome da rua: “con”: - clique no campo Nome da rua e no botão Localizar; na caixa Localizar digite con; na caixa Coincidir, selecione Qualquer parte do campo; clique em Localizar Primeira; anote o resultado, veja se o nome da rua atende ao solicitado; - clique em Localizar Próxima, veja o resultado; clique em Localizar próxima novamente, até o fim da pesquisa; feche depois a caixa e o formulário 3. Filtrando grupos de registros: Você quer criar uma caixa nova e quer incluir bombom com chocolate branco nesta caixa; você quer ver estes bombons para escolher um: - abra o formulário Bombons e clique no botão Exibir - Modo Folha de Dados para ver vários registros de uma vez; passeie pelos registros, observe o “Tipo de Chocolate” - clique no menu Registros–Filtrar–Filtrar/Classificar Avançado; na parte de cima da janela Filtros há uma Lista dos campos e na parte inferior há uma grade para definir critérios - definindo os campos e critérios: arraste o campo Tipo de Chocolate para a primeira célula da linha Campo da grade de filtro; clique abaixo na célula da linha Critério, digite “branco”, aperte Enter; apague outras colunas se estiverem marcadas - clique no botão Aplicar Filtro; veja os registros e o tipo de chocolate; clique depois no mesmo botão para voltar (desfiltra: mostra todos). 4. Acrescente mais critérios: a caixa deve ter um custo baixo, você quer selecionar bombons que custem menos de R$ 0,30 (para isto, você vai usar uma Expressão): 6 - ative a janela Filtro; arraste o campo Custo do Bombom da lista de campos para a célula da linha Campo, segunda coluna; na célula Critérios, digite <0,30 clique no botão Aplicar Filtro; veja os registros, confira o tipo de chocolate e o custo dos bombons; clique depois no mesmo botão para voltar (desfiltra: mostra todos). 5. Classificando registros: você precisa ordenar os bombons por ordem alfabética: - exclua Filtro anterior: ative a janela Filtro, no menu Editar, clique Limpar Grade; clique no botão Aplicar Filtro para eliminar dos dados o Filtro anterior - no Formulário Bombons clique no Nome do Bombom de um registro qualquer; clique no botão Classificação crescente na barra de ferramentas (ou menu Registros, Classificar, Crescente): um filtro automaticamente é criado (mostre a janela Filtro e observe o filtro e a ordenação criados) - ordene para ver os bombons mais caros: ative a janela Bombons, clique no Custo do Bombom de um registro qualquer; clique no botão Classificação decrescente na barra de ferramentas (ou menu Registros, Classificar, decrescente): clique na janela Filtro e observe o filtro e a ordenação; feche o formulário Bombons Obs: o filtro não é salvo com o Formulário; mais tarde criaremos Consultas, que podem ser salvas como se fossem relatórios. 6. A empresa lançou uma promoção de bombons caros em S.Paulo e deseja ver se foi sucesso, pelos novos clientes acrescentados ao seu banco de dados: - vamos criar um filtro para “clientes de S.Paulo, incluídos após 15/12/93”: abra formulário Exame de Cliente, crie um filtro com Cidade = São Paulo (repita o item 4) - arraste Data do Primeiro Pedido para a grade, coloque Classificação Descendente: serão mostrados os clientes mais novos; - na linha de Critério, digite: >=15/12/93 (ou >=15-Dez-93), depois Enter - clique no botão Aplicar Filtro, depois no botão Modo Folha de Dados; observe a Cidade e data dos registros mostrados; - mude depois a data para 15/11/93 e aplique o filtro; - desfaça o filtro após e verifique se as respostas do filtro estavam corretas. Lição 3 – IMPRIMINDO RELATÓRIOS E ETIQUETAS DE ENDEREÇO 1. Conceito: relatórios podem mostrar todos os dados do BD ou apenas dados selecionados, podem ter campos calculados, totais e subtotais. Pode-se usar um formulário ou relatório para visualizar informações do BD, mas o relatório é mais maleável. 2. Exibindo o relatório e imprimindo: vamos imprimir um relatório sobre as vendas: - abra o seu banco de dados e clique no objeto Relatório e dê um clique duplo em Vendas por Caixa; na caixa de diálogo, digite 2-nov-93 ou 02/11/93 e Enter; na próxima caixa digite 9-nov-93 e Enter, - use as barras de rolagem vertical/horizontal para ver todo o relatório, utilize o Zoom para ver mais; verifique as datas, - use os botões de navegação (em baixo, esquerda) para ver outras páginas, veja total da última página. Obs: para imprimir, funciona como no Word/Excel (botão Imprimir ou menu Arquivo) 3. Criando etiquetas de endereçamento: como é um relatório comum, podemos usar o “Assistente de Relatório” do Access. - na janela Banco de Dados, com a lista dos Relatórios, clique no botão Novo - na caixa Novo Relatório: clique na seta da caixa “Escolha a tabela...” e selecione Clientes (vamos usar esta tabela para imprimir etiquetas); na parte de cima da janela selecione Assistentes de Etiquetas; clique ok 7 - - escolha o tipo da etiqueta: por exemplo (você pode escolher outros modelos, se desejar): fabricante: A-One, modelo 28315 (64 x 33,9), 3 colunas, unidade: métrica; tipo: Alimentador de papel; clique em Avançar; na etapa seguinte, escolha a fonte e o tamanho da fonte; clique em Avançar na caixa Campos disponíveis, dê um clique duplo em Nome; digite um espaço em branco; clique duplo em Sobrenome; aperte Enter para ir para a segunda linha da etiqueta nas linhas seguintes coloque: Rua na 2a linha; Cidade, Estado, CEP na 3a linha, colocando - traço entre eles; País na 4a linha; clique no botão Avançar na etapa seguinte, clique em Nome para ordenar o relatório pelo nome do cliente a seguir, digite Etiquetas de endereçamento de clientes para o nome do relatório; deixe marcado o botão Exibir as etiquetas...; clique em Concluir veja o resultado: passeie com as barras de rolagem e o navegador de registros (esquerda embaixo): o relatório deve estar ordenado por nome. Obs.: você acabou de fazer um pequeno programa de emissão de etiquetas: para executálo, basta dar um clique duplo sobre ele. O relatório criado depende do modelo da etiqueta escolhido e da impressora. 4. Criando outro tipo de etiqueta: com o Assistente do Relatório de Etiquetas podemos criar vários tipos de etiquetas, bem como outros tipos de relatório. Vamos criar uma lista telefônica. Para isto, siga os passos do item 3: - na janela Banco de Dados com a lista dos Relatórios, clique no botão Novo, selecione a tabela Clientes, depois Assistente de Etiquetas e ok - coloque os campos Nome, espaço em branco, Sobrenome na primeira linha; telefone na segunda; Cidade, Estado, País na terceira - para responder à pergunta “Por quais campos de etiquetas você deseja classificar?” dê um clique duplo em Sobrenome na caixa Campos disponíveis - para responder “Qual tamanho de etiqueta..” selecione um modelo com duas colunas - veja o resultado: passeie com as barras de rolagem e o navegador de registros (esquerda, embaixo) - salve-o como “Lista telefônica de Clientes”. Obs.: mais tarde vamos aprender a fazer ajustes e modificações em relatórios já existentes. Para ver como o Access montou o relatório, examine-o no Modo Estrutura. REVISÃO PRÁTICA - Lições 1 a 3 1. Cenário: os deptos de RH e Contabilidade pediram que você os ajudasse a gerenciar suas informações; você vai atualizar registros de pessoal e responder consultas. 2. Conheça os dados dos empregados: abra o seu banco de dados e o formulário Empregados; examine seus campos examine os dados dos empregados: navegue pelos registros conhecendo os empregados use o modo Folha de dados para ver mais empregados de uma vez; modifique a largura e altura das células para ver os dados completos volte para o modo Formulário 3. Acrescente e edite dados no Formulário: acrescente um novo empregado: Nome: José Sobrenome: Carvalho Cargo: Técnico Departamento: Operações Ramal: 778 Aniversário: 4/5/58 Data contratação: 3/1/94 Ursula Albuquerque, empregado número 6, casou-se; troque seu sobrenome para Marinho Adriana Fonseca, empregado número 5, saiu da empresa; alterne para o Modo Folha de Dados e delete seu registro; volte para o modo Formulário 4. Encontre registros: uma assinatura ilegível num formulário de férias; pode-se ler apenas “Caf” no sobrenome; procure a primeira ocorrência, anote e depois procure outras que possam existir. 8 5. Use um filtro para selecionar registros: o RH deseja saber quais empregados foram contratados antes de 1985 para dar um prêmio. Monte o filtro para este campo e em ordem ascendente. Alterne para o modo Folha de dados para ver os registros filtrados. 6. Classifique registros por alfabética ou numérica: o contador da empresa está analisando a conta telefônica e precisa saber quem tem o ramal 787. Ordene os registros dos empregados pelo campo ramal e veja quem tem ramal 787. Feche o formulário empregados. 7. Crie um relatório: para facilitar a convocação de reuniões de departamentos, você deve produzir um relatório contendo os nomes, departamentos e ramais de todos os empregados, classificados pelo nome do departamento. Crie um relatório modelo Etiqueta de endereçamento, use a tabela Empregados. Use um Assistente, coloque os seguintes campos, em três linhas: Sobrenome, Nome Nome do departamento Ramal de telefone Ordene pelo nome do departamento e depois pelo sobrenome. Grave o relatório com o nome Lista de Departamento. Visualize o relatório e veja se está correto. 8. Veja se você sabe resolver o seguinte: como encontrar uma informação específica, como um nome ou um pedaço de endereço, etc., criar filtros para enxergar só alguns registros do BD: como escolher um campo para filtro, definir critério para o filtro, ordenar os registros e aplicar o filtro; como ver todos os registros depois de aplicar o filtro como criar um relatório de etiquetas de endereçamento, como salvá-lo após leia o help dos seguintes tópicos: - filtros, critérios, consultas - relatórios: imprimir, criar. 9 Lição 4 – INCLUINDO UMA NOVA TABELA 1. Conceitos: - para criar uma tabela nova devemos planejar quais os campos ela deve ter, quais os tipos de dados que devem ser armazenados (numérico, texto, moeda...), quais os índices devem ser montados para efetuar consultas ou acessos e quais relacionamentos tem a tabela, - cuidados na atribuição de nomes de campos - para criar a tabela, podemos usar o Assistente (item 2) ou criá-la toda a partir do zero (item 4), - no nosso caso: a Sweet Lil’s necessita agilizar o contato com fornecedores estabelecendo um elemento de contato em cada um. Atenção: a partir desta lição, procure usar sempre a mesma máquina e salvar em disquete o seu BD ao final de cada aula, pois as tabelas criadas serão usadas em lições posteriores. 2. Criando a tabela com o assistente e uma tabela de exemplo: pode-se criar a tabela com o assistente e depois voltar a ela para reestruturá-la: - na janela Banco de Dados selecione Tabelas, veja as existentes, depois clique no botão Novo; na caixa de diálogo, clique em Assistentes de tabelas: leia o texto da caixa Assistente de tabela: veja que o Access tem vários modelos prontos - na lista Tabelas de exemplo, escolha Fornecedores; na lista de campos de exemplo, dê 2 cliques para selecionar os seguintes campos: Nome do fornecedor, Nome do contato, Número do Telefone, Número do Fax; clique no botão Avançar - abaixo de “Como deseja chamar sua tabela?”, digite Fornecedores (se não estiver), deixe assinalada a opção “Deixar que o MS Access defina a chave primária para mim”; clique depois no botão Avançar; - a próxima pergunta é: “a sua tabela está relacionada a alguma outra tabela no seu banco de dados?”; por enquanto, nenhum relacionamento; clique no botão Avançar - deixe selecionada a opção “Entre dados diretamente na tabela”, clique no botão Concluir; sua tabela deve se abrir no modo Folha de dados - clique no botão Modo estrutura para você ver a estrutura da tabela; observe os nomes de campos e tipos de dados que você escolheu. 3. Inserindo os registros: após criar a tabela, podemos incluir dados imediatamente, sem mesmo montar um formulário para a tabela: - clique no botão Exibir, Modo Folha de dados; observe que foi criado um campo ID (que é chave primária), do tipo Contador ou AutoNumeração (você não precisa preencher este campo, é incrementado automaticamente); - comece a digitar no campo Fornecedor: Mundo do Chocolate; Nome do contato: Beatriz Rodrigues; Número do telefone: (011) 555-5460; Número do fax: (011) 555-5459; aperte Tab para ir para salvar este registro e ir para o próximo - acrescente mais dois registros: Fornecedor: Nozes Frescas Extratos de Sabor Ltda Contato: Bernardo Cohen Branca Silva Telefone: (313) 555-9987 (515) 555-9834 Fax: (313) 555-9990 (515) 555-9888 Feche a tabela após: menu Arquivo, Fechar 4. Criando nova tabela personalizada: podemos criá-la sem o Assistente e sem modelo: na janela Banco de Dados selecione Tabelas; veja se Fornecedores (que você criou está lá); clique no botão Novo; clique em Modo estrutura antes de preencher o quadro da estrutura, veja o help: - clique abaixo de Nome de campo e aperte F1: veja regras de nomes de campos - clique abaixo de Tipo de dados e aperte F1: veja tipos permitidos pelo Access - clique abaixo de Descrição e aperte F1: veja regras de descrição 10 preencha a grade da estrutura da tabela (selecione tipo de dados na caixa de lista): Nome do campo Tipo de dado Descrição ID Transportadora AutoNumeração Número atribuído automaticamente Nome da transportadora Texto Nome da cia transportadora Método de entrega Sim/Não Sim para carga aérea, Não para terrestre consulte a ajuda: veja se o tipo de dados Sim/Não é adequado para método de entrega defina ID Transportadora como chave primária: clique na caixa esquerda para selecionar sua linha; clique no botão Definir chave primária; veja o símbolo aparecer salve a Tabela com o nome Transportadoras: menu Arquivo, Salvar como... alterne para Modo Folha de dados, insira os seguintes registros como no item 3: Nome da transportadora Método de entrega Wild Fargo Carriers Terrestre (Não): caixa desmarcada Expresso Ganso Cinza Aérea (sim): caixa marcada Pégasus Overnight Aérea (sim): caixa marcada 5. Definindo as propriedades dos campos: além do tipo, os campos têm outras propriedades: alterne para Modo Estrutura, clique na linha Método de entrega; antes de prosseguir, clique nas linhas Formato, Legenda... (das propriedades do campo) e aperte F1 para ler o help da definição destas propriedades clique novamente na linha Método de entrega, clique na linha da propriedade Legenda e digite Entrega Aérea alterne para Modo Folha de dados; responda Sim para salvar as modificações; qual a nova legenda do Método de Entrega? feche a tabela 6. Alterando a estrutura de uma tabela existente: na janela Banco de dados, escolha Tabelas, depois Transportadoras e clique no botão Estrutura; na janela da estrutura acrescente dois campos: Contato e Telefone de contato (ambos tipo texto); digite as descrições dos campos para o campo Telefone de contato, defina a propriedade Tamanho do campo = 24 alterne para Modo Folha de dados, salvando a nova estrutura, digite os telefones de contato das três transportadoras já cadastradas: Manuel (212) 555-7837, Clóvis (503) 555-9874, Crisógono (206) 555-8988; feche a tabela aplique um filtro para encontrar o contato de uma transportadora de nome Clóvis e responder a um telefonema; feche a tabela 7. Perguntas e help: como você poderia fazer uma consulta por Nome na tabela Fornecedores? como você pode inserir registros numa tabela sem criar seu formulário? quais são tipos de dados permitidos pelo Access? como inserir novos campos na estrutura de uma tabela? Como definir as propriedades de um campo? como definir a chave primária de uma tabela? E a chave secundária? você pode inserir os seguintes dados nos campos abaixo? Campo Tipo de dado Dados a inserir Sobrenome Texto José Preço da caixa Moeda R$18,75 Quantidade disponível Número 500 Figura Objeto OLE leia o help para Índices, Chaves primárias e secundárias, Como alterar índices, definir propriedades consulte o help e responda: você pode excluir o campo da estrutura de uma tabela já existente? O que ocorrerá? 11 Lição 5 – IMPORTANDO DADOS E CRIANDO FORMULÁRIOS 1. Conceitos: - importar/vincular um arquivo; padrão ODBC, - formatos aceitos pelo Access: planilhas Excel, Lotus 1-2-3, um arquivo texto, outros formatos de BD: FoxPro, Paradox, Dbase, Btrieve, MS SQL Server (cliente/servidor). 2. Vinculando uma tabela externa (você pode visualizar e atualizar os dados mesmo que outra pessoa os esteja usando no aplicativo fonte da tabela; pode montar consultas mesclando tabelas externas vinculadas e do Access): - cenário: a Sweet Lil’s cobrava uma taxa de entrega igual, mas resolve cobrar de acordo com o “estado destino e transportadora”; a tabela está no Depto de Expedição em Dbase III e, para deixála assim, você vai apenas anexá-la - clique no menu Arquivo, Obter dados externos, Vincular Tabelas - na janela Vincular, veja os formatos aceitos pelo Access; na caixa Arquivos do tipo, selecione Dbase III; na caixa Examinar faça o caminho até a sua pasta; selecione depois Remessa.dbf e clique em Vincular; aguarde, que a vinculação demora um pouco; se aparecer uma janela pedindo informar o arquivo de índice do DBaseIII, clique em Cancelar; após a mensagem, feche a janela Vincular - veja se você localiza a tabela Remessa no meio das outras na janela Banco de Dados; observe o ícone diferente, pois ela não faz parte do seu BD 3. Trabalhando com a tabela vinculada: você pode usá-la como se fosse uma tabela do Access, mas não pode mudar sua estrutura (incluir, excluir ou reorganizar os campos); mas pode alterar várias propriedades dos campos, atribuir um valor default ou estabelecer regras de validação. - abra a tabela Remessa: ela abre no modo Folha de dados; vamos trocar o formato de exibição do campo Taxa_de_re (taxa de remessa) para moeda; - alterne para o modo Estrutura (veja a mensagem sobre alterar a estrutura); clique ok (você quer alterar); clique na célula Tipo de dados x Taxa_de_re; embaixo, na grade das propriedades, clique em cada uma delas: verifique à direita quais podem ser alteradas e quais não; veja se você entende o porquê - clique na propriedade Formato (célula Tipo de dados x Taxa_de_re), selecione Moeda; clique no Modo Folha de dados; veja a nova apresentação do campo; feche a tabela 4. Importando uma tabela: o Depto de Expedição resolve mudar a tabela Dbase para o Access, assim, você pode importá-la: a tabela será mudada para o formato do Access: - clique no menu Arquivo, Obter dados externos, Importar; na janela Importar, selecione Remessa.dbf como no item 1 e clique em Importar; - veja se você localiza a tabela Remessa no meio das outras na janela Banco de Dados; observe o nome Remessa1 (o Access não pode repetir o nome) - vamos excluir a tabela anexada e trocar a importada de nome: na janela Banco de dados, selecione Tabela, depois Remessa (anexada) e aperte Del, depois confirme ok (obs: a anexação foi excluída só do seu BD, mas a tabela Remessa.dbf, do DBaseIII, continua na sua pasta); selecione a tabela Remessa1 (importada), clique no menu Editar, Renomear; digite o nome Remessa 5. Adaptando a tabela importada: vamos mexer na sua estrutura e criar uma chave primária com ID transportadora + Estado (responda: porque uma chave primária composta?) - na janela Bco de dados, selecione Remessa, clique no botão Estrutura; troque os nomes para: ID Transportador, Estado Destinatário, Taxa de remessa (o Dbase III permitia só 10 caracteres no nome, o Access permite mais) - clique no campo ID Transportadora, depois na sua propriedade Tamanho do campo, selecione Inteiro Longo; para Taxa de remessa, clique no Tipo de dados, selecione Moeda - defina a chave primária: selecione as linhas ID Transportadora e Estado Destinatário (clique na caixa ao lado esquerdo da linha e aperte Ctrl), clique no botão Chave Primária; salve: menu Arquivo, Salvar; veja a advertência, clique ok 12 6. Criando um formulário com um Assistente: - na janela Bco de dados, selecione Formulário, Novo: na caixa de lista, escolha a tabela Remessa, clique em Assistente de formulário e ok; clique na seta >> para selecionar todos os campos, depois botão Avançar; clique no modelo Coluna e botão Avançar; clique na opção Padrão e botão Avançar; mantenha Remessa para o título do formulário, clique em Concluir; observe como é o modelo Coluna escolhido para o formulário - vamos preencher as taxas para os estados de Porto Rico e Guam: vá p/último registro, depois Próximo para inserir os registros abaixo. Feche o formulário após. ID transport Estado dest Taxa de remessa 1 PO 3,85 1 GU 10,50 2 PO 5,36 2 GU 4,30 3 PO 8,52 4 GU 7,51 7. Exportando arquivos: você pode exportar para vários formatos e somente campos e registros selecionados, ao invés de toda a tabela. Vamos exportar para o Excel, da tabela Caixas, apenas alguns campos e registros selecionados (preço < 30,00) - abra a tabela Caixas, modo Folha de dados - ordene a coluna Preço da caixa em ordem descendente: coloque o mouse sobre a coluna e, quando ele mostrar uma seta para baixo, clique, selecionando a coluna; depois clique no botão Classificação decrescente - selecione apenas as colunas Nome da caixa, Peso, Descrição e Preço da Caixa e que tenham preço abaixo de R$ 30,00 - com a área selecionada, clique no menu Arquivo, Exportar; na caixa Exportar, escolha Microsoft Excel 97; na caixa Salvar em coloque o caminho de sua pasta; na caixa Nome do Arquivo: coloque caixas.xls; deixe marcada a caixa de verificação Salvar com formatação; - no comboBox Exportar tudo, selecione Salvar seleção - se houver Excel no seu computador, abra o arquivo exportado (Caixas.xls, que está na sua pasta), para ver como ficou. 8. Tópicos de recordação e help: - como anexar/vincular uma tabela externa a um Bco de dados Access? como fazer para importar - quais propriedades de campos podem ser modificadas numa tabela anexada; como fazer para alterar estas propriedades? - como excluir uma tabela e como renomear uma tabela? - como criar um novo formulário? - consulte o help para estes tópicos: tabelas: anexar, importar, excluir e renomear; formulários: criação e assistentes 13 Lição 6 – RELACIONANDO TABELAS 1. Conceitos iniciais: relacionamentos: permitem usar várias tabelas de uma vez; são ponteiros entre tabelas: o registro da tabela primária é apontado pela tabela relacionada relacionamentos permitidos no Access: - 1 para 1: informações restritas, economia de espaço (cadastro x salários separados; endereço do pai, da mãe); não são destacados no projeto lógico; - 1 para vários: mais comuns: (cliente x pedidos); resolvidos mediante chave estrangeira; - vários x vários: cria-se uma tabela vinculada, para registrar o relacionamento 1 x N (tabela 1tabela vinculada) e 1 x N (tabela vinculadatabela 2); exemplos: professor x matéria para criar o relacionamento: criar campos coincidentes entre as tabelas: a chave primária da tabela primária deve constar na tabela relacionada; após criar o relacionamento, não se pode excluir os campos relacionados: antes temos que excluir o relacionamento (integridade referencial) Relacionamentos: - Permanentes: montados na janela Relacionamentos, - Consultas: montados na grade da consulta; só valem para aquela consulta. Integridade referencial: implica na pré-existência da chave estrangeira - exemplo: vendedor x pedido - propagação (na exclusão, na alteração) O que já aprendemos nas lições anteriores:: - como criar uma tabela: criação dos campos e de chaves primárias e secundárias, - tipos de campos (citar os principais) - nomes de campos: regras para dar nome aos campos: tamanho: máximo de 10 para exportar espaços em branco: evitar, pois é muito difícil de enxergá-los no Windows dar nomes significativos - propriedades dos campos (citar algumas) - podemos modificar a estrutura de uma tabela e depois regravá-la - anexar (ou vincular) importar uma tabela: realçar a diferença entre as duas - exportar uma tabela ou parte dela - criar um formulário com um assistente 2. Criando relacionamento entre duas tabelas: Remessa e Transportadoras: - no menu Ferramentas, escolha Relacionamentos: a janela abre mostrando o último Relacionamento gravado; senão, estará vazia (se estiver cheia, use o menu Editar, Limpar layout para ficar com a janela vazia) - informe as tabelas a relacionar: clique no botão Mostrar tabela; na janela Mostrar tabela, clique na aba Tabela, selecione Transportadoras e depois Adicionar; selecione depois Remessa e Adicionar; clique em Fechar: as tabelas e seus campos aparecem listados na janela Relacionamentos - arraste o campo ID Transportadora da tabela Transportadora para o ID Transportadora na tabela Remessa (primária relacionada); na caixa de diálogo Editar Relacionamentos, verifique se os campos estão corretos (caso contrário, selecione o campo correto na caixa de lista); clique no botão Criar: a linha do relacionamento entre as tabelas é mostrada; Obs.: caso o relacionamento já esteja criado, exclua-o, procedendo de acordo com o item 3 e depois recrie-o seguindo os passos do parágrafo anterior; - feche a janela Relacionamentos (menu Arquivo, Fechar); salve o relacionamento criado 3. Excluindo e recriando um relacionamento: - para excluir: clique no botão Relacionamentos (a janela Relacionamentos mostra o último salvo); clique na linha do relacionamento, aperte Del, responda OK - recrie o relacionamento: repita os dois últimos parágrafos do item anterior 14 - - teste a integridade referencial, marcando a caixa “integridade referencial”: caso não consiga, é porque os registros das duas tabelas não estão casando; corrija antes os registros e depois volte e assinale a “integridade referencial” tente depois incluir registros na tabela Remessa com códigos que não existam na tabela Transportadoras e observe as mensagens. 4. Relacionamentos com vários campos: a tabela Remessa tem uma chave composta (ID Transportador+Estado); a tabela Pedidos (relacionada) precisa apontar os dois campos - na janela Banco de Dados, clique no botão Relacionamentos; não queremos o relacionamento mostrado: clique no menu Editar, Limpar layout, depois clique OK - adicione as tabelas Remessa e Pedidos (como no item 2) - na janela Relacionamentos: arraste ID Transportadora da tabela Remessa para ID Transportadora da tabela Pedidos, confira na caixa de diálogo se está correto, corrija, se for o caso; dê um clique na célula abaixo de ID Transportadora de cada tabela, depois clique na seta da caixa de lista e selecione Estado destinatário; depois clique no botão Criar; veja o relacionamento: afaste as duas caixas com as tabelas e aumente o tamanho das caixas para ver melhor. Obs: se deu erro, feche a janela Relacionamentos e verifique o seguinte: - estrutura da tabela Remessa: a chave primária deve conter os campos ID Transportadora (tipo Número, inteiro longo) e Estado destinatário ( tipo Texto, tamanho 25) - estrutura da tabela Pedidos: campos ID Transportadora (AutoNumeração) e Estado destinatário ( tipo Texto, tamanho 25): os tamanhos e tipos de dados dos campos devem ser iguais - feche a janela Relacionamentos; responda Sim para salvar o relacionamento criado 5. Usando um relacionamento numa consulta: vamos ver o custo da remessa de um pedido: - na janela Banco de Dados, clique em Consulta, depois em Novo; depois selecione o Modo Estrutura; na caixa Mostrar tabela, adicione as tabelas Transportadoras, Pedidos e Remessas, feche a caixa Mostrar tabela; - veja os relacionamentos: ajuste o tamanho da parte de cima da janela para ver melhor - dê um clique duplo ou arraste os seguintes campos para a grade de consulta, nesta ordem: da tabela Pedidos: ID Pedido, da tabela Transportadora: Nome da transportadora, da tabela Remessa: Taxa de remessa; clique no modo Folha de dados; veja a consulta; feche-a após sem salvar 6. Relacionamentos vários para vários N x N: veja as tabelas Caixas e Bombons: a tabela Detalhes da caixa tem as chaves primárias das duas tabelas; vamos usá-la como tabela vinculada, criando os relacionamentos: 1 x N: Bombons x Detalhe da Caixa e 1 x N: Detalhe da Caixa x Caixas - na janela Banco de Dados, clique em Tabela, depois no botão Relacionamentos; depois menu Editar, Limpar layout e OK - clique no botão Mostrar tabela e adicione as tabelas Bombons, Detalhes da Caixa e Caixas, feche a caixa Mostrar tabela; veja os vínculos (já estão montados); feche a caixa Relacionamentos, responda Não para a mensagem 7. Adaptando tabelas para estabelecer relacionamentos: - cenário: clientes ligam para fazer pedidos por telefone, tomados por vários empregados; precisamos saber o nome do empregado que anotou o pedido; para isto vamos relacionar as tabelas Pedidos e Empregados 7.1 Avaliando o relacionamento entre as tabelas: - clique no botão Relacionamentos, menu Editar, Limpar layout e OK - adicione as tabelas Empregados e Pedidos, feche a janela Mostrar tabela - estude as tabelas: quem é primária e relacionada (1 x N); veja se há coincidência da chave primária da tabela primária na tabela relacionada 15 - vamos ter de alterar a tabela Pedidos para fazer o relacionamento: feche a janela Relacionamentos e clique Sim para gravá-lo 7.2 Alterando a estrutura para criar o relacionamento: - na janela Banco de dados, selecione Tabela, depois Pedidos e Modo Estrutura; na coluna nome do campo, acrescente: ID Empregado, tipo de dados: Número; feche a janela, grave as modificações - clique no botão Relacionamentos (confirme: deve ser Empregados e Pedidos); arraste o campo ID Empregado da tabela Empregados para o mesmo campo de Pedidos; confirme o relacionamento se estiver correto; clique em Criar; veja se está ok; feche a janela, gravando 8. Responda as questões e consulte o help: - qual a chave primária nas tabelas Transportadoras e Remessa - no relacionamento Transportadora x Remessa: qual a tabela primária e qual a relacionada; - que tipo de relacionamento é 1 x 1 e qual é 1 x N? - posso relacionar o campo ID Transportadora (tabela Transportadora) com um campo chamado Número da transportadora na tabela Pedidos? Porque? ou como fazer? Quais as regras que os campos têm de seguir (tipo de dados e tamanho) para eu poder fazer o relacionamento? - que é chave estrangeira? - como faço para excluir o relacionamento entre duas tabelas, se não foi o último relacionamento que gravei? - como faço para criar um relacionamento N x N no Access? - leia o help para: janela Relacionamentos (criar, excluir e usar) EXERCÍCIO DE REVISÃO DE TABELAS E RELACIONAMENTOS 1. Crie uma tabela de nome Promoções (o depto de Marketing controlará as promoções por empregado): campos: ID Empregado, Nome da promoção, Data de início, ID Caixa. Coloque o tipo de dados adequado a cada campo; Nome da promoção é a chave primária. 2. Como um empregado poderá cuidar de várias promoções, crie um relacionamento 1 x N entre as tabelas Empregados e Promoções. Não salve este Relacionamento ao sair. 3. O depto de Marketing quer conhecer Locais e Datas de Pedidos de determinadas caixas. A tabela Pedidos contém as Datas e Locais, mas não as Caixas pedidas. Uma Caixa pode estar em vários pedidos e um pedido pode conter várias Caixas. Qual será o relacionamento possível? Depois de responder a isto, abra a janela Relacionamentos, mostre as tabelas de sua resposta e verifique se está correta a sua resposta. 4. Exclua a tabela Promoções (acabou a campanha). Veja se deu certo ou errado e porque. 5. Procure relacionamentos 1-1, 1-N e N-N no Bd Sweet. 16 Lição 7 – CONSULTAS 1. Conceitos: - base da consulta (dynaset): pode ser uma tabela ou outra consulta; também podem ser várias tabelas relacionadas: pode abranger todos os campos destes registros ou apenas alguns; pode abranger todos os registros ou apenas alguns selecionados mediante critérios; pode abranger uma ou mais tabelas. - consultas funcionam como as tabelas: podem ser visualizadas numa folha de dados, podem ter seus dados atualizados, gravando em seguida as tabelas respectivas - QBE: query by example: modelo gráfico usado pelo Access para montar a consulta; depois o Access traduz a consulta em linguagem SQL - como montar a consulta: como se programa (do geral para o particular, modelo topdown), através de refinamentos sucessivos, até se chegar à ideal 2. Criando uma consulta: queremos nomes e telefones dos clientes do estado de S.Paulo - na janela Banco de dados, clique em Consulta, depois botão Novo; na caixa Nova Consulta, clique no Modo Estrutura; na janela Mostrar Tabela, selecione a tabela Clientes, depois Fechar - arraste o campo ID Cliente para a primeira célula da grade QBE; depois, para as células ao lado, os campos Nome do Cliente, Sobrenome, Estado e Telefone (ao invés de arrastar, você pode dar um clique duplo) - salve: menu Arquivo, Salvar Como, dê o nome Clientes SP para a consulta, clique ok; - execute a consulta: clique no botão Exibir Modo folha de dados; observe o que está sendo mostrado; clique no botão Exibir modo SQL para ver o código gerado pelo Access - vamos definir o critério para selecionar S.Paulo: na grade QBE, campo Estado, linha critério: digite “SP”; veja a consulta no Modo Folha de Dados; veja depois no modo SQL - vamos restringir para saber somente clientes novos (com ID>20): clique no botão Exibir, Modo Estrutura; acerte a largura das colunas para enxergar todas na janela; na linha critério abaixo de ID Cliente, digite >20; veja a consulta no Modo Folha de Dados; veja depois no modo SQL - ordene a consulta por sobrenome e ordem alfabética: clique no botão Modo Estrutura, clique na linha Classificação abaixo de Sobrenome, escolha Crescente; veja a consulta no Modo Folha de Dados; veja depois no modo SQL - oculte o campo Estado (é redundante: todos os clientes são de SP): clique no botão Modo Estrutura, na linha Mostrar abaixo de Estado, clique na caixa (apagando o X); veja a consulta no Modo Folha de Dados; veja depois no modo SQL - salve as modificações: menu Arquivo, Salvar; feche depois a Consulta; veja depois na janela Banco de Dados se está lá sua Consulta 3. Consulta com base em tabelas relacionadas: a Diretora deseja uma lista de todos os pedidos de novembro, com: IDs dos pedidos, datas dos pedidos e nomes dos clientes - crie uma nova consulta seguindo o item 2: selecione a tabela Pedidos, clique Adicionar, depois tabela Clientes, clique Adicionar, clique Fechar (observe a linha do Relacionamento entre as tabelas) - arraste para a grade QBE: os campos da tabela Pedidos (ID Pedido, ID Cliente e Data do Pedido); da tabela Clientes (Sobrenome) - na linha Critério abaixo de Data do Pedido, digite a expressão: Entre 1-Nov-93 E 30-Nov-93, aperte Enter; aumente a largura para ver toda a expressão - veja a consulta: clique no Modo Folha de Dados; veja depois no modo SQL; salve a consulta: menu Arquivo, Salvar Como, dê o nome Informações de Pedidos e feche-a 4. Associando tabelas nas consultas: - os relacionamentos podem existir apenas nas consultas (desde que existam campos nas tabelas com o mesmo nome e tipo de dados e um seja chave primária), não são relacionamentos permanentes; se o relacionamento permanente não existir, nem for criado automaticamente na consulta, podemos criá-lo só para esta consulta (desde que existam os campos coincidentes) 17 - crie uma nova consulta seguindo o item 2: selecione as tabelas Ingredientes e Fornecedores; ao fechar, observe que não há linha de Relacionamento nas tabelas) crie o relacionamento: arraste o campo ID Origem (tabela Ingredientes) para o campo Código Fornecedor (tabela Fornecedores) arraste para a grade: tabela Ingredientes: Categoria e Tipo; tabela Fornecedores: Nome do Contato; tabela Ingredientes: ID Origem (coloque a linha Classificar deste campo em Crescente) veja a consulta no Modo Folha de Dados e depois no modo SQL; salve-a com o nome FonteIngredientes 5. Consulta de Totais: vamos alterar uma consulta existente (Informações de Pedidos: lista de pedidos por clientes) para criar uma nova e inserir cálculos com totais: - na janela Banco de Dados, clique em Consulta, selecione Informações de Pedidos; clique no botão Estrutura, depois salve: Arquivo, Salvar Como: PedidosTotaisPorPaís - delete um campo: selecione o campo Sobrenome (alto da sua coluna) e aperte Del; exclua da mesma forma os campos ID Cliente e Data do Pedido - adicione o campo País (tabela Clientes): arraste-o para o alto do campo ID Pedido (Pais vira o primeiro campo da consulta) - adicione totais: clique no botão Totais da barra de ferramentas (aparece a linha Total na grade QBE e aparece Agrupar por nas células); clique na linha Total abaixo de ID Pedido, depois na seta que surge, escolha Contar; veja no modo Folha de dados - vamos agrupar por Estado dentro de País: alterne para o Modo Estrutura, arraste o campo Estado (tabela Clientes) para ficar entre País e ID Pedido; veja como fica no modo Folha de dados 6. Modificando um nome de campo numa consulta: podemos ter um nome mais significativo na coluna da Folha de dados e podemos usar este nome de campo em formulários, relatórios e outras consultas (como se fosse o nome de campo de uma tabela) - na última consulta, o Access criou um campo ContarDeIDPedido; vamos mudá-lo para Pedidos Totais: clique no Modo Estrutura, veja na grade QBE - clique à esquerda de ID Pedido e digite, inserindo, Pedidos Totais: (digite os dois pontos inclusive); veja a consulta a seguir no modo Folha de Dados 7. Consulta com campos calculados: o gerente deseja saber o preço das caixas aumentado em 5% - crie uma nova consulta com a tabela Caixas; coloque os campos Nome e Preço da Caixa na grade; veja-a no Modo Folha de Dados; salve-a com o nome Subir Preços - adicionando o campo calculado: volte para o Modo Estrutura, coloque o ponto de inserção na linha Campo, célula à direita de Preço da Caixa; digite [Preço da Caixa]*1,05, aperte Enter (os colchetes indicam um nome de campo) - veja a consulta no Modo Folha de Dados, veja o nome do campo Expr1 (vamos trocar o nome para Novo Preço e formatar os dados) - volte para o Modo Estrutura, clique em Expr1: substitua Expr1 por Novo Preço; clique no botão Propriedades; mude a propriedade Formato para Moeda; em Descrição, digite: Mostra preços aumentados em 5%; feche a caixa Propriedades, veja o resultado no Modo Folha de Dados: clique no campo Preço Novo, veja a descrição do campo na barra de status (em baixo da folha de dados); salve e feche a consulta 8. Crie um formulário com base numa consulta (ao invés de baseá-lo numa tabela): - você quer encontrar rapidamente o telefone de um fornecedor; adicione um campo a uma consulta: abra a consulta Fonte Ingredientes no Modo Estrutura; coloque o campo Número de Telefone do Fornecedor entre os campos Nome do Contato e ID Origem - exclua após o campo ID Origem; salve a consulta; veja-a no Modo Folha de Dados - crie o formulário com um atalho: com a consulta aberta, clique na barra de ferramentas, na seta do botão Novo Objeto: AutoFormulário; clique depois em AutoFormulário; veja o formulário criado; salve-o com o nome Fonte Ingredientes 9. Questões de revisão e help: - como definir critérios para selecionar registros numa consulta? 18 - na consulta, posso ordenar os dados de forma diferente da sua tabela de origem? como ocultar um campo numa consulta? o campo ainda faz parte da consulta? o relacionamento entre tabelas pode ser permanente ou só vale para consultas? como inserir campos de totais numa consulta? como dar um nome personalizado a um campo de totais ou calculado? leia o help para: consultas (criar, adicionar campos, excluir campos, adicionar tabelas e excluir tabelas, associar tabelas em consultas), consultas (critérios, propriedades, cálculos) altere a consulta do item 5: ao invés do campo País da tabela Clientes, selecione o da tabela Pedidos; elimine em seguinda a tabela Clientes da consulta: porque os resultados podem ser diferentes? Lição 8 – CONSULTAS COM PARÂMETROS 1. Conceitos: Usamos as mesmas consultas, variam somente os parâmetros: data da última compra, quantas caixas de cada tipo há no estoque... criamos caixas de diálogo para entrar com os parâmetros, que são digitados pelo usuário. 2. Criando uma consulta parâmetro: vamos criar uma consulta para nos dar uma lista dos bombons de acordo com seu tipo de chocolate (baseada na tabela Bombons): - na janela Banco de dados, clique em Consultas, depois botão Novo, depois no Modo Estrutura: abre-se a janela Mostrar Tabela; selecione a tabela Bombons (clique duplo), depois Fechar - adicione os campos Nome do Bombom, Tipo do Chocolate, Custo do Bombom e Descrição do bombom à grade QBE; selecione Crescente na célula Classificação abaixo do Nome do Bombom; salve com o nome Informações dos Bombons - criando o diálogo: na linha Critério abaixo de Tipo do Chocolate, digite [Digite tipo do chocolate]. Este será o texto da caixa de diálogo a ser exibida. É também o nome do parâmetro. Os colchetes também devem ser digitados. - definindo o tipo de dado do diálogo (para que o usuário não digite algo indevido): clique no menu Consulta, Parâmetros; na primeira célula da coluna Parâmetro, digite o nome do parâmetro: Digite tipo do chocolate, sem os colchetes; na coluna Tipo de dados coloque (ou deixe) Texto (o tipo de dados da caixa de diálogo tem de combinar com o tipo de dados do campo da tabela). Clique OK e salve a consulta. Obs.: você pode copiar o parâmetro para colocar na caixa de diálogo: selecione o texto sem os colchetes, aperte Ctrl+C; clique menu Consulta, Parâmetros; clique na primeira célula da caixa Parâmetros da Consulta, aperte Ctrl+V (colando) - visualize a consulta: clique no Modo Folha de Dados, digite Meio-Amargo na caixa, clique OK; - abra a tabela Bombons, veja outros tipos de chocolate, anote-os e execute a consulta para mostrar outros tipos de chocolate; - veja a consulta depois no modo SQL, como os parâmetros são criados. 3. Parâmetros de-até (faixa de registros): usamos mais de uma caixa de diálogo; vamos pesquisar os bombons dentro de uma faixa de preço: - abra a mesma consulta no Modo Estrutura; clique na célula Critério no campo Custo do Bombom, aperte Shift+F2 (abre a caixa Zoom, para ver todo o texto que digitar); digite Entre [Digite custo menor] E [Digite custo maior]; clique OK (arraste a borda direita do seletor do campo Custo do Bombom para poder ler toda a expressão): adicionamos dois parâmetros (duas caixas de diálogo) - definindo tipo de dado dos diálogos (como item 2): menu Consulta, Parâmetros; na segunda célula da coluna Parâmetro, digite “Digite custo menor”; no Tipo de dados coloque Moeda (este campo na tabela é Moeda); na terceira célula de Parâmetro, digite “Digite custo maior”; coloque tipo de dados Moeda também (use Copiar/Colar) - salve a consulta alterada, mesmo nome Informações dos Bombons 19 - veja a consulta no Modo Folha de dados; na primeira caixa, digite Amargo, clique ok; na segunda caixa: 0,25 (custo mais baixo), OK; na terceira caixa: 0,35 (custo mais alto), OK; veja a consulta abra depois a tabela Bombons, confira o tipo do chocolate e o custo; veja a consulta depois no modo SQL. 4. Relatório baseado numa consulta-parâmetro: vamos usar a consulta Informações dos Bombons que montamos: - crie um novo relatório, selecione a consulta Informações dos Bombons; clique na seta do botão Novo objeto na barra de ferramentas, clique em AutoRelatório (o relatório é montado com todos os campos da consulta e usando todos os default); o relatório é exibido em seguida e lhe pede os três parâmetros - digite respostas: Tipo do chocolate: Leite Custo menor: 0,15 Custo maior: 0,22 - dê zoom (basta clicar em cima do relatório) e navegue pelo relatório, verificando; salve-o com o nome Informações dos Bombons, depois feche-o 5. Consulta Tabela de Referência Cruzada (similar às tabelas do Excel): vamos montar uma tabela que nos mostre as caixas em estoque, colocando cada peso em colunas separadas: - na janela Banco de Dados, clique em Consulta, depois Novo, selecione depois Assistente de Consulta de Tabela de Referência Cruzada, clique ok - na janela Assistente..., selecione a tabela Caixas, clique botão Avançar; clique duplo em Nome da Caixa para ser a primeira coluna da consulta (cabeçalho das linhas), clique Avançar; selecione Peso para ser o cabeçalho das colunas, clique Avançar; selecione Quantidade Disponível para os dados que você quer colocar no meio (interseção de linhas e colunas); na lista Funções, selecione Soma, clique no botão Avançar; dê o nome Caixas em Estoque para salvar a consulta; marque o botão de rádio Exibir a consulta e clique em Concluir - veja a consulta; alterne para o Modo Estrutura, veja se entende como foi montada a consulta; veja também no modo SQL; feche-a depois 6. Alterando uma consulta com parâmetros: vamos criar uma nova consulta p/saber o custo do bombom pelo tipo da noz usada. Baseamo-nos na consulta Informações dos Bombons: excluímos um parâmetro e excluímos outro - na janela Banco de Dados, abra a consulta Informações dos Bombons no Modo Estrutura; salve-a: menu Arquivo, Salvar Como, dê o nome Informações das Nozes - excluindo um parâmetro (temos de excluí-lo na grade QBE e na caixa de diálogo Parâmetros): no Modo Estrutura, linha Critérios abaixo de Tipo do Chocolate: selecione tudo e aperte DEL; no menu Consulta, clique Parâmetros; na caixa Parâmetros da Consulta, selecione Digite Tipo do Chocolate e aperte DEL; clique OK - adicione novo campo à consulta: arraste o campo Tipo da Noz p/a grade QBE, para ficar à esquerda de Custo do Bombom - adicione novo critério: na célula Critério abaixo de Tipo da Noz, digite [Qual tipo de Noz?]; copie o parâmetro para colocar na caixa de diálogo Parâmetros; clique menu Consulta, Parâmetros; clique na primeira célula da caixa Parâmetros da Consulta e cole; deixe Texto na coluna Tipo de dados - clique OK para salvar e feche a caixa - clique no Modo Folha de Dados para ver a consulta, digite: Tipo da Noz: Avelã, Custo menor: 0,20, Custo maior: 0,33 - mudando a ordem das caixas de diálogo: clique no botão Modo Estrutura, menu Consulta, Parâmetros; selecione o parâmetro Qual Tipo da Noz, aperte Ctrl+X para recortar o texto; clique na célula abaixo de Digite Custo Maior, aperte Ctrl+v (cola o texto); deixe a coluna Tipo de dados em Texto; clique OK - clique no Modo Folha de Dados para ver a consulta, com os mesmos custos e tipo de noz; veja depois no modo SQL; salve a consulta e feche-a 7. Consulta com campos calculados e parâmetro digitado pelo usuário: vamos repetir a consulta do item 7 da lição anterior permitindo que o usuário digite o percentual: 20 - - - crie uma nova consulta com a tabela Caixas; coloque os campos Nome e Preço da Caixa na grade; veja-a no Modo Folha de Dados; salve-a com o nome conSubirPrecos adicionando o campo calculado: volte para o Modo Estrutura, na linha Campo, célula à direita de Preço da Caixa; digite [Preço da Caixa]*(1+[Digite % aumento]/100): criamos um parâmetro [Digite % aumento], dividimo-lo por 100 e somamos 1 acerte o tipo do parâmetro: menu Consultas, Parâmetros e coloque Digite % aumento com tipo decimal; veja a consulta no Modo Folha de Dados troque o nome do campo Expr1 para Reajustado; a fórmula toda neste campo fica assim: Reajustado: [Preço da Caixa]*(1+[Digite % aumento]/100); coloque nas propriedades desta coluna Formato: Moeda e Descrição: Mostra preços aumentados teste o resultado no Modo Folha de Dados: digite 10 numa primeira vez e 10,1 numa outra; veja depois no modo SQL 8. Consulta de totais e com parâmetros: vamos alterar uma consulta de totais para colocar nela um parâmetro de seleção: - abra a consulta Vendas por País no modo estrutura; observe que ela tem um campo Data do pedido que serve para seleção; veja-a no modo Folha de dados: o campo Data do pedido serviu para seleção, mas também como critério de totalização (veja que Coleção Alpina, Brasil, Garcia aparece duas vezes); - volte ao modo estrutura e marque a caixa da linha Mostrar deste campo Data do pedido; mostre a consulta no modo Folha de dados; observe que há duas datas para Coleção Alpina, Brasil, Garcia - volte ao modo estrutura e, na linha Totais deste campo Data do pedido selecione Onde (ao invés de Agrupar por); mostre a consulta no modo Folha de dados, observe que há uma linha somente para Coleção Alpina, Brasil, Garcia; veja depois no modo SQL. 9. Questões de revisão e help: - como definir critérios para selecionar registros numa consulta? - na consulta, como posso ordenar os dados de forma diferente da tabela de origem? - como ocultar um campo numa consulta? o campo ainda faz parte da consulta? - relacionamento entre tabelas pode ser permanente ou só vale para consultas? - como inserir campos de totais numa consulta? - como dar um nome personalizado a um campo de totais ou calculado? - qual a seqüência para você colocar uma caixa de diálogo selecionando parâmetros em um determinado campo? - qual a diferença (ou qual a semelhança) entre uma tabela de Referência Cruzada montada pelo Access e uma Tabela Dinâmica montada pelo Excel? - como fazer para mudar a ordem das caixas de diálogo que pedem os parâmetros em uma consulta? (por ex.: digitar antes o custo maior e depois o menor). - altere a consulta do item 5 da lição 7 (Caixas em estoque). Mude a função de Soma para Contar. Por que os resultados são diferentes? Exercício de revisão: CONSULTAS e AUTORELATÓRIOS 1. Crie uma consulta nova para o Depto de Marketing para clientes que compram bombons numa dada faixa de preço: use a tabela Caixas. Abra-a antes no modo folha de dados e veja seus campos. Campos da consulta: nome, peso e preço; selecione: caixas com peso > ou = a 350g e preço menor do que R$ 30,00; execute a consulta e feche-a. Abra a tabela e confira se está correta a consulta. 2. Para nova campanha de bombons com preço médio, você monta uma nova consulta: use tabela Caixas, campos: nome, preço e qtidade disponível; coloque em ordem alfabética pelos nomes das caixas; selecione somente preços entre 17,00 e 25,00 (use >=17 e <=25 ou a expressão Entre...E...); selecione somente qtidade disponível em estoque acima de 200; execute a consulta e salve-a com nome Caixas de Preço Médio. Confira os resultados. 21 3. Para o Depto de Expedição, você monta uma consulta com todos os pedidos mandados por via aérea para os EUA: crie uma consulta com tabelas relacionadas. - use as tabelas Pedidos e Transportadoras (veja se mantêm o relacionamento pela ID Transportadora); adicione o campo com a ID do Pedido; adicione o campo País e critério “EUA”; adicione o campo com o nome da Transportadora; adicione o campo Método de Entrega e Sim no critério (para selecionar carga aérea) - execute a consulta; como o país é sempre EUA e carga sempre aérea, volte ao Modo Estrutura e oculte estes dois campos; salve a consulta com o nome Remessa EUA - abra a tabela Pedidos e confira 4. Modifique a consulta anterior para mostrar quanto foi gasto por transportadora: - adicione a tabela Remessa (veja se mantêm o relacionamento pela ID Transportadora); adicione o campo Taxa de Remessa à consulta - insira Totais na grade QBE, depois selecione Soma na lista para total de Taxa de Remessa; exclua depois o campo ID Pedido desta consulta - execute a consulta; salve suas modificações; confira o resultado - elimine os critérios de País e Carga Aérea, insira novamente o campo ID Pedido e na linha de Total coloque Contar para ID Pedido; execute novamente e confira. 5. Modifique a consulta Exame dos Pedidos para apresentar somente um intervalo de datas - abra a consulta Exame dos Pedidos no Modo Estrutura; adicione um parâmetro à célula Critério no campo Data do Pedido para ser digitado o intervalo de datas - preencha as caixas de diálogo do Menu Consulta, Parâmetros, coloque o tipo de dados como Data/Hora - visualize a consulta para os pedidos com data entre 26/12/93 e 31/12/93 - confira com a tabela; execute com outras datas, salve e feche a consulta 6. Para fazer uma promoção “Compre antes da correria”, você precisa montar um relatório de quem comprou logo antes do Natal. É a mesma consulta anterior. Portanto, monte um relatório usando o Assistente AutoRelatório em cima desta consulta. Ao visualizar o relatório, use as datas 20 e 24/12/93 para seleção. Use o zoom. Salve o relatório com o nome Exame dos Pedidos. 22 Lição 9 – FORMULÁRIOS: INSERINDO CONTROLES 1. Conceitos: - com o uso do Assistente, criamos formulários padronizados; no modo Estrutura: podemos colocar nossos próprios componentes, nossa arrumação, - o que é um Controle (ou componente): caixa de texto, caixa de verificação, rótulo, caixa de combinação...: são objetos separados (podem ser arrastados, redimensionados, copiados) e têm suas propriedades (como os campos das tabelas) - controle vinculado: amarrado com um campo de tabela ou consulta, mostra os dados deste campo e os modifica, se digitado. 2. Criação do formulário: opinião mais importante é de quem vai usá-lo. - Cenário: a Sweet Lil’s precisa de um formulário on line para fazer a contagem de estoque. O usuário diz: “Tudo que precisamos no formulário é do código ID e da quantidade disponível, para que achemos rapidamente a caixa certa e atualizemos a sua quantidade. Mas você pode fazer com que ele se pareça com os outros formulários on line? Com as cores azul e cinza e todo o resto?”. - Com o formulário vamos atualizar a tabela Caixas (que tem as quantidades disponíveis em estoque). 3. Criando o formulário: - na janela Banco de dados, clique em Formulários, depois botão Novo; na janela Novo Formulário, escolha Assistente de Formulário e, em baixo, selecione a tabela Caixas, depois OK; - na primeira janela do Assistente, selecione os campos ID Caixa e Quantidade disponível (clique duplo) para colocá-los no formulário, clique em Avançar; - na etapa seguinte, escolha o layout Coluna e clique em Avançar; escolha depois a opção de estilo Padrão e clique em Avançar; digite Inventário no título do formulário, marque o botão de rádio “Abrir o formulário...” e clique em Concluir (observe o formulário criado: mostra o primeiro registro da tabela Caixas) - salve-o: menu Arquivo, Salvar 4. Modos de formulário: Formulário, Folha de dados e Estrutura; veja-o nas três formas. - Clique no Modo Estrutura: (ajuste o tamanho da janela para ver com clareza): · está dividido em três seções: cabeçalho, detalhe e rodapé · cabeçalho: aparece no alto da janela no modo Formulário · detalhe: é o corpo do formulário; contém duas caixas de texto para os campos da tabela Caixas e dois labels associados a estes campos · rodapé: vazio, no nosso caso 5. Adicionando um rótulo: (serve para exibir um texto ao seu gosto): - torne visível a Caixa de Ferramentas para poder arrastar os controles: menu Exibir, Caixa de ferramentas (observe-a: contém todos os controles para formulários do ACCESS); - para aumentar ou diminuir uma seção, coloque o mouse sobre a linha que a separa; quando o mouse virar uma cruzinha, arraste para cima ou para baixo; - vamos colocar um rótulo para o período de tempo coberto pelo inventário: clique na ferramenta Rótulo na caixa de ferramentas, clique no cabeçalho do formulário à esquerda: digite “Inventário (Jan-Jun)” e aperte Enter (o controle fica selecionado: tem alças, handles, ao redor dele) - mova o controle: com o rótulo selecionado, o ponteiro do mouse em forma de mão, arraste-o para centralizá-lo (a mãozinha arrasta; a seta dupla redimensiona) 6. Mudando o tamanho do texto e definindo cores: - com o rótulo selecionado, clique no tamanho da fonte na barra de ferramentas, selecione ou digite 12 (se a barra de ferramentas não estiver visível, clique no Menu Exibir, Barra de Ferramentas, Formatação); se o texto não couber no rótulo, redimensione o controle: arraste os handles ou selecione menu Formatar, Dimensionar, Para Caber 23 - - mude a cor de fundo de uma seção: selecione a seção Cabeçalho do Formulário (clique no fundo ao lado do título Inventário); clique na seta do botão Cor de Fundo na barra de ferramentas; selecione Azul-escuro para a cor de fundo; observe mude a cor do texto: selecione o rótulo Inventário: coloque-o com a cor do fundo: azul-escuro; clique na seta do botão Cor do Primeiro Plano, selecione cinza-claro salve as alterações do formulário: menu Arquivo, Salvar 7. Adicionando campo de tabela ou consulta (controle vinculado): - você precisa colocar Nome da caixa, Peso e Interrompido (todos da mesma tabela), conforme pedido dos inventariantes; eles ficarão desalinhados, depois os alinhamos; se a lista de campos não estiver visível, clique no botão Lista de Campos na barra de ferramentas, - crie espaço: arraste a borda inferior da seção Detalhe; arraste o campo Quantidade Disponível para a parte de baixo (o rótulo e a caixa de texto devem ir juntas), Obs: se precisar mover uma caixa de texto sem seu label ( rótulo), posicione o mouse no canto superior esquerdo da caixa de texto; com o ponteiro em forma de dedo indicador (handle de movimentação) e arraste. - adicione o nome da caixa: arraste o campo Nome da Caixa para o local do formulário abaixo de ID Caixa; observe que foram criados o rótulo e a caixa de texto - arraste o campo Quantidade Disponível para baixo do Nome da Caixa - clique no Formulário para ver como ficou; navegue por alguns registros; observe; volte ao modo Estrutura 8. Mudando a aparência default de um controle: o rótulo Nome da Caixa veio preto; podemos mudá-lo para azul, como já fizemos; entretanto, queremos que o ACCESS crie os novos rótulos com esta cor: mudamos, então, suas propriedades default: - mude a cor do Nome da caixa: clique no rótulo, depois no botão Cor do Primeiro Plano, selecione a cor azul - tornando a formatação default: com o rótulo selecionado, clique menu Formatar, Definir Controles Padrão: os próximas rótulos serão criados como este selecionado 9. Adicione os outros campos: - selecione os campos Peso e Interrompido; arraste-os para baixo de Quantidade Disponível, ainda na seção Detalhe (observe suas cores: devem vir na cor azul, que é a cor default) - alterne para o Modo Formulário para ver como ficou (ajuste pelo menu Janela, Dimensionar para caber formulário, se necessário); volte ao modo Estrutura - reorganize os campos para que: ID Caixa, Nome da Caixa e Peso fiquem em cima, um espaço maior separando e os campos Quantidade Disponível e Interrompido em baixo 10. Excluindo um controle e colocando uma Caixa de Verificação para o campo Interrompido (tipo de dado: Sim/Não): - exclua a caixa de texto Interrompido: selecione-a e aperte Del - clique na Caixa de Verificação (de Seleção) na caixa de ferramentas; arraste em seguida o campo Interrompido da lista de campos para o local onde estava a caixa de texto; observe a caixa de verificação criada - alterne para o modo Formulário e clique na caixa Interrompido para ver como funciona; deixe-a limpa depois; volte ao modo Estrutura. 11. Definindo propriedades com a folha de propriedades: - Já modificamos cor e fonte, que são propriedades; vamos modificar outras. Cada controle tem suas propriedades; cada seção de formulário tem seu conjunto de propriedades; o formulário também tem seu conjunto de propriedades. Para exibir a folha de propriedades: clique no objeto e no botão Propriedades. - selecione o formulário: clique no fundo dele, do lado direito (ou menu Editar, Selecionar formulário), depois no botão Propriedades; abre-se a folha de Propriedades do Formulário. Clique depois nas seções do formulário, veja mudar a folha de Propriedades. Clique em alguns 24 controles (uma caixa de texto e sua rótulo, separados) e observe suas propriedades. Volte para a folha de propriedades do formulário 12. Marcas de grade do formulário: ajudam a mostrar o alinhamento dos controles (para vê-las, clique no menu Exibir, Grade). - para mudá-las: nas propriedades do formulário, aba Formato, role abaixo para ver as propriedades GradeX e GradeY (números altos aqui indicam precisão maior no alinhamento); - mude GradeX para 3 cm (se a régua acima do cabeçalho estiver em polegadas, mude para 7); mude GradeY para 4 cm (ou 8 polegadas). Observe que mudam as distâncias dos pontos no formulário, permitindo um alinhamento melhor dos controles. 13. Propriedades que usam o botão Construir: - selecione a caixa de texto Quantidade disponível: exiba sua folha de Propriedades; na aba Formato, clique na caixa de texto Cor da Borda: exibe o botão Construir (com reticências) à direita, clique nele - na caixa de diálogo Cor, selecione azul-escuro e clique em ok; veja o número da cor escolhida agora nesta propriedade - clique na propriedade Largura da borda, selecione 2pt 14. Alinhando os controles: pode usar as réguas, a grade, ou menu marque a opção Alinhar à grade: menu Formatar, deixe marcada a opção Alinhar (Encaixar) à grade alinhe verticalmente os controles: · selecione a caixa ID Caixa e mova-a em qualquer direção; · mova a caixa Nome Caixa para deixar uma linha entre ela e ID Caixa · mova a caixa Peso para deixar uma linha entre ela e Nome Caixa · alinhe os controles Quantidade disponível e Interrompido para que haja uma linha entre eles - - alinhe horizontalmente os controles: · clique no primeiro rótulo (não na caixa de texto), aperte Shift e clique nos outros rótulos abaixo; clique no menu Formatar, Alinhar, Esquerda · selecione as caixas de texto ID Caixa, Nome da Caixa e Peso; alinhe pela esquerda, como o anterior · faça o mesmo depois para as caixas Quantidade disponível e Interrompido alterne para o modo Formulário, veja como ficou; salve o formulário. 15. Outros ajustes nos controles e no formulário - fundo invisível para caixa de texto (para destacar dados que não podem ser mexidos): volte para modo Estrutura e selecione as caixas ID Caixa, Nome da caixa e Peso (aperte shift e clique): clique no botão Cor de Fundo da barra de ferramentas, clique na cor cinza claro para Cor de Fundo; para tornar a borda invisível: clique no botão Cor da linha/borda na barra de ferramentas, depois clique em Transparente; veja no modo Formulário; volte depois para Estrutura - alinhe dados numéricos: selecione a caixa Peso: · na folha de Propriedades, aba Formato, na propriedade Alinhamento do texto, selecione Esquerdo; salve o formulário · feche a folha de propriedades, alterne para o modo Formulário, veja como ficou - desenhe uma linha separando os campos: · antes abra o formulário Bombons (no modo Formulário e Estrutura), para ver o modelo da linha divisória; feche-o depois e volte para o formulário Inventário · alterne para o modo Estrutura e abra a Caixa de Ferramentas: selecione a ferramenta Linha na caixa de ferramentas; abaixo do campo Peso, arraste para criar uma linha por toda a largura do formulário · defina a largura da linha em 2pt e Cor da Borda em cinza escuro (use a janela de Propriedades como no item 13 ou use os botões da barra de ferramentas) - salve o formulário 25 16. Questões de revisão e help: qual a seqüência para você inserir um controle no formulário? como movê-lo? quais as propriedades de um formulário? quais as seções de um formulário? como alinhar vários controles? quais as propriedades da seção cabeçalho de um formulário? como alterá-las? leia o help para controles (adicionando, personalizando, alinhando, propriedades) Lição 10 – FORMULÁRIOS: INSERINDO FIGURAS E OUTROS OBJETOS 1. Conceitos: - objetos OLE: figuras, sons e gráficos; o outro aplicativo deve suportar OLE, - o objeto fica em uma moldura: local no registro onde ficará armazenado/apontado, - o objeto pode ser vinculado (seria como uma sombra ou atalho) ou não-vinculado - incorporado, importado - (copiado para dentro do BD). 2. Adicionando um logotipo: colocamos em geral no cabeçalho ou rodapé do formulário: o logotipo da Sweet Lil’s está num arquivo LOGO.BMP. - abra o formulário Apresentando os bombons no Modo Estrutura - redimensione o tamanho da janela, se necessário para vê-la melhor, - exiba a Caixa de Ferramentas se não estiver visível; clique na ferramenta Moldura de Objeto não acoplado (veja que não é a Moldura de Objeto Vinculado ou Acoplado), - clique no cabeçalho do formulário para colocar a moldura: desenhe um quadrado no lado direito do título; na janela Inserir Objeto: clique em Imagem ou figura do Paintbrush e Criar do arquivo (se fosse desenhar do começo, clicaria em Criar Novo), - clique em “Procurar...”, ache o arquivo Logo.bmp no seu diretório, clique ok: o arquivo é incorporado (acoplado), - clique no menu Formatar, Dimensionar, Para Caber (o objeto se ajusta à moldura), - clique no modo Formulário para ver o logotipo; navegue por outros registros (como o objeto está incorporado ao cabeçalho do formulário, deve aparecer em todos os registros); alterne para o modo Estrutura, - para ver e editar a figura no Paintbrush: clique duas vezes em cima dela (se houver Paintbrush instalado na sua máquina, ele será aberto, permitindo modificar a figura); altere-a, se desejar; feche o Paintbrush depois (menu Arquivo, Sair &...): se for salva a figura alterada, vai ser salva no Access, no seu BD e não no arquivo Logo.Bmp. 3. Adicionando a figura num registro: a tabela Bombons já tem um campo que contém a figura do bombom; vamos colocá-lo na seção Detalhe do formulário do item 2: - clique na ferramenta Moldura de Objeto Acoplado; arraste o ponteiro para criar um quadrado no lado direito da seção Detalhe; uma etiqueta vinculada é criada junto (selecione-a e exclua-a), - defina a propriedade Origem do controle para conter a figura: selecione a moldura, abra sua folha de Propriedades; clique na aba Dados, linha Origem do controle, clique na seta, selecione Figura na lista de campos, - clique modo Formulário para ver as figuras: vá para o primeiro registro, navegue depois por outros (apenas os primeiros registros têm figuras; nos demais, não colocamos), - para ver e editar a figura no Paintbrush: clique duas vezes em cima dela; (observe que aqui a figura é editada no modo Formulário; no item 2-incorporada, no modo Estrutura); altere-a, se desejar; feche o Paintbrush depois (clicar fora da figura): a figura alterada é salva na tabela Bombons. 26 4. Ajustando o objeto vinculado na sua moldura: - para o objeto Incorporado (item 2): apenas usamos o menu Formatar; isto não funciona para o Vinculado, pois as figuras poderiam ter tamanhos diferentes em cada formulário onde as usássemos: para isto, definimos a propriedade Modo Tamanho da moldura; existem três formas: · Cortar: exibe o que cabe na moldura, corta o resto, · Estender: ajusta o objeto à moldura (pode distorcer sua largura e altura), · Zoom: ajusta o objeto à moldura sem distorcer suas proporções. - vá para o Modo Estrutura, abra a folha de Propriedades, defina Modo Tamanho (aba Formato) em Estender ou Zoom; alterne para o Modo Formulário e observe as figuras, - volte para o modo Estrutura, selecione a moldura e clique no botão Plano da barra de ferramentas, selecione Baixo Relevo; abra a folha de Propriedade, veja Aparência, - alterne para o Modo Formulário, navegue e observe as figuras; para ver melhor: no menu Janela, escolha Dimensionar para caber no Formulário; salve depois e feche-o. 5. Criando sua própria figura: Se você tiver o Paintbrush instalado, abra o formulário Apresentando os Bombons no modo Formulário; navegue até um registro que não tenha figura; clique no campo Figura e no menu Inserir, Objeto, depois Criar Novo, Figura do Paintbrush e ok; desenhe o seu bombom e salve depois. Lição 11 – MOSTRANDO REGISTROS RELACIONADOS EM FORMULÁRIOS 1. Conceitos iniciais: 1.1 Conceitos: - formulários e subformulários: permitem usar mais de uma tabela (relacionadas) na mesma tela: formulário mostra a tabela principal, o subformulário mostra a tabela relacionada - subformulários: são salvos como formulários separados no BD. O subformulário que aparece no formulário Caixas foi gravado como Subformulário Caixas: abra a janela BD e abra o subformulário Caixas; veja que ele funciona sozinho (embora vinculado às tabelas Caixas e Bombons); o subformulário também é um controle (componente) na caixa de ferramentas 1.2 - Consulte antes o help para subformulário: clique no botão Assistente do Office (?) na barra de ferramentas digite Subformulário e clique em Pesquisar clique em “Criar um subformulário” e depois em “Criar um formulário e um subformulário ao mesmo tempo”; maximize e leia todo o texto; feche depois 1.3 Condições para usar o Assistente: - o formulário deve estar baseado numa tabela, - o subformulário deve se basear numa tabela relacionada com a tabela principal; ou o subformulário deve se basear numa tabela ou consulta contendo um campo de mesmo nome e tipo de dados da chave primária da tabela do formulário principal. - No nosso exercício, vamos criar um formulário com dados do Cliente (nome, telefone) e um subformulário com os seus pedidos: o formulário principal se baseia na tabela Clientes (primeira condição), o subformulário se baseia na consulta Pedidos com Subtotais: contém ID Cliente, satisfaz a segunda condição. A amarração entre os dois será feita pela ID Cliente. 2. Criando um formulário/subformulário com o Assistente: - na janela Banco de Dados, clique em formulário, depois Novo, 27 - - na janela Novo Formulário, clique em Assistente de formulário e ok, na janela Assistente de Formulário, selecione a tabela Clientes e, a seguir, os campos Nome, Sobrenome, Estado e Telefone, ainda na mesma janela, selecione a consulta Pedidos com Subtotais e, a seguir, os campos ID Pedido, Data Pedido e Subtotal, clique em Avançar, em “Como você deseja exibir seus dados” deixe selecionado em “Por Clientes”; deixe selecionada também a opção “Formulário com subformulário”, clique em Avançar, para o tipo do subformulário, escolha Folha de Dados; e, a seguir, estilo Padrão, dê o título “Clientes/Pedidos” para o formulário e “subForm Clientes/Pedidos” para o subformulário; deixe selecionado o botão “Abrir o formulário e...”, clique em Concluir: o formulário é aberto no primeiro cliente da tabela Clientes, observe os campos do formulário e do subformulário: compare com os campos que você escolheu; existem rodapés de navegação separados para o formulário e para o sub. 3. Examine como funciona o formulário com o sub: - navegue por alguns registros do formulário e do sub, - clique no modo Estrutura: veja os controles do formulário e um controle grande, que é o subformulário. O controle do subformulário tem duas propriedades que o vinculam ao formulário principal. Vamos examiná-las: - clique no botão Propriedades, depois clique no controle do subformulário, - veja as propriedades: Vincular campos filho e Vincular campos mestre (porque têm que ter o mesmo dado?). - o Assistente criou um controle para cada campo do formulário. O subformulário foi definido no modo Folha de dados; vamos ver: - dê um clique duplo no subformulário: ele abre no modo Estrutura; caso isto não ocorra, você pode ir para a janela Banco de Dados e abrir diretamente o subformulário no modo Estrutura - veja a propriedade Modo Padrão do subformulário: é folha de dados (é apropriada para o subformulário, pois pode mostrar vários pedidos de uma vez); deixe assim. - feche o subformulário e o formulário, - abra depois, na janela Banco de dados, apenas o subformulário: veja que ele funciona sozinho. 4. Crie um botão de comando para abrir um formulário. No nosso caso, o Depto de Expedição quer saber rapidamente a taxa de remessa de um pedido. Vamos abrir o formulário Remessa com um botão e ver o custo do transporte para aquele destino. - abra o formulário Clientes/Pedidos no modo Estrutura; abra a caixa de ferramentas, clique no botão Assistente de Controle, deixe-o pressionado, - clique na ferramenta Botão de Comando; coloque-o depois no cabeçalho do formulário, - na janela do Assistente de Botão de Controle: (clique em Avançar ao final de cada etapa): - na caixa Categorias, selecione Operações de Formulário, - na caixa Ações (ou Ao Pressionar Botão): selecione Abrir Formulário; clique em Avançar, - selecione o formulário Remessa; selecione a opção “Abrir o formulário e encontrar informações especificadas para exibir”, - para mostrar qual campo contém os dados coincidentes, selecione o campo Estado na tabela Clientes e Pedidos, selecione o campo Estado na tabela Remessa, depois dê um clique no botão com duas setas, - selecione a opção Texto para o botão, selecione o texto “Abrir formulário” e digite por cima “Taxa de Remessa”, - dê o nome “TaxaDeRemessa” ao botão; clique em Concluir: o formulário Clientes/Pedidos aparece no modo Estrutura com o botão Taxa de Remessa, - use o botão criado: - alterne para o modo Formulário; clique no botão Taxa de Remessa: observe se o Estado de destino no formulário Clientes combina com o Estado no formulário Remessa, - vá para outro registro do formulário Clientes/Pedidos e clique depois no botão Taxa de Remessa; repita isto algumas vezes, observe a sincronização. - feche os formulários, salvando-os. 28 5. Criando controle calculado (são vinculados a uma expressão, não a um campo de tabela). No nosso caso, vamos mostrar juntos o Nome e Sobrenome. - abra o formulário Clientes/Pedidos no modo Estrutura; exclua os controles Nome e Sobrenome, - inclua uma caixa de texto onde estava a caixa Nome; com o ponto de inserção nessa caixa de texto, digite: =[Nome do Cliente]&” “&[Sobrenome]; aperte Enter. Obs.: se der problema, use o Construtor de Expressão na propriedade Origem do Controle para escrever a expressão. - clique no modo Formulário, veja se aparece na caixa de texto o Nome e Sobrenome juntos, - volte para o Modo Estrutura; no rótulo do nome, escreva: Nome do Cliente; veja depois no modo Formulário, - salve e feche o formulário. 6. Crie um subformulário sem usar o Assistente: - Consulte o help para: Subformulário – Criar um subformulário e adicioná-lo a outro formulário. Apague em seguida o subformulário no formulário ClientesPedidos (no modo estrutura) e siga as instruções do help para recriá-lo. - Consulte o help também para: Botão de comando – criar ou modificar um borão de comando. Lição 12 – FORMULÁRIOS – FACILITANDO A ENTRADA DE DADOS 1. Conceitos: - Para facilitar a entrada de dados para o usuário, podemos fazer uso de outros elementos (listbox, botões de rádio...) e devemos estabelecer valores default e fazer consistências para garantir que os dados entrados estejam corretos, - Caixas de lista, de combinação: · consistem de diversas linhas de dados, · cada linha pode ter uma ou mais colunas: uma coluna contém os dados que desejamos armazenar no campo; outras colunas exibem dados que ajudam o usuário a achar o registro que ele deseja, · em muitos casos, devemos criar uma consulta com os campos que deverão constituir as colunas das caixas de lista/combinação. - As definições de propriedades feitas para a Tabela afetam todos os formulários que usam a tabela; se as propriedades são definidas para o formulário, afetam apenas aquele formulário. - Vamos alterar o formulário Pedidos, tornando-o mais fácil de ser preenchido: os operadores hoje preenchem a ID do cliente. Vamos colocar uma caixa de combinação. 2. Abra o formulário Pedidos: veja como ele se apresenta hoje. No local de ID do cliente, vamos colocar uma caixa colocando Nome e Sobrenome para seleção. Vamos encontrar uma consulta para nos facilitar isto: - feche o formulário e abra a consulta Lista de clientes: execute-a, verifique se contém os dados que precisamos, - abra-a no modo Estrutura: veja as tabelas usadas, veja o relacionamento, - veja a consulta novamente no modo Folha de dados, veja que satisfará nossas necessidades. 3. Alterando o formulário: vamos criar uma caixa de combinação que vai armazenar a ID do Cliente: - abra o formulário Pedidos no modo Estrutura, - exclua a caixa de texto ID do Cliente e sua etiqueta, - clique na barra de ferramentas para tornar visíveis a Caixa de ferramentas e a Lista de campos; mantenha selecionado (pressionado) o botão Assistente de Controle na caixa de ferramentas, - clique no controle Caixa de Combinação; clique no campo ID do Cliente na lista de campos e arraste-o para o local onde você apagou a caixa de texto: a caixa de combinação ficará vinculada com este campo da tabela, 29 - - quando você solta o mouse, o Assistente começa a lhe fazer perguntas: vá respondendo e depois clicando em Próximo ou Avançar: · na primeira caixa: certifique-se de está marcada a opção que vai procurar os valores numa tabela ou consulta, · em Exibir, selecione Consulta, depois a consulta Lista de Clientes, · na lista Campos disponíveis: mova os campos ID Cliente, Sobrenome e Nome para as colunas de sua caixa de combinação, · clique duas vezes no lado direito de cada título de coluna para ajustar a largura da coluna do melhor modo possível, · selecione ID Cliente como a coluna contendo os dados que você deseja armazenar em sua tabela, · certifique-se de que a opção para armazenar o valor no campo ID Cliente está selecionada, · ID Cliente aparece como a opção para a etiqueta de sua caixa de combinação; esta é a etiqueta que você deseja; clique então em Concluir, veja como ficou o formulário; alterne para o Modo Formulário; clique na caixa de combinação, selecione um nome na lista; repita o processo para outros clientes. 4. Altere a ordem de tabulação: - Quando você abriu no modo Formulário, foi selecionado automaticamente o campo Data do Pedido: o Access colocou o campo criado como último na ordem de tabulação (ou ordem de digitação usando a tecla TAB). Vamos colocar nossa Caixa de Combinação como a primeira a ser digitada. - alterne para o modo Estrutura, selecione a Caixa de combinação ID Cliente, - no menu Exibir (ou Editar), clique em Ordem de Tabulação; na caixa Ordem de tabulação: · mantenha a seção Detalhe marcada, · role para ver ID Cliente, último da lista; clique na coluna esquerda (seletor) e depois arraste-o para o alto da lista; clique depois em OK. - alterne para o modo Formulário, aperte Tab várias vezes, testando a ordem de tabulação. 5. Coloque a data de hoje como data default na data do pedido: - alterne para o modo Estrutura, mande exibir a folha de Propriedades (botão na barra de ferramentas), selecione a caixa de texto Data do Pedido, - na aba Dados, propriedade Valor Default (ou valor padrão), digite =Data() - Verifique: alterne para o Modo Formulário, vá para o último registro e depois para o próximo (a data de hoje deve ser mostrada em Data do Pedido). 6. Coloque uma regra de validação para a data de validade do cartão de crédito: - veja este campo primeiro no modo Formulário, para alguns registros já existentes, - alterne para o Modo Estrutura, mostre as Propriedades da caixa de texto Validade, - na aba Dados, propriedade Regra de validação, digite >=Data(), - no Texto de Validação, digite: “Cartão expirado! Escolha o botão OK e depois pressione Esc. Pegue um cartão diferente ou cancele este pedido”. A mensagem pode ter até 255 caracteres. Use Shift+F2 para dar zoom nela se desejar e clique OK para fechar caixa zoom. - alterne para o modo Formulário, vá para o primeiro registro, digite 11/93 ma data de Validade do cartão, aperte TAB; veja a mensagem de erro (pois a data de validade tem de ser maior do que a data de hoje); clique OK. Aperte Esc para corrigir o campo, digite uma data válida, - salve e feche o formulário Pedidos. 7. Defina a propriedade Requerido para o campo CEP para a Tabela Clientes: - abra a tabela Clientes no modo Estrutura, clique no campo CEP; na folha de Propriedades, modifique a propriedade Requerido para Sim; feche e salve a tabela; responda Sim na caixa perguntando se deseja verificar os dados, - teste a propriedade Requerido: · abra o formulário Assinatura, modo Formulário · insira novo registro: Mário Francisco - Rua Boa Vista, 1876 - São Paulo - SP · deixe em branco o CEP e aperte TAB 30 - · selecione as caixas de opção de 6 meses e Renovação · aperte TAB para ir para o próximo registro; veja a caixa de mensagem; clique OK · digite 01114 no CEP e depois TAB até o próximo registro (não há mensagem de erro). feche o formulário. 8. Protegendo os formulários contra edição: alguns formulários podem servir apenas para mostrar dados. Podemos transformá-los em somente leitura: - abra o formulário Apresentando os Bombons no modo Estrutura; torne a folha de Propriedades visível para o Formulário, - na aba Dados, coloque Não nas propriedades “Permitir adições, Permitir exclusões, Permitir edições”, - alterne para o modo Formulário e tente alterar algum registro existente, excluir um registro, incluir um novo. - salve o formulário e feche-o. 9. Consulte o help: - caixa de combinação: sobre a criação... - propriedades dos controles, validação: regras e texto de validação. FORMULÁRIOS - REVISÃO 1. O Depto de Marketing deseja dar uma melhorada no formulário Vendas das Caixas: - abra o formulário no Modo Estrutura, - coloque uma etiqueta no cabeçalho do formulário, com o texto: “4o trimestre”; modifique depois a cor de fundo do controle para ficar igual à cor da seção; redimensione a etiqueta para que fique fácil de ler. - pedem-lhe que coloque também o peso da caixa no formulário, pois seria conveniente ver o peso da caixa à medida que vão colocando novos bombons: · crie espaço para colocar um campo novo abaixo do nome da caixa e acima da linha que separa o formulário principal do subformulário, · crie uma caixa de texto para o Peso da Caixa, dimensione sua largura para caber até três dígitos, · modifique a etiqueta do controle para “Peso da Caixa” (propriedade legenda); dê-lhe a cor azul escuro, · mude a propriedade Nome da etiqueta para “Peso da caixa” em vez do número de campo default, · veja o formulário no modo Formulário; teste-o; feche-o e salve-o com as modificações. 2. O Depto de Pessoal deseja mais tarde colocar a foto de cada empregado no BD da empresa. Por ora, deseja adicionar o logotipo no seu formulário. - abra o formulário Empregados no Modo Estrutura, - incorpore o arquivo LOGO.bmp, do seu diretório, no cabeçalho do formulário; dimensione o logotipo para que ele se ajuste à moldura (como o objeto é não vinculado, pode usar o menu Formatar; senão, deveria usar a propriedade Modo Tamanho); defina a propriedade Nome deste objeto como “Logotipo da companhia”, - feche e salve o formulário modificado; veja o resultado no modo Formulário. 3. O Depto de Expedição deseja ver quanto uma Transportadora cobra para um determinado destino: crie um formulário com um subformulário. - baseie o formulário na tabela Transportadoras; use o Assistente de Formulário Principal/Subformulário; baseie o subformulário na tabela Remessa, - campos do formulário principal: ID Transportadora, Nome e Método de entrega, - campos do subformulário: Estado Destinatário e Taxa de Remessa, 31 dê o nome “TaxasTransportadoras” ao formulário principal e “SubformTaxaRemessa” ao subformulário. 4. O Depto de Marketing gostou do formulário “Apresentando os Bombons” para mostrar os bombons aos vendedores. Mas, como pediu mais informações sobre os bombons, você deve colocar um botão para abrir o formulário “Bombons”. - abra o formulário Apresentando os Bombons no modo estrutura, - deixe selecionado o Assistente de Controle para usá-lo; coloque o botão de comando na seção Detalhe - defina o botão para: · abrir o formulário “Bombons” · como campo coincidente: Nome do Bombom · texto do botão: Detalhes dos Bombons; nome do botão: Detalhes dos Bombons · alterne para o modo formulário e teste; salve e feche - 5. Coloque uma caixa de combinação para selecionar ID Caixa no subformulário Pedidos: - abra o subformulário Pedidos no modo estrutura; exclua a caixa de texto ID Caixa e sua etiqueta da seção detalhe; coloque uma caixa de combinação no local com o Assistente; - a lista deve exibir os valores da consulta Lista das Caixas - exclua a etiqueta da sua caixa de combinação e redimensione-a para que se ajuste ao espaço; redefina a ordem de tabulação: a nova caixa deve ser a primeira; feche e salve o subformulário - abra o formulário Pedidos (que o usa) e teste a alteração efetuada 6. Mude a tabela Pedidos para que os formulários dela derivados obedeçam ao seguinte: - o valor default da Data do Pedido seja a data de hoje, - a data de Validade (do cartão) seja maior do que a data de hoje; coloque um Texto de validação para instruir o digitador se a Validade fugir da regra. 32 Lição 13 – RELATÓRIO DETALHADO RÁPIDO 1. Conceitos: - Relatório detalhado: tem o mesmo formato de uma tabela ou consulta (impresso em diversas colunas), mas pode apresentar ainda: cabeçalho de relatório, cabeçalhos de páginas e rodapés de páginas. - Podemos usar um Assistente para montar o relatório de forma rápida. - Cenário: numa reunião de Depto de Marketing, você precisa distribuir um relatório bem simples, mas que mostre as vendas por Estado. 2. Montando o relatório usando os modelos de AutoRelatório: - Na janela Banco de Dados, clique em Relatório e em Novo; selecione a consulta Vendas por Estado para base do relatório, clique no modelo AutoRelatório Colunar, depois ok; - Observe o modelo criado: cabeçalhos, rodapés, início e final do relatório. Não salve o relatório. - Repita os passos anteriores usando o AutoRelatório Tabular. Observe as diferenças. Não salve. 3. Montando o relatório seguindo os passos do Assistente: - na janela Banco de Dados, clique em Relatório e em Novo; selecione a consulta Vendas por Estado para base do relatório; clique em Assistente de Relatório e ok; - selecione todos os campos para incluir no relatório; - no passo seguinte, não selecione itens de grupo; clique apenas em Avançar - para classificar (ordenar) o relatório: selecione primeiro Estado, depois Nome da Caixa; - selecione modelo Tabela e Paisagem e o estilo Formal depois; - deixe o título sem mudar, clique em Concluir; - veja que o relatório aparece em Visualizar Impressão; navegue pelo relatório (use os botões na parte inferior), examine várias páginas do mesmo; veja a ordenação por Estado e depois por Nome das caixas; use a lupa para visualizar página inteira e detalhes das páginas; - salve o relatório com o nome Vendas por Estado. - para imprimir: procede-se como no Word ou no Excel 4. Examinando a estrutura do relatório - alterne para o modo estrutura; - um relatório é composto pelas seções: · cabeçalho do relatório: inclui o título do relatório, · cabeçalho de página: exibe o título de cada coluna de dados, · área detalhe: exibe os registros que foram selecionados pela Consulta Vendas por Estado (em que o relatório se baseia) · rodapé da página: mostra apenas o número da página e a data de hoje, · rodapé do relatório: em branco, por enquanto. - observe os controles (componentes) que o Assistente colocou automaticamente em cada seção: as funções Agora(), Página(), os cabeçalhos com os mesmos nomes dos campos e os nomes de campos; você pode colocar tudo diretamente (ou modificar) sem o Assistente, se desejar. 5. Alterando a estrutura do relatório criado: - modifique a etiqueta Valor: selecione a etiqueta Valor (no cabeçalho da página), substitua por Valor das Vendas; alinhe-a pela direita com o campo Valor; visualize o relatório para ver se ficou alinhado corretamente; - volte ao modo estrutura para alterar o rodapé do relatório: · vamos colocar uma Caixa de texto com o total das vendas no rodapé do relatório (não é no rodapé da página): aumente a altura do rodapé do relatório, se estiver insuficiente, - na caixa de ferramentas, clique na ferramenta Caixa de texto - clique depois no rodapé do relatório, abaixo do campo Valor, desenhe uma caixa do tamanho do campo Valor e alinhe-a verticalmente com o mesmo campo - digite na sua etiqueta: Total das vendas 33 - - na sua propriedade Origem do controle escreva =Soma([Valor]) ou coloque o nome da consulta antes do campo assim: =Soma([Vendas por Estado]![Valor]) · vamos colocar uma etiqueta com observações sobre o relatório: - na caixa de ferramentas, clique na ferramenta Etiqueta; clique na seção rodapé, do lado esquerdo; digite: Dados para a Reunião Trimestral de Marketing - altere a fonte: com a etiqueta selecionada, clique no botão negrito (cancela o negrito da etiqueta); clique após no botão itálico; visualize novamente o relatório oculte registros duplicatas (o Estado está listado repetido em várias linhas): na seção detalhe, selecione a caixa de texto Estado; na folha de propriedades, mude a propriedade Ocultar Duplicatas (ou repetições) para Sim; visualize o relatório; depois salve e feche o relatório. 6. Repita agora o exercício (itens 3 e 4); use a forma Coluna p/o relatório. 7. Revisão e help: - qual a seqüência para criar um relatório tipo tabular usando um Assistente? - como você pode ocultar registros duplicatas no relatório? - leia o help para: relatórios, criando - leia o help para: relatórios, estrutura - abra um dos relatórios que você criou ou modificou nesta lição no modo estrutura e veja as propriedades dos seguintes objetos: relatório, seções cabeçalho, detalhe, rodapé..., e campos do relatório. Compare com as propriedades que você já conhece dos formulários. Lição 14 – RELATÓRIOS AGRUPADOS 1. Conceitos: - Relatório agrupado: os dados são subtotalizados por grupos (vendedor, região de vendas, departamento...), ao invés de apresentar uma lista única como nos relatórios detalhados - Além das seções normais (Cabeçalho e Rodapé do relatório), temos ainda: cabeçalho do grupo e rodapé do grupo; a seção Detalhe se refere às linhas de detalhe dentro de cada grupo - Podemos também usar um Assistente para montar o relatório de forma rápida 2. Cenário: A Sweet Lil’s deseja fazer uma campanha de vendas nos estados onde está tendo maior sucesso. Você precisa montar um relatório para orientar a campanha, mostrando o total de vendas por Estado e o percentual que representa no total. A consulta Vendas por Estado tem os dados desejados. 3. Monte o relatório: - na janela Banco de Dados, clique em Relatório e em Novo; selecione a consulta Vendas por Estado para base do relatório; clique em Assistente de relatório, depois ok; vá depois respondendo às caixas de diálogo e clicando para a próxima etapa; - selecione todos os campos da consulta para o relatório; - escolha Estado para o campo de agrupamento: o relatório será ordenado e totalizado por Estado; - escolha Nome da Caixa para o campo pelo qual deseja classificar (dentro de cada Estado, os dados serão ordenados pelo Nome da Caixa); - escolha layout Nível, orientação Retrato (clique antes nos outros modelos para ver a diferença); deixe marcada a caixa “Ajustar a largura do campo...”; - escolha estilo Cinza claro (clique antes nos outros modelos para ver a diferença); - mude o título do relatório para Vendas por Estado (Agrupado); - clique em Visualizar Impressão; navegue pelo relatório (use os botões na parte inferior), examine todas as páginas; veja a ordenação por Estado, depois por Nome das caixas; observe que não há totais de grupo nem total geral; use a lupa para visualizar página inteira e detalhes das páginas; - salve o relatório com o nome VendasPorEstadoAgrupado. 34 4. Delete o relatório e remonte-o agora com a seguinte modificação: - após indicar o “Nome da caixa” para ordenar o detalhe do relatório, clique no botão Opções de resumo; na caixa “Opções de resumo”, clique em Soma, clique em “Calcular percentagem do total para somas”; deixe marcado “Mostrar detalhe e resumo”; - visualize novamente a impressão, veja as diferenças com o formato do item 3: colocamos totais ao final de cada grupo e um total geral. 5. Examinando a estrutura do relatório: - alterne para o modo estrutura; feche a caixa de ferramentas e a caixa de propriedades, se for o caso, para ver melhor os controles. - o relatório é composto pelas seções: · cabeçalho do relatório: inclui o título do relatório; · cabeçalho de página: exibe o título de cada coluna de dados; · cabeçalho de grupo (Estado) e rodapé de grupo: no rodapé estão as expressões que calculam os totais do grupo e a percentagem do grupo sobre o total; · área detalhe: exibe os registros de cada Estado, que foram selecionados pela Consulta Vendas por Estado (em que o relatório se baseia): nome da caixa e valor; · rodapé da página: que no nosso caso mostra o número da página e a data de hoje; · rodapé do relatório: no nosso caso, mostra o valor total das vendas. - observe os controles (componentes) que o Assistente colocou automaticamente em cada seção: as funções Agora(), Página(), as expressões, os cabeçalhos com os mesmos nomes dos campos e os nomes de campos. 6. Altere a estrutura do relatório criado: - você quer ver a percentagem de cada Estado ao lado do nome do Estado: arraste a expressão de cálculo da % e coloque-a na seção Cabeçalho Estado, ao lado de Estado; coloque a etiqueta antes, escreva nela “Percentual de Vendas”; alinhe os dois controles para não se sobreporem; visualize o relatório para ver se ficou alinhado corretamente (você pode usar o menu Formatar, Alinhar, se desejar: selecione os controles antes); - volte ao modo estrutura para alterar o rodapé do grupo: você quer ver ao lado do total de vendas de cada estado escrito: Vendas de...(nome do Estado). Use uma expressão para isto, que é mais adequado do que uma etiqueta (rótulo): · elimine a etiqueta “Soma”; após, na caixa de ferramentas, clique na ferramenta Caixa de Texto; clique na seção rodapé Estado, no meio da linha; clique na caixa de texto adicionada, digite a expressão: =“Vendas de “&[Estado] · elimine a etiqueta que veio junto com a caixa de texto que você criou; · alargue a caixa de texto para caber nomes grandes, alinhe-a com a expressão =Soma[Valor]; mantenha a caixa de texto selecionada e clique no botão Negrito na barra de ferramentas. - visualize o relatório; navegue pelo mesmo, verifique se os nomes de estado cabem nas caixas; - salve o relatório. 7. Mude a ordem do relatório: em cada Estado você quer ver primeiro as caixas que vendem mais; estas devem ser objeto de promoção: - alterne para o modo Estrutura, clique no botão Classificar e Reagrupar na barra de ferramentas; - na caixa que surge você pode ver a ordem atual do relatório: Estado/Nome da Caixa: · a coluna Campo/Expressão mostra os campos usados para agrupar e ordenar ou somente para ordenar; · no lado de Estado está o ícone Agrupar: diz que este campo é usado para agrupar e ordenar. O Nome da Caixa não tem o ícone: é usado somente para ordenar; · veja na parte de baixo as propriedades de cada campo. - mude a ordem de classificação: · na coluna Campo/Expressão clique em Nome da Caixa e depois na seta que surge para exibir a lista de nomes de campo; selecione Valor; · clique à direita na Ordem de Classificação, clique na seta, depois Descendente; · feche a caixa Classificar... e depois Visualize novamente o relatório. 35 8. Para imprimir os grupos juntos: - você não quer que um Estado comece em uma página e termine em outra. Para isto, você altera a propriedade Manter Junto. - alterne para o modo Estrutura, clique no botão Classificar e Reagrupar; - clique no campo Estado e, na propriedade Manter Junto, clique na seta e depois Grupo Inteiro; - feche a caixa Classificar... e depois Visualize novamente o relatório; veja várias páginas para ver os Estados agrupados. 9. Personalizando a numeração da página. Você quer escrever o número da página ao lado do total de páginas, por ex.: Página 1 de 10 (pode já estar assim; neste caso, apague a caixa de texto para recriála e exercitar). - alterne para o modo Estrutura, delete a caixa de texto no rodapé da página que contém o número da página; coloque uma caixa de texto no lado direito da página, (elimine o rótulo que vem com esta caixa de texto); - abra a janela de propriedades desta caixa de texto, clique na propriedade Origem do Controle e no botão Construir (...) que surge ao lado direito; - na janela do Construtor de Expressões: · selecione Expressões Comuns na primeira coluna · na coluna do meio, selecione Página N de M: a expressão surge na terceira coluna · clique no botão Colar; a expressão aparece na caixa de texto superior, permitindo editar a expressão; como a expressão já está correta, clique ok · clique na caixa de texto do rodapé da página: a expressão aparece ali - visualize o relatório, observe o rodapé de algumas páginas, depois feche e salve-o 10. Para visualizar rapidamente grupos em listagens, você pode agrupar os itens e imprimir a primeira letra num cabeçalho de grupo. Vamos criar um novo relatório baseado na consulta Lista de Clientes e imprimir desta forma. - na janela Banco de Dados, selecione a consulta Lista de Clientes sem abri-la; clique, na barra de ferramentas, no botão Novo Objeto, AutoRelatório; alterne depois para o modo Estrutura - torne visível a caixa Classificar e Reagrupar (botão na barra de ferramentas) - a primeira célula da coluna Campo/Expressão conterá a instrução para iniciar um novo grupo quando trocar a primeira letra do sobrenome; clique na primeira célula da coluna Campo/Expressão, selecione Sobrenome na lista - clique na segunda célula da coluna Campo/Expressão, selecione Sobrenome também: esta célula conterá instruções para ordenar por sobrenome - defina as propriedades da caixa Classificar e Reagrupar conforme tabela abaixo: Campo/expressão Ordem de classificação Cabeçalho de grupo Rodapé de grupo Reagrupar por Número de caracteres Manter junto sobrenome ascendente sim não primeiro caractere 1 com primeiro detalhe Sobrenome ascendente não não cada valor 1 não Obs: Escolhendo Primeiro caractere na propriedade Reagrupar Por e 1 no Número de caracteres, - aparecerá a primeira letra de cada sobrenome. Escolhendo Com Primeiro Detalhe na propriedade Manter Junto, um grupo não ficará restrito a uma página, podendo continuar na página seguinte. crie agora a expressão para o cabeçalho de grupo: · crie uma caixa de texto para o Cabeçalho de Sobrenome do relatório e exclua a etiqueta vinculada a ela; posicione a caixa de texto no centro do cabeçalho; · digite a expressão =Esquerda([Sobrenome];1) na caixa de texto, depois Enter; esta expressão selecionará uma letra do Sobrenome de cada cliente a partir da esquerda. Obs.: use vírgula ou 36 - ponto e vírgula na expressão: depende do separador de listas que estiver cadastrado no painel de controle do Windows; · defina a Cor de Fundo em cinza-claro e a Cor do Texto em azul-escuro; depois clique no botão para centralizar o texto na barra de ferramentas visualize o relatório, veja várias páginas, observe como está agrupado; salve-o com o nome ListaDeClientesAgrupado. 11. Revisão e help: - qual a seqüência para criar um relatório tipo Agrupado usando um Assistente? - como você pode mudar a ordem de classificação de um relatório? - como fazer para que um grupo saia somente junto (na mesma página)? - como colocar numeração de páginas de forma personalizada? - leia o help para relatórios, agrupando dados, - leia o help para construtor de expressões. - abra um dos relatórios que você criou ou modificou nesta lição no modo estrutura e veja as propriedades dos seguintes objetos: relatório, seções cabeçalho, detalhe, rodapé..., e campos do relatório. Compare com as propriedades que você já conhece dos formulários. Revisão - RELATÓRIOS 1. Pediram-lhe para criar um relatório com os nomes dos contatos e números de telefones dos fornecedores de ingredientes dos bombons da Sweet Lil’s. A consulta Fonte dos Ingredientes contém as informações que você precisa. - tipo do relatório: Tabela, contendo todos os campos da consulta, estilo Formal, - classifique os grupos por Categoria e Tipo; não liste as Categorias em duplicata (use a folha de propriedades para ocultá-las), - dê o nome ao relatório (e salve-o) como Fonte dos Ingredientes; visualize-o e navegue por diversas páginas para ver se ficou bom . 2. A Presidenta da Cia deseja um relatório para reduzir os custos das caixas. Ela precisa de uma relação de bombons em cada caixa, com o custo de cada bombom e o custo total da caixa. A consulta Bombons por Caixa tem os dados que você precisa. - tipo do relatório: Grupos, com todos os campos da consulta, - agrupe por Nome da Caixa, - classifique por Nome do Bombom, selecione estilo Formal, orientação Retrato; calcule totais por caixa; não calcule as percentagens do total (não têm sentido aqui), - dê o nome ao relatório (e salve-o) como Custo das Caixas; visualize-o e navegue por diversas páginas para ver se ficou bom. 3. Melhore o relatório para a Presidenta: - coloque uma caixa de texto perto do custo total de cada caixa de bombom com uma expressão dizendo: “Custo total de ” + o nome da caixa; aumente a caixa para caber a expressão e coloque o texto em negrito, - dentro de cada Caixa de Bombom, mude a ordem para classificar por Custo dos Bombons em ordem descendente, - salve o relatório e visualize-o para ver se ficou de acordo, - coloque para Manter Junto (não pular página) para o mesmo Nome da Caixa, - coloque para imprimir Página N de M (exemplo: Página 1 de 10), - salve o relatório e visualize-o para ver se ficou de acordo. 37 Lição 15 - EXPRESSÕES 1. Conceitos: - Expressões: são fórmulas que calculam um valor. Exemplo: =[Preço da Caixa]*1,1 (calcula um novo preço com 10% de aumento). São escritas ao lado direito de um sinal de igual (atribuição). - Componentes de uma expressão: =Avg([Preço da Caixa])-5 literal 5 identificador[] operadorfunção separador da função() sinal de atribuição 2. Componentes da expressão: - funções: ajudam a efetuar cálculos/operações especializadas, - identificadores: referem-se a um valor do banco de dados: o valor de um campo ou de um controle, ou uma propriedade de um controle, - operadores: indicam uma ação a ser executada sobre alguns componentes da expressão, - literais: valores constantes naquela expressão (números ou letras), - constantes: representam valores que não mudam. 3. Orientações gerais para escrever expressões: 3.1 Identificador: - nomes de campos: colocar entre colchetes: [Data do Pedido] - use um ponto para separar o nome de uma tabela do campo da tabela: [Caixas].[Preço das Caixas] - se precisar obter valores de um objeto de banco de dados diferente, use um ! (ponto de exclamação) para separar o tipo de objeto ou coleção (Formulários), o nome do formulário (Caixas) e o nome do controle do formulário (ID Caixa). Exemplo: [Formulários]![Caixas]![ID Caixa] 3.2 datas: coloque datas entre sinais de número #: Exemplo: #10-Out-94# #10/10/94# 3.3 texto: coloque entre aspas duplas: “SP” “Colatina” 3.4 números: digite só os números e vírgula (sem $ nem ponto, nem espaços) 3.5 construtor de expressões: botão com ... (reticências): facilita escrever as expressões; pode ser acionado a partir da barra de ferramentas, da folha de propriedades ou da grade QBE de consultas. Na consulta, também podemos usar “Shift F2” para abrir uma janela para escrever as expressões. 4. Exemplos comuns: 4.1 Para colocar em controles calculados: =[Quantidade]*[Preço da Caixa] : campo calculado com o custo da caixa =[Preço da Caixa]*0,8 : reduz os valores da caixa em 20% =CCur([Preço da Caixa]*0,8) : reduz os valores em 20%; formata como moeda =[Detalhes do Pedido].[Quantidade]*[Caixas].[Preço da Caixa]: campo Quantidade (da tabela Pedidos) multiplicado pelo campo Preço da Caixa da tabela Caixas =[Nome]&” “&[Sobrenome] : campo calculado com o nome completo do cliente =[Custo do Bombom]*1,5 : campo calculado com o custo do bombom reajustado em 50% =Data() : insere a data de hoje no controle =Página : insere o número da página no relatório =“Página “&Página$” de “&Páginas : escreve Página com o número da página atual seguida pelo número total de páginas =“Vendas de “&[Estado] : o texto Vendas de seguido pelo nome do Estado =[Total do Estado]/[Total Geral] : relação (divisão) entre o total do estado e o geral =Soma([Custo do Bombom]) : soma dos valores do campo Custo do Bombom =[Subformulário Pedidos].Formulário![Subtotal do Pedido] =ParteData(“yyyy”,[Data do Pedido]) : somente a parte Ano da Data 38 Obs.: quando a expressão tiver mais de parâmetro ou argumento, use vírgula ou ponto e vírgula na expressão: depende do separador de listas que estiver cadastrado no painel de controle do Windows. 4.2 Expressões de validação: >=Data() : ser uma data igual a hoje ou no futuro Entre 10 E 100 : ser um valor entre 10 e 100, inclusive “EUA” ou “Canadá” : país igual a EUA ou Canadá Como “[A-Z]##” : o dado tem de ter uma letra seguida por dois números: B23 4.3 Para colocar em consultas e filtros (como critérios de seleção): Campo ID do Cliente Expressão-critério 89 >=60 Cidade do Destinatário “São Paulo” ou “Nova Iorque” Estado do Destinatário Não “Ontário” Sobrenome do Como “Mc*” Destinatário Sobrenome do Como “J*son” Destinatário ID da Transportadora Null Data do Pedido Entre 1-Dez-94 E 15-Dez-94 Resultado Encontra cliente cuja ID é 89 Encontra clientes com Ids > ou = 60 Encontra somente estas cidades Qualquer estado, exceto Ontário Nomes que começam com “Mc” Começam com “J” e terminam com “son” Que não tem valor nenhum na ID da Transportadora Pedidos feitos nos primeiros 15 dias de dezembro/94 5. Consulte o help para os casos abaixo ou os objetos do banco de dados Sweet.mdb e responda: 5.1 leia o help para “expresões, exemplos de:” - ler exemplos de expressões usadas em consultas, - em formulários e relatórios, - em regras de validação de campos (de tabelas e formulários), - em valores padrões para campos (de tabelas e formulários). 5.2 funções: - cite três agrupamentos de funções encontrados no help e para que servem - apanhe três funções em cada um destes grupamentos e monte um exemplo em que você usa cada uma delas em uma expressão 5.3 construtor de expressões: abra sua janela e responda: - qual a função de cada uma das colunas da janela do construtor de expressões? - quais os elementos da primeira coluna do construtor que se referem aos objetos do banco de dados em uso? - quais os elementos da primeira coluna do construtor que se referem aos objetos genéricos do Access? - uma expressão depois de colada no construtor pode ser alterada? 5.4 operadores: identifique os operadores no help - cite os diferentes tipos de operadores encontrados - para cada tipo: cite três operadores - montar depois algumas expressões usando estes operadores 5.5 constantes: identifique as constantes no help e monte ao menos uma expressão usando alguma destas constantes 5.6 dos exemplos de expressões citados no item 4, escolha cinco delas e cite em qual objeto do banco de dados Sweet.mdb (o seu banco de dados) estão sendo usadas e qual a sua função ali.