Validar uma data no formato dd/mm/aa

AccessValidaData

32/12/13 é uma data ?

Para você, não.

Para o Access, sim e corresponde à data 13/12/32.

Se você digitar esse valor em um campo que tenha formato data, vai perceber que ao sair do campo, o valor foi trocado pelo que o Access avalia como data. O mesmo vale para a funções Cdate() e IsDate().

Pelo que pude entender, o Access faz uma primeira tentativa de conversão para o formato data do seu sistema Windows. Se o resultado é uma data inválida, ele verifica se em qualquer dos outros formatos é possível fazer a conversão para uma data válida. Se ele consegue, ele faz a conversão para esse formato e … não te avisa que fez a conversão e nem que a data não seria válida no padrão do seu sistema.

Prato cheio para uma inconsistência no seu banco de dados !

E o que é pior, o Access não fornece uma função ou método interno que permita validar se a data está no seu padrão !!!!!!

O código do exemplo permite validar uma data que esteja no formato dd/mm/aa , que é o usual no Brasil.

BaixarZIP

Mais detalhes no código do formulário.

Access – Caixa de combinação (ComboBox)

CaixaCombinacao

Esta é uma coletânea de exemplos sobre a Caixa de combinação.

Ela é acompanhada por uma Ajuda que dá as explicações básicas sobre a estrutura dos dados nas caixas de combinação e descreve suas principais propriedades.

Lista dos exemplos :

Versão 01 (02/03/2013)

  • Ajuda – Exemplo associado à Ajuda
  • Atualizar os itens da Caixa de combinação em tempo de execução
  • Caixas de combinação em cascata – Usando SQL
  • Caixas de combinação em cascata – Usando uma consulta
  • Filtrar dados em um formulário
  • Filtrar dados em um subformulário
  • Filtrar um campo númérico que tem vírgula
  • Filtrar uma data
  • Formatação – Evitando mostrar itens em branco na Caixa de combinação
  • Formatação – Expandir a lista ao entrar na Caixa de combinação
  • Formatação – Expandir a lista quando se passa o mouse sobre a Caixa de combinação
  • Formatação – Limpar o item selecionado na Caixa de combinação
  • Formatação – Mostrar lista de itens únicos na Caixa de combinação
  • Inserir (Todos) em uma Caixa de combinação
  • Inserir itens em uma Caixa de combinação
  • Inserir os itens de uma Caixa de combinação a partir de uma SQL
  • Preencher de campos do formulário a partir de uma Caixa de combinação
  • Selecionar o registro que coincide com o valor da Caixa de combinação
  • Selecionar registro em formulário – FindRecord

Esta é uma obra em aberto. Se nenhum dos exemplos resolve o seu caso, deixe um comentário descrevendo o seu problema. Se eu souber resolver e, na medida da minha disponibilidade, vou incorporando as soluções nas versões futuras.

BaixarZIPVeja os termos de uso na página Sobre

Armazenando a sintaxe de um campo

SintaxeV2

Este exemplo mostra como usar a instrução Screen para determinar onde um campo está localizado dentro de um formulário, subformulário ou sub-subformulário.

A partir das informações coletadas, é possível construir a sintaxe completa do campo.

Essa sintaxe é armazenada em variáveis e pode ser usada para atribuir o valor de um campo de um segundo formulário (ou uma variável) ao campo que foi selecionado inicialmente,  sem a necessidade de reescrever a sintaxe desse campo.

Versão anterior atualizada em 19/03/2013 – Inclui o uso de um subformulário não acoplado.

BaixarZIP

Referindo-se a propriedades e controles de formulários e subformulários

Referindose

Selecione as opções desejadas em cada um dos quadros e verifique a sintaxe correspondente.

Para usar, importe a tabela e o formulário existentes no arquivo para o seu banco de dados.

BaixarZIPVeja os Termos de Uso na página Sobre

Acompanhamento de casos

Clique para ampliar

Este aplicativo serve para acompanhar os eventos associados a um determinado caso.

A cada caso podem ser associados arquivos como anexos e as pessoas envolvidas no mesmo.

Através da classificação do andamento do evento é possível verificar os casos com pendências.

Acredito que pode ser útil para o acompanhamento de processos em escritórios de advocacia;  como controle de ordens de  serviço em oficinas de assistência técnica ; acompanhamento de pós-venda etc.

O arquivo .mdb é acompanhado de uma ajuda no formato .chm.

Veja os termos de uso na página Sobre

Menu em formulário V.2

Este exemplo é um aperfeiçoamento do exemplo “Menu em formulário” existente no blog.

Com ele é possível  criar um menu suspenso (Drop-Down) em um formulário contendo até dois sub-menus.

Os menus são abertos quando se passa o mouse sobre as opções.

Os sub-menus são formulários e por isso, neles podem ser adicionados quaisquer controles existentes na caixa de ferramentas, tais como caixas de combinação ; grupos de opção; imagens etc , o que dá uma versatilidade de uso não encontrada nos menus padrão do Access.

É possível definir o estilo dos menus, seja através do uso de cores ou ainda de imagens de fundo.

Algumas capturas de tela (Clique para ampliar)

Mais detalhes

Versão de demonstração   (Esta que você está vendo)

Versão para montagem

