Category Archives: Sem categoria

Pesquisa Avançada – Várias palavras

Neste exemplo vou mostrar como fazer uma pesquisa, por várias palavras, em determinado campo de um formulário.
O código utilizado neste exemplo é bastante útil para efectuar pesquisas mais avançadas.

1º Criar a tabela
– Criar a tabela “tbldados” com os seguintes campos: Id (numeração automática) / Dados (texto)
2º Criar o formulário “Form1”
– Criar o formulário através do assistente e escolher a tbldados como origem de dados, escolher “Tabela” para o esquema do formulário.
– Depois, ir à estrutura do formulário e criar um campo de texto independente, no rodapé do formulário, com o nome txtpesquisa.
– Criar um botão e na propriedade colocar o seguinte código:

‘**************************************************************
‘Elaborado por: José Martins
‘Site: www.accessexemplos.com
‘Data: 22-09-2011
‘NOTA: Não remover este cabeçalho. Respeite o autor do código.
‘***************************************************************
On Error GoTo Err_Comando8_Click
Dim palavras() As String
Dim x As Integer
Dim strSQL As String
Dim strWhere As String

palavras = Split(Me.txtpesquisa, ” “)

For x = 0 To UBound(palavras)

strWhere = strWhere & “dados Like ‘*” & palavras(x) & “*’ or ”
Next x
strWhere = Left$(strWhere, Len(strWhere) – 3)

strSQL = “SELECT * FROM tbldados where ” & strWhere & ” ORDER BY [dados] ”
Me.RecordSource = strSQL

Exit_Comando8_Click:
Exit Sub

Err_Comando8_Click:
MsgBox Err.Description
Resume Exit_Comando8_Click

O que o código faz, básicamente, é criar um array composto pelas palavras em txtpesquisa que são detectadas através dos espaços. Depois é criado um ciclo para pesquisar por todas as palavras digitadas em txtpesquisa.

3º Testar
– Introduzir dados e depois escrever a palavra ou palavras que vamos procurar na caixa de texto (txtpesquisa), clicar no botão e verficar os resultados.

Abaixo segue o link para fazer o dowenlod do exemplo: PESQUISAR VÁRIAS PALAVRAS

Google Plus

Hoje adicionei o botão +1 do Google Plus. Esta é mais uma forma de divulgar os posts. Caso ainda não tenha convite para o Google Plus deixe um comentário com o seu email que envio o convite.

Despesas

Esta é uma base de dados muito simples que serve para controlar as depesas do dia a dia.

Menu Principal
Na imagem 1 podemos ver o menu princípal bastante simples e funcional. No topo podemos ver o ano em que estamos a trabalhar.
Imagem 1

Ano de trabalho
Para alterar o ano de trabalho clicamos no botão escolher ano e abrimos o formulário (imagem 2) e digitamos o ano que queremos.
imagem 2

Despesas
No botão despesas abrimos o formulário (imagem 3) para introdução de dados. Ao lado da categoria temos um botão ‘+’ para adicionar categorias e ao lado da subcategoria temos um botão ‘+’ para adicionar as subcategorias (ao clicar no botão subcategorias caso ainda não tenha escolhido a cetegoria, dá erro e pede para selecionar a categoria. Caso tenha a categoria selecionada ele abre o formulário categorias, na categoria selecionada).
No campo fornecedor podemos escolher um da lista e caso não exista ele pergunta se deseja adicionar.
imagem 3

Categorias
Este formulário (imagem 4) serve para gerir (inserir / alterar / eliminar / pesquisar) as categorias e respectivas subcategorias.
imagem 4

Fornecedores
Neste formulário serve para gerir (inserir / alterar / eliminar / pesquisar) os nomes dos fornecedores.
fornecedores

Relatórios
Ao clicar neste botão abre o menu (imagem 5) dos relatórios onde podemos escolher 4 tipos de relatórios:
imagem 5

– despesas do ano actual (imagem 6): mostra um relatório com a categoria, subcategoria e valor total por mês, do ano com que estamos a trabalhar. Mostra também o total de despesas por mês e total por subcategoria.
Neste relatório incluí um gráfico por subcategoria que mostra a evolução mensal de cada subcategoria. Este gráfico não é da minha autoria, no módulo respectivo tem os dados do autor, nomeadamente:

