Arquivo da categoria ‘Formulários’
Sábado, Maio 2nd, 2009 |
Por vezes torna-se necessário evitar que um formulário abra se não houver registos para mostrar, por exemplo quando fazemos uma consulta e não se encontra nenhum registo pretendido, não precisamos de estar a abrir o formulário uma vez que não temos dados para mostrar. Então o que temos que verificar é se existem registos a mostrar e caso não haja nenhum mostramos uma mensagem e impedimos o formulário de abrir. Como?
É fácil basta colocarmos o código abaixo nas propriedades do formulário no evento ‘ao abrir’:
If Form.RecordsetClone.RecordCount = 0 Then
MsgBox “Não encontrei registos.”, vbExclamation, “Erro!!!”
DoCmd.Close acForm, “localizar dados”
Exit Sub
End If
Para ver um exemplo faça o download: Impedir Formulário de Abrir
Escrito em Exemplos, Formulários, Módulos | Sem Comentários »
Quinta-feira, Dezembro 11th, 2008 |
1- Criar um formulário na vista estrutura e no evento ‘Ao carregar’ nas propriedades do formulário introduzir o seguinte: me.keypreview=true
Ou seja isto vai fazer com que os eventos de teclado sejam recebidos primeiro no formulário.
2- Nas propriedades do formulário, no evento ‘com a tecla em baixo’ colocar o seguinte código:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyF2
DoCmd.OpenForm “formulario1″
Case vbKeyF3
DoCmd.OpenForm “formulario2″
Case vbKeyF4
DoCmd.OpenForm “formulario3″
Case vbKeyF5
Dim Calculadora As Double
Calculadora = Shell(”calc.exe”, vbNormalFocus)
Case vbKeyF6
DoCmd.Close
Case Else
End Select
End Sub
O que este código faz é o seguinte:
- Ao pressionar a tecla F2 abre o formulário1
- Ao pressionar a tecla F3 abre o formulário2
- Ao pressionar a tecla F4 abre o formulário3
- Ao pressionar a tecla F5 abre a calculadora do Windows
- Ao pressionar a tecla F6 fecha o formulário
Além das tecla de funções F1, F2…etc, também podemos utilizar qualquer outra tecla para executar funções, mas tendo em atenção que se estivermos num formulário para introduzir dados não convêm utilizar teclas que são usadas para escrever os dados nos campos.
Outra coisa é o facto de só funciona no formulário onde colocarem os códigos acima mencionados.
Download: Teclas

Escrito em Exemplos, Formulários, Módulos | Sem Comentários »
Sábado, Setembro 20th, 2008 |
Este é um tipo de menu que nos permite economizar tempo, linhas de código e uma melhor arrumação em termos de formulários abertos, uma vez que com este menu apenas precisamos de um formulário aberto. Além de diminuir o número de formulários abertos também diminui o número de botões num menu para abrir cada formulario.
Este tipo de menu, certamente que já existe há algum tempo e já é utilizado por muitos utilizadores do Access.
Então em que consiste este menu?
Vamos criar o menu utilizando uma caixa de combinação que contenha todos os formulários que pretendemos abrir através dele. Ao selecionar uma das opções da caixa de combinação o respectivo formulário é exibido dentro de subformulário. Então vamos começar a fazer o menu passo a passo.
1- Vamos criar uma tabela onde vamos guardar o nome que queremos dar a cada um dos formulários e o nome do formulario que vamos abrir. No exemplo criei a tabela ‘tblmenu’ com os seguintes campos:
Campo Tipo
Nomedomenu texto -> Nome que vai ser visto no menu (caixa de combinação)
formulario texto -> Nome do formulário que vai abrir
Depois introduzimos os dados que no exemplo são os seguintes:
NomedoMenu Formulario
Contas formulario1
Depósitos formulario2
Movimentos formulario3
Conta-Caixa formulario4
Conta-Conta formulario5
Extracto formulario6
2- Depois vamos criar uma consulta da tabela anterior:
Escolhemos a tabela tblmenu e depois escolhemos os dois campos em que escolhemos a ordenação ascendente para o nomedomenu para ser mais fácil de encontrar o menu que queremos quando tempos bastantes formulários para abrir. A esta consulta dei o nome de ‘CsMenu’.
3- Vamos criar o formulário ‘Menu’, ou seja escolhemos novo formulário em vista de estrutura. Depois vamos criar uma caixa de combinação e modificar as seguintes propriedades:
- Nº de colunas: 2
- LArgura das colunas: 1cm;0cm;
- origem da linha: csmenu ( que é o nome da consulta criada no ponto anterior )
4- No mesmo formulário vamos criar um subformulário desvinculado do formulário principal(No exemplo dei o nome de menuquadro). É neste formulário que vai ser aberto cada um dos formulários que escolher no menu (caixa de combinação).
5- Agora vamos criar o módulo que nos vai permitir abrir o menu que é selecionado na caixa de combinação no subformulário.
Criamos um módulo (ao qual eu chamei de ‘abrirmenu’) e colamos o seguinte código:
Public Function AtivarMenu(Combmenu As ComboBox, subabrir As SubForm)
Dim abrirform As String
abrirform = Combmenu.Column(1)
subabrir.SourceObject = abrirform
subabrir.LinkChildFields = “”
subabrir.LinkMasterFields = “”
End Function
Depois vamos às propriedades da caixa de combinação no formulário Menu e no evento Depois de Actualizar colocamos a função criada: =ativarmenu([Menu];[menuquadro]) em que ‘Menu’ é o nome da caixa de combinação e ‘menuquadro’ o nome do subformulário.
E finalmente o menu está pronto a utilizar. É só testar e usar. Espero que tenham gostado desta dica.
Download: Menu
Abaixo uma imagem do menu.