Arquivo de ajuda   (Arquivo .chm)

Veja os termos de uso na página Sobre

Access – Seleção de horário

Abre uma janela para seleção do horário sob um campo do tipo Data/Hora.

A janela é aberta sempre  sob o campo,  independente de quantos campos desse tipo você usar e do posicionamento do formulário na tela.

Para usá-lo você deve importar o formulário “Horas” e o módulo existente (modPositionWindow) para  o seu banco de dados e copiar o código existente no evento Ao Clicar do exemplo e colar no seu campo tipo Data/Hora.

A hora está no formato : Hora abreviada.

O código está comentado.

Referência :  O módulo foi desenvolvido por Stephen Lebans e pode ser encontrado  no link abaixo :
http://www.lebans.com/openform.htm

 Leia os termos de uso na página Sobre

Access – Corretor de dados

Quando usamos uma caixa de combinação para inserir dados em uma tabela, não é incomum nos depararmos com uma lista de itens como a da figura abaixo.  Ou seja, itens inseridos com digitação incorreta.

Este formulário serve para corrigir esse tipo de problema.

Para usá-lo, você deve importar o formulário para dentro do seu banco de dados, selecionar a tabela e o campo a ser corrigido e então fazer a substituição da palavra certa pela errada.

Funciona para todos os campos do tipo numérico, texto , data, sim/não e hyperlink.

É uma interface amigável para quem tem esse tipo de problema e não está familiarizado com o uso de consultas.

Para quem está acostumado a trabalhar com consultas no Access o programa pode ser comparado a uma consulta atualização onde o campo Substituir correponde ao Critério e o campo Por corresponde a Atualizar para.

O arquivo .mdb é acompanhado por um arquivo de ajuda (.chm).

Se quiser verificar as características do programa antes de baixá-lo, clique aqui (pdf)

 Veja os termos de utilização na página Sobre

Os dados da tabela refletem os dados do seu formulário ?


Quando você altera o conteúdo de um campo no seu formulário, para que essa alteração seja refletida na Tabela associada ao formulário é necessário salvar o registro atual.

Se você não salvar o registro, um recordset criado a partir da Tabela vai mostrar os dados desatualizados em relação ao formulário.

O exemplo demonstra esse efeito e mostra 4 opções para salvamento do registro.

A opção “Propriedade Dirty” foi baseada na página :

Quickly save the current record in Access using code

Veja os termos de uso na página Sobre

Access – Filtros sequenciais – Versão 2

Trata-se de uma função que permite a filtragem sequencial, em qualquer ordem, dos registros de um formulário para campos dos seguintes tipos :

Texto; Data/Hora; Sim/Não; Autonumeração; Byte; Inteiro; Inteiro Longo; Simples; Duplo; Decimal

Você pode criar quantas combinações de filtros quiser. As caixas de combinação dos filtros ainda não usados apresentam apenas os dados compatíveis com a filtragem anterior.

Para usar, você deve importar a função para o seu banco de dados, criar ou adaptar caixas de combinação para uso como filtro segundo determinadas regras e anexar a elas um procedimento de evento “Ao Atualizar” que faz a chamada da função. No exemplo essas etapas são descritas em detalhes (botão Como Usar).

O código está comentado.

Veja os termos de uso na página Sobre

Atualização 0.3 (15/3/2012) 

Nesta versão foi incluída a possibilidade de se ter filtros classificados em ordem decrescente.

Nas versões anteriores independente da classificação inicial do filtro, após a primeira filtragem ou a remoção do filtro, todas as caixas de combinação dos filtros eram classificadas em ordem crescente.

Se usou a versão anterior (V2 0.2) em seus programas, basta substituir o módulo FiltrosSequenciaisV2 pela versão deste exemplo.

Para usar, siga as instruções mostradas ao clicar o botão “Como usar” do exemplo.

.

Orientações

Quando a Origem do registro do seu formulário tem uma associação do tipo 1 para muitos, caso exista um registro do lado 1 sem um dado associado no lado muitos ,  o que vai ocorrer é que o registro com esse dado não vai aparecer no formulário . Para que isso não ocorra, você deve alterar o tipo de associação como mostrado abaixo.

Atenção : Esta instrução de montagem não está incorporada no exemplo !

A origem do registro do seu formulário tem que ser uma instrução SQL (Select ….) . Se você usar o nome da tabela como origem do registro vai dar erro ! 

28/9/2012

.

Pergunta interessante colocada nos comentários :
Como imprimir os resultados da filtragem do formulário em um relatório ?

Resposta : No seu formulário que tem os filtros, coloque um botão para abrir o seu relatório.

Na janela propriedades do relatório, na aba Dados, troque a opção Filtro ativado de Não para Sim.

No evento AoAbrir do relatório, coloque a seguinte instrução:

Me.Filter = varFiAc

Alternativamente você pode deixar a opção Filtro ativado como Não e colocar no procedimento Ao Abrir do relatório a instrução:

Me.FilterOn = True
Me.Filter = varFiAc

Obs: Só para garantir, certifique-se que a origem dos registros do seu relatório é a mesma da origem dos registros do seu formulário !

Histórico das versões 

Por favor, antes de tentar modificar a função ou postar um comentário, clique aqui.

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

Junte-se a 30 outros seguidores