‘Author : Philippe Bonnardel (based on an idea of Edward Tufte)

imagem 6

– despesas por ano (imagem 7): mostra um formulário com as depesas por categoria num determinado ano. Podemos escolher o ano das despesas, desde que exista registada uma despesa nesse ano e visualizar o respectivo gráfico. Ao fazer duplo clique na categoria abre o relatório anual das subcategorias que tem o mesmo formato. Ao fazer duplo clique na subcategoria abre o detalhe (imagem 8 ) das despesas efectuadas nessa subcategoria.

imagem 7

Detalhe
imagem 8

– despesas por mês: igual às despesas por ano mas aqui podemos escolher o ano e o mês que desejamos.

– despesas por fornecedor: mostra um formulário com as despesas por fornecedor em determinado ano, e o respectivo gráfico. Neste relatório apenas podemos escolher o ano que desejamos visualizar.

Comparação Anual
Mostra a evolução das despesas dos últimos 10 anos. Mostra os valores por ano e mostra um gráfico.
comparacao anual

Aguardo comentários desta base de dados, entretanto vou acrescentar funcionalidades ao exemplo, como a possibilidade de imprimir os relatórios.

Download do exemplo: DESPESAS

Sistema de vendas (actualização)

Neste actualização do sistema de vendas as alterações foram as seguintes:
Colocar a imagem da empresa no relatório, que não estava aparecer.
Reformulação do aspecto da impressão da venda e colocação do campo “produto” que não estava na impressão.
Colocação da tabela de IVa e totais.
Criação do formulário de listagem de vendas diárias, onde podemos ver todas as vendas efectuadas no dia e uma listagem por tipo de pagamento.
Alteração do código para introduzir a imagem do logotipo da empresa. Como a imagem esta ligada ao campo ‘localfoto’ que é o caminho no disco onde está a imagem, caso a imagem não se encontre no local dava erro e não abria o formulário “dados da empresa”. Assim sendo coloquei uma rotina que verifica se dá erro e caso isso aconteça esconde a imagem e sai da função para não dar erro. Basicamente volta ao estado inicial como se ainda não tivesse imagem.
Alterado no formulário e no relatório de impressão da venda.
Fornecedores – Foi criado o formulário de fornecedores. Sempre que inserir uma nova compra e o fornecedor não existir, pergunta se deseja adicionar. Em caso afirmativo abre o formulário “Fornecedores” para introduzir os dados.
Compras – Se o artigos não existir, pergunta se quer inserir.

Download: Sistema de Vendas

Agradeço que testem e comentem, para melhorar o sistema.

Actualização do código para inserir uma foto

No exemplo do abrigo animais e no exemplo sistema de vendas existe um formulário onde podemos colocar uma foto. Após utilização desse código verifiquei que como a imagem esta ligada ao campo ‘localfoto’ que é o caminho no disco onde está a imagem, caso a imagem não se encontre no local dava erro e não abria o formulário. Assim sendo coloquei uma rotina que verifica se dá erro e caso isso aconteça esconde a imagem e sai da função para não dar erro. Basicamente volta ao estado inicial como se ainda não tivesse imagem.

Na próxima mensagem vou colocar a próxima actualização do sistema de vendas onde poderemos ver o código em funcionamento. Entretanto podemos fazer um teste que é colocar o sistema de vendas numa pasta diferente e verificar o que acontece quando abrimos o formulário dos dados da empresa.

O código actualizado é o seguinte:

‘www.accessexemplos.com
‘José Martins
‘2011-02-28

On Error GoTo Err_mostraimagem

If IsNull(Me.Localfoto) = False Then
Me.FOTO.Picture = Me.Localfoto
FOTO.Visible = True
SEMFOTO.Visible = False
Else
Me.FOTO.Picture = “”
SEMFOTO.Visible = True
FOTO.Visible = False
End If

Exit_mostraimagem:
Exit Sub

Err_mostraimagem:
Select Case Err.Number
Case 2220 ‘ Não encontra a imagem
FOTO.Visible = False
SEMFOTO.Visible = True
Resume Exit_mostraimagem:
Case Else ‘ Outro Erro.
MsgBox Err.Number & ” ” & Err.Description
Resume Exit_mostraimagem:
End Select

Escrever tudo em maiúsculas ou minúsculas