Menu Personalizado
Escrito em Exemplos, Formulários, Módulos | 6 Comentários »
Quinta-feira, Junho 19th, 2008 |
Esta era uma dúvida do leitor Elton Rueb e que ele mesmo conseguiu resolver antes de eu ajudar. O que o leitor pretendia era medir o tempo que um utilizador demora a inserir um registo e para isso tem 3 campos: 1 para a hora de inicio altura em que abre o formulário, 1 para a hora de fim que é inserida quando se clica no botão de gravar e 1 campo para calcular a diferença. Este é um exemplo simples mas que pode fazer falta a quem pretenda calcular diferença entre dois tempos. Por isso o Elton Rueb (Rio de Janeiro – RJ – Brasil) disponibilizou o exemplo para que pudesse ajudar mais alguém.
Download: Teste Hora
Escrito em Datas, Exemplos, Exemplos cedidos, Expressões, Formulários, Horas | Sem Comentários »
Quinta-feira, Junho 12th, 2008 |
O leitor Jacinto pôs uma questão aqui sobre como proceder para alterar o formato de uma data de 2008-06-12 para 2 0 0 8 0 6 1 2, a resposta tal como expliquei nos comentários é simples, basta uma caixa de texto com a seguinte expressão:
=formatar([o nome do campo data];”yyyy mm dd”)
e nas propriedades do campo pôr a seguinte expressão na máscara de introdução: 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0
Bastante simples e fácil. Segue o exemplo para download: Formatar data
Escrito em Datas, Exemplos, Expressões, Formulários | Sem Comentários »
Terça-feira, Maio 6th, 2008 |
Este exemplo mostra como fazer um sistema de gestão de prestações de pagamentos.
O que este exemplo mostra e faz é criar automaticamente, com um clique num só botão, as prestações de um contrato de venda mediante os dados inseridos. Ou seja, introduzimos o nome do cliente a data de inicio do contrato e o valor total a pagar. Depois basta clicar no botão “calcular prestações” que ele gera automaticamente o número de prestações indicadas e divide o valor por cada uma delas e calcula a data de cada prestação( uma por cada mês). Este também é um exemplo que demonstra como acrescentar vários registos de uma só vez, porque ao clicar no botão ele acrescenta um registo para cada uma das prestações.
Download: Inserir Vários Registos
Escrito em Datas, Exemplos, Formulários, Módulos, Registos | 13 Comentários »
Domingo, Abril 6th, 2008 |
Para quem quer dar um efeito diferente nos formulários, mais propriamente quando estamos a introduzir dados , podemos alterar a cor do campo onde se encontra o cursor. Ou seja , todos os campos de introdução de dados estão com o fundo a branco excepto o campo onde estamos a escrever que está de outra cor.
Para fazer isto é muito fácil, basta seleccionar os campos e escolher a cor de fundo que queremos que apareça quando está o cursor no campo e de seguida alterar a cor para transparente.
Download: Mudar cor campo de dados
Escrito em Cores, Exemplos, Formulários | 9 Comentários »
Sábado, Março 29th, 2008 |
Este é um exemplo a pedido da leitora Sónia Campos que pretende uma base de dados para registar dados de animais. É uma base de dados simples com apenas um formulário para entrada de dados com fotografia do animal.
Download: Abrigo Animais
Qualquer modificação é só comentar aqui.
Escrito em Formulários, Fotos, Módulos, Registos, tabelas | 10 Comentários »
Terça-feira, Março 18th, 2008 |
A pedido do leitor João Cabrita desenvolvi este exemplo de controle de ponto que se aplica a um quartel de bombeiros, mais especificamente às necessidades do leitor.
É um exemplo básico, mas com alguns pormenores mais avançados em que o que se pretende com ele é fazer o controle das entradas e saídas dos funcionários, verificar se trabalharam um turno de 12 horas e somar as horas trabalhadas a mais e as horas trabalhadas a menos.
Tudo isto para obter um relatório mensal de assiduidade de cada funcionário.
Download: Ponto
Escrito em Consultas, Datas, Exemplos, Expressões, Formulários, Horas, relatórios | 4 Comentários »
Quarta-feira, Fevereiro 20th, 2008 |
Existem várias formas de introduzir um registo, sendo que a mais comum é fazer através de um formulário vinculado a uma tabela. Outra forma de o fazer é através de campos desvinculados, ou seja através de um formulário com campos independentes sem ligação à tabela. Para
introduzir os dados vamos utilizar o ‘recordset’, ou seja através de um código, que no caso deste exemplo é o seguinte:
Dim db As Database
Dim rs As Recordset
If MsgBox(”Deseja gravar?”, vbYesNoCancel, “Opções”) = vbYes Then
‘ Ao carregar no botão é perguntado se deseja gravar o registo ou não, no caso afirmativo continua o código senão termina
Set db = CurrentDb()
Set rs = db.OpenRecordset(”Dados”, dbOpenTable)
‘ Abre a tabela dados para inserir o registo
rs.AddNew
rs(”nome”) = Me!INome
rs(”morada”) = Me!Imorada
rs(”idade”) = Me!Iidade
rs.Update ‘ envia os dados para a tabela
rs.Close ‘ Limpa os dados e fecha o recordset
Set rs = Nothing
Set db = Nothing
Me.INome = Null ‘ limpa os campos no formulário
Me.Imorada = Null
Me.Iidade = Null
MsgBox “Registo gravado”, vbInformation, “Concluído” ‘ Exibe mensagem de confirmação
Me.INome.SetFocus ‘ Move o cursor para o primeiro campo
Else: Exit Sub
End If
Download: Introduzir Independente
Escrito em Exemplos, Formulários, Módulos, Registos, tabelas | Sem Comentários »