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

Anúncios

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

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

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

Antes de baixar, veja este exemplo que é muito mais versátil

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.

Abrir formulário no Access

.

Mostra todas as opções de abertura de um formulário usando código VBA no Access.

Demonstra o uso do método OpenForm do objeto DoCmdcom os argumentos : FormName; View;  FilterName ; WhereCondition; DataMode; WindowMode e OpenArgs. Leia mais …

Calendário posicionado

.
Permite posicionar o calendário em relação ao campo que vai receber a data.

As posições possíveis são: acima; abaixo; à direita; à esquerda e à direita deslocado.

Tanto o calendário quanto as rotinas para posicionamento de um formulário em relação a um controle podem ser facilmente adaptadas para outros usos.

Nos procedimentos do formulário “AbraEsteFormulario” existentes no arquivo para download há explicações de como fazer essas adaptações.

Trata-se de uma adaptação de arquivos encontrados nas seguintes fontes:

Viescas :  http://www.viescas.com/Info/links.htm

Lebans:  http://www.lebans.com/openform.htm

Veja os termos de uso na página Sobre

Access exemplo – Filtros sequenciais para subformulários

Mostra como criar uma sequência de filtros que vão afunilando os resultados de um subformulário

Permite iniciar a filtragem em qualquer campo . As caixas de combinação dos filtros ainda não usados apresentam apenas os itens que atendem aos critérios anteriores.

Veja também :  Filtros sequenciais em formulário

Veja a nova versão mais completa : Versão  2

Mais informações

 

Veja os termos de uso na página Sobre

Access exemplo – Formulário sempre no topo

Neste exemplo, um formulário do Access  é colocado sobre a janela de qualquer programa previamente aberto e permite a interação entre o formulário e a janela sem que o formulário desapareça.

Formulário do Access sobre uma página da web

Mais informações

Baixar o arquivo

Veja os termos de uso na página Sobre