Para que um utilizador quando estiver a introduzir dados escreva sempre em maiúsculas basta colocar o seguinte código nas propriedades do campo, no evento ‘ao premir a tecla’ (OnKeyPress ):

KeyAscii = Asc(UCase(Chr(KeyAscii)))

onde keyascii vai receber o novo código ASCII

chr = exibe o carácter do código ASCII

Função ‘Asc’: Devolve um número inteiro que representa o código (ASCII) de carácter correspondente à primeira letra numa cadeia.

Função Ucase: converte uma cadeia de caracteres para maiúsculas.

Função Chr: mostra o carácter do código ASCII

Para converter para minúscula basta alterar Ucase por Lcase:

KeyAscii = Asc(LCase(Chr(KeyAscii)))

Mensagens no blogue

tenho notado que alguns leitores enviam a mesma mensagem várias vezes, pois pensam que a primeira não foi submetida com sucesso.
Se é a primeira vez que está a comentar, essa mensagem tem que ser aprovada, o que também o aprova como apto para comentar.
Trata-se de uma protecção contra o SPAM, para não aparecerem mensagens que não tenham a ver com o blogue.
Assim sendo após o envio da primeira mensagem, só tem que aguardar que seja aprovada e partir daí as próxima mensagens já aparecem automaticamente.

Ainda hoje apaguei 252 mensagens de spam…

Downloads – Local de armazenamento

Conforme tinha dito na mensagem anterior, alterei o local onde se encontram os ficheiros para download.
A partir de agora estão alojados no serviço da BOX.NET, onde pelo menos já não se tem que esperar pelo download nem tem publicidade.

Ainda faltam actualizar alguns links, que durante a próxima semana estarão concluídos. Coloquei também um link no menu do blogue “DOWNLOADS” que faz a ligação para a pasta no BOX.NET onde estão todos os ficheiros disponíveis para download.

Qualquer dúvida ou ficheiro que se encontre trocado, agradeço que me informem.

Barra de menus personalizada

Hoje vou demonstrar como se cria uma barra de menus, passo a passo, para dar um aspecto mais profissional e apenas dar acesso às opções que realmente interessam para o utilizador final de um projecto em Access.
No final iremos ter uma barra de menus com um aspecto igual à imagem abaixo.

Barra de menus

1- Ir ao menu ‘Ferramentas’ e escolher ‘personalizar’. Aparece o seguinte menu:

personalizar

2- Escolher o separador ‘Barras de Ferramentas’ e escolher ‘nova’ e digitar o nome que queremos dar à barra de ferramentas, eu escolhi “menu”. Clicar em OK e aparece a barra de ferramentas sobre a qual vamos trabalhar, que para já ainda não tem opções.

3- Com a barra de ferramentas seleccionada clicar em ‘propriedades’ e aparece o seguinte menu:

propriedades

4- Alterar o ‘Tipo’ para ‘Barra de Ferramentas’ e depois clicar em fechar.

5- Clicar no separador ‘comandos’ e na listagem do lado esquerdo que diz ‘categorias’ escolher ‘novo menu’ que deve estar na última posição. Depois Clicar na caixa do lado direito ‘comandos’ e arrastar ‘novo menu’ para cima da nossa barra de menus como exemplifica a imagem abaixo.

menu

Arrastar ‘novo menu’ para cima da nossa barra de menus, as vezes necessárias mediante o número de menus que precisarmos, neste exemplo vou arrastar 3 vezes, para fazer dois menus e um submenu. Para fazer um submenu basta arrastar ‘novo menu’ para dentro de um menu. Nota: O número de menus pode ser alterado posteriormente, pode-se acrescentar ou diminuir mediante o que precisar.

6- Clicar com o botão do lado direito do rato em cima de ‘novo menu’ da nossa barra de ferramentas e alterar o nome conforme pretendido. No exemplo eu escolhi ‘Clientes’ para o 1º e ‘Fornecedores’ para o 2º.

7- Agora vamos colocar nos menus os formulários que pretendemos abrir. Clicar no separador ‘comandos’ e escolher a categoria ‘Todos os formulários’ e no lado direito irá aparecer todos os formulário existentes no projecto actual. Clicar no formulário que queremos e arrastar para a nossa barra de ferramentas. No exemplo eu escolhi vários formulários e relatórios e também a opção SAIR (para fechar o Access). Nesta etapa podemos escolher o que queremos que a nossa barra de ferramentas abra para isso basta escolher nas categorias o que pretendemos (tabelas, formulários, relatórios, consultas, acções dos menus do Access que aparece como barra de menus por defeito, etc.)

