Apostila de Microsoft Access Avançado


Criando nossos próprios menus



Baixar 224.04 Kb.
Página9/9
Encontro04.04.2019
Tamanho224.04 Kb.
1   2   3   4   5   6   7   8   9

Criando nossos próprios menus

Para criar um menu personalizado temos que utilizar pelo menos duas macros, uma para definir o menu e outra para adicionar o menu.



Definição do Menu





  1. Crie uma Macro nova;

  2. Adicione a coluna de nomes à macro;

  3. Na coluna nome digite o nome do menu, se desejar que uma letra fique sublinhada para ser tecla de acesso, antes da letra coloque o símbolo &;

  4. Na coluna ação, coloque o que você deseja que a macro faça.

Veja o exemplo:



Nome

Ação

Descrição

&Abrir

AbrirUmaTabela

Abre a tabela de Clientes

&Fechar

Fechar

Fecha o objeto ativo

-




Adiciona um separador ao menu

&Sair

Sair

Sai do Access

Quando terminar, salve a macro com o nome de MENU XXXX_YYYY, onde XXXX é a barra de menu a que este menu pertence, e YYYY e o nome do menu. Vejamos o exemplo:


Menu Principal_Arquivo

Definição da Barra de Menu





  1. Crie uma nova macro;

  2. Adicione a coluna de nome à macro;

  3. Na coluna Ação, escolha a ação AdicionarMenu

  4. Nos argumentos da macro, coloque o nome do Menu ( que irá aparecer na tela, vale também a regra do &), e o nome da macro que será ativada quando este menu for selecionado.

Salve a macro com o nome da Barra de menu que você deseja criar.



Atribuindo uma Barra de Menu a um formulário

Escolha o formulário que você deseja colocar a barra de menus, na Propriedade Barra de Menu, escolha o nome da macro que representa a sua barra de menus. Mude para o modo formulário e veja como ficou o menu.



Módulos

Para uma maior flexibilidade na manipulação dos seus dados, foi implementada no Access uma linguagem de programação chamada Access Basic, um dialeto do Visual Basic, que permite uma área para criação de rotinas vão complementar o seu banco de dados.



Estrutura do Módulo



Sub - SubFunção, é uma seqüência de comandos que executa alterações em formulários, tabelas ou qualquer outro objeto do MS-Access. Mas não é retornado nenhum valor para quem chamou esta Sub.
Function - Faz exatamente a mesma coisa que a Sub, mas tem obrigatoriamente que retornar um valor para que a chamou.

Declarando Variáveis

Existem dois tipos de declarações de variáveis, uma a nível de Módulo, que é visível em todas as Subs e Functions do Módulo e as que são visíveis apenas em numa função ou numa subfunção.


Declaração Global - É Utilizada no nível de módulo para declarar variáveis globais (variáveis disponíveis em todos os procedimentos em todos os módulos) e alocar espaço de armazenamento.
Declaração Dim - Utilizada no nível de módulo e no nível de procedimento para declarar as variáveis e alocar espaço de armazenamento. Quando utilizada a nível de módulo, as variáveis declaradas são visíveis a todos os procedimentos contidos no modulo. Se declaradas dentro de procedimentos, estas só serão visíveis no procedimento onde foram declaradas.

Tipos de Dados

A seguinte tabela mostra os tipos de dados fundamentais suportados pelo Access Basic, sufixo de declaração de tipo, tamanho dados e valores aceitáveis.




Tipo de Dados

Sufixo

Tamanho dos dados

Valores aceitáveis

Integer

%

2

-32.768 a 32.767.

Long(inteiro longo)

&

4

-2.147.483.648 a 2.147.483.647.

Single(ponto flutuante de precisão simples)

!

4

-3,402823E38 a -1,401298E-45 para valores negativos; 1,401298E-45 a 3,402823E38 para valores positivos; e 0.

Double (ponto flutuante de precisão dupla)

#

8

-1,79769313486232 E308 a -4,94065645841247 E-324 para valores negativos; 4,94065645841247 E-324 a 1,79769313486232 E308 para valores positivos; e 0.

Currency(inteiro dimensionado)

@

8

-922.337.203.685.477,5808 a 922.337.203.685.477,5807.

String

$

1 byte por caractere

0 até aproximadamente 65.535 bytes. (Deve-se deixar uma margem para o armazenamento).

Variant

Nenhum

Conforme apropriado

Qualquer valor numérico até o intervalo de um tipo de dados Double ou qualquer texto de caractere.

Vejamos um exemplo de como o modulo é estruturado:



Descrição dos itens utilizados na página anterior:


Function

Declara uma função, um bloco de comandos que ao seu término retorna um valor, neste exemplo, é retornado uma seqüência de caracteres

Maiúsculas

Nome da função, este nome pode ser definido pelo usuário

(cTexto As String)

cTexto é o nome de uma variável que é passada para esta função;

As String identifica o tipo de dado que esta variável contem.

As String

Informa o tipo de dado que é retornado pela função

Dim

Declara uma ou mais variáveis

String

Vide Tipos de Dados

Ucase$()

Função padrão do Access Basic, torna todos os caracteres passados a ela em caracteres Maiúsculos