8- Depois de escolhermos tudo aquilo que pretendemos ter na nossa barra de menus podemos clicar em cada um deles com o botão direito do rato ver as propriedades que podemos alterar. Veja a imagem abaixo.

alterar opcoes

‘repor’ – Serve para por um item como estava originalmente antes de alterar o nome a imagem, etc.
‘eliminar’ – apagar um item do menu
‘nome’ – para alterar o nome do item do menu. Aqui também podemos definir o atalho para esse item utilizando o símbolo & antes da letra que queremos usar como atalho. Por exemplo a opção Sair já vem por defeito assim Sai&r, no menu aparece a letra ‘r’ sublinhada o que nos indica que ao utilizar a tecla ALT + r é executado o item Sair do menu. No exemplo que escolhi &Clientes para a abrir Cliente com o atalho ALT + C.

‘copiar/colar/repor/editar/alterar imagem do botão’ – estes comando servem exactamente para trabalhar a imagem que queremos ver ao lado de cada item. Podemos copiar e colar a imagem para usar num outro item, repor a imagem original, editar a imagem e fazer com o editor um ícone (pixel a pixel) ou escolher uma imagem disponível no menu alterar.

Depois podemos escolher também o aspecto do item, ou seja se queremos só texto ou texto e imagem.

‘iniciar um grupo’ – serve para separar itens através de uma barra horizontal, ou seja criar grupos de itens.

‘atribuir hiperligação’ – para atribuir uma ligação quer para um URL ou para algum objecto na base de dados.

‘propriedades’ – mostra todas as propriedades do item.

9- Agora que já temos a barra de menus pronta temos que a pôr no lugar devido. Para isso clicamos no botão fechar e arrastamos o nosso menu para o canto superior do ecrã até que ele se cole ao local onde está a barra por defeito do Access.

10- Para a barra iniciar ao abrir a base de dados temos que dar a instrução para abrir quando iniciar o Access. Vamos a ‘Ferramentas’ e ‘Arranque’ e em ‘barra de menus’ escolhemos o nome do nosso menu, neste exemplo ‘menu’.

11- Para alterar as imagens de cada um dos itens do menu podemos utilizar outra forma que consiste em inserir uma imagem num formulário e copiar a mesma para o item. Ou seja:

– Criar um formulário na forma de estrutura

– ir ao menu inserir e escolher a opção imagem

– escolher uma imagem qualquer e clicar em inserir

– seleccionar a imagem e com o botão direito do rato escolher copiar

– ir no menu ferramentas e escolher a opção personalizar

– clicar com o botão do lado direito do rato no item que desejamos alterar a imagem e escolher colar imagem do botão.

– Clicar em fechar e fechar o Access

– Iniciar a base de dados para ver o resultado final

NOTA IMPORTANTE: Ao alterar a barra de menus, os menu do Access desaparecem na base de dados em que é feito. Para fazer alterações na mesma é necessário arrancar a base de dados pressionado a tecla SHIFT.

O meu menu ficou assim:

barra final

Download: Barra de Menus

Impedir um relatório de abrir se não houver dados para mostrar

Podemos impedir que um relatório abra se não houver dados para mostrar, e para isso podemos utilizar duas formas dependendo da versão do Access:

1- Todas as versões do ACCESS
Colocar o código abaixo nas propriedades do relatório, no evento ‘Ao ativar’

Utilize o evento Ao ativar (Activate) do Relatório:

Private Sub Report_Activate()

If DCount(“*”, Me.RecordSource) = 0 Then

MsgBox “Não existem registos para mostrar”, vbDefaultButton1, “Erro!”

DoCmd.Close acReport, “nome do relatório”

End If

End Sub

2- A partir da versão 7 (Access 95) foi incluido o evento ‘se nenhum dado’, então podemos urilizar o seguinte código:

Private Sub Report_NoData(Cancel As Integer)

MsgBox “Não existem dados no relatório.”, vbInformation, “Erro!!!”

Cancel = True

End Sub

Para ver em funcionamento faça o download do exemplo: Impedir relatório de abrir