Para retornarmos um valor de qualquer função definida pelo usuário, devemos atribuir o valor de retorno a função, como vemos na penúltima linha deste modulo.



Usando dados contidos nos Formulários

A coleção Forms contém todos os objetos Formulários abertos em um banco de dados do Microsoft Access.


Use a coleção Forms no Access Basic ou uma expressão para se referir a um formulário em particular.
Por exemplo, você pode usar a coleção Forms para verificar ou definir o valor de um controle de formulário. O objeto Formulário contém todas as propriedades da folha de propriedades de um formulário. Você pode se referir a um formulário das seguintes maneiras:
Forms![MeuFormulário]

Forms("MeuFormulário")
NomeEmp=Forms![Empregados]![Sobrenome] & "," & Forms![Empregados]![Primeiro nome]
No exemplo acima, a variável NomeEmp recebe o conteúdo do controle Sobrenome mais o conteúdo do controle [Primeiro nome], ambos contidos no formulário Empregados.
Podemos utilizar a coleção forms para testar condições em uma macro, neste caso, quando você pressionar a tecla Enter terminando a condição, a palavra Forms, será substituída pela palavra Formulário, não implicando em nenhum tipo de erro.


Condição

Ação

Descrição

Forms![Produtos]!Descontinuado=SIM

CaixaDeMensagem

Se não tiver mais produtos exibe uma mensagem de erro


Objetos de Banco de Dados

O Access possui vários objetos e coleções de objetos para tratamento de banco de dados, vamos discuti-los um a um.




Objeto

Descrição

DBEngine

O DBEngine representa o sistema de recuperação e armazenamento de dados do Access, ele tem controle sobre todos os outros objetos

WorkSpace

Um objeto Workspace define uma sessão para um usuário. Contém bancos de dados abertos e provém mecanismos para transações simultâneas e para um grupo de trabalho seguro.

Database

Banco de Dados em si, um arquivo MDB, com suas tabelas, consultas e etc...

TableDef

Contem todos os itens de uma tabela, campos e índices.

Field

Contem as definições para um campo

Index

Contem as definições para um índice, campo, único e etc...

QueryDef

Definições de uma consulta, qualquer tipo

RecordSet

Conjunto de registros de uma tabela

Relation

O objeto Relation representa um relacionamento entre duas tabelas

Todos os itens em negrito representam uma coleção de objetos, a diferença é que a coleção é no plural e o objeto tem o nome no singular. Para sabermos o nome dos campos de uma tabela, devemos utilizar a coleção fields.


Processo para trabalhar com o banco de dados atual:
01 Function Exemplo
02 Dim db As Database ‘Define uma variável do tipo Database

03 Dim I As Integer ‘Define uma variável do tipo inteiro


05 Set db = DBEngine(0)(0) ‘ Atribui o Banco de dados atual a db
06 For I = 0 to db.TableDefs.Count -1 ‘ conta até a última tabela

07 Debug.Print db.TableDefs(I).Name ‘Imprime o nome de cada tabela

08 Next
09 db.Close
10 End Function
No exemplo da página anterior, uma variável do tipo Database é declarada (02), na linha 05 é atribuída a ela o banco de dados atual. Nas linhas seguintes é feito um laço contando todas as tabelas que existem no banco de dados atual (06), na linha 07 é utilizado o objeto Debug para imprimir na Janela Imediata, o nome da tabela atual apontada pela coleção TableDefs, TableDefs é um vetor contendo todas as tabelas do banco de dados, a linha 08 fecha o laço e a 09 fecha o banco de dados db.
Experimente criar um módulo novo e digite a função acima, quando terminar, escolha no menu executar a opção Compilar módulos carregados para verificar se não existe nenhum erro de digitação.
Se não houver erro, posicione o cursor na primeira linha de código após a declaração Function e pressione F9 para gerar um ponto de parada. Minimize a janela.
Na janela de Banco de dados selecione o objeto Macro, crie uma nova macro para executar a nossa função. Execute-a.
Quando o Access atingir o ponto de parada, a janela de código será exibida para que possamos executar a função passo-a-passo pressionando a tecla F8. No menu Exibir escolha a opção Janela imediata para podermos ver a saída da nossa função.

Validação de campos com módulos

Para cada campo num formulário, podemos fazer validações, utilizado o evento AntesDeAtualizar, podemos fazer validações para os campos.


Veja o exemplo dado para o evento AntesDeAtualizar para o campo Nome do Contato:
Sub Nome_do_contato_BeforeUpdate (Cancel As Integer)

Const MB_STOP_BUTTON = 16

If IsNull([Nome do Contato]) Or IsEmpty([Nome do Contato]) Then

MsgBox "Este campo não pode ficar vazio", MB_STOP_BUTTON, "Validação de Campo"

Cancel = True

End If

End Sub
No exemplo acima é verificado se o campo [Nome do Contato] é nulo ou está em branco, se ele for um dos dois, a caixa de mensagem será exibida com o símbolo de parada crítica.
Se for atribuído o valor verdadeiro ( true ) para a variável Cancel, o evento AntesDeAtualizar será cancelado, o campo não será atualizado e o foco permanecerá no campo [Nome do Contato].


MS-Access 2.0 Avançado



1   2   3   4   5   6   7   8   9


©aneste.org 2017
enviar mensagem

    Página principal