Formulário modo folha de dados "zebrado" e campos totais
Nota importante: para ter acesso aos vídeos e arquivos exemplos deste site, adquira um dos planos apresentados abaixo. Você pode comprar em até 5x no Cartão de Crédito.
Veja como comprar e saiba mais sobre o material oferecido, clicando aqui.
Já demonstrei em outra dica, como "zebrar" um formulário no modo continuo. Agora é a vez do modo folha de dados. Por padrão, ele já se apresenta "zebrado", com faixas branca e cinza bem suave. Esta configuração pode ser modificada; veja como:
Carregue o formulário, a seguir clique no botão Alternar cor do fundo, conforme figura abaixo e escolha a cor ao seu gosto.
Observe neste exemplo como ficou o formulário após a troca de cor:
Veja também a nova aparência do fundo , toda gradeada, assemelhando-se à planilha do Excel. Particularmente gostei muito deste designer, mas se você quiser alterá-lo, basta clicar no botão Linhas de grade (1) e escolher uma das opções. Pode ainda trocar a cor do fundo através do botão Cor do fundo (2).
Observe como ficou o formulário após sua alteração:
Outra novidade, e muito bem-vinda, é que agora podemos inserir, direto na folha de dados, campos Totais, sem programação.
Carregue o formulário e clique no botão Totais (1). Abra a Caixa de listagem (2), correspondente a coluna que você deseja totalizar e selecione a opção desejada, conforme você está vendo na figura abaixo.
Como resultado, temos:
Aproveitando o exemplo, será demonstrado como inserir a Formatação Condicional. Abra o formulário no modo estrutura e selecione o campo (1) a ser inserido a formatação. Clique no botão Condicional(2) da faixa. Será aberto o formulário da formatação (3). Veja que no formulário da formatação foi configurado para que a fonte fique em vermelho, quando o valor do campo for superior a Um mil Reais.
Como resultado temos:
Agora vou demonstrar uma maneira de como você pode mudar, em tempo de execução, não só o "zebrado", mas também a fonte e o tamanho da fonte.
Este exemplo foi projetado para a alteração ocorrer quando for pressionada a combinação de teclas CRTL + y.
Para isso usei no evento "Ao apertar tecla" , das propriedades do formulário, o seguinte código:
Option Compare Database
Dim posição As Byte
_______________________________________________________________________
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If Shift = 2 Then '2 se você pressionou a tecla CTRL If KeyCode = 89 Then '89 se pressionou a tecla y minúsculo Select Case Nz(posi?o) Case 0 Me.DatasheetAlternateBackColor = RGB(244, 244, 244) Me.DatasheetFontHeight = 8 Me.DatasheetFontName = "verdana" posição = 1 Case 1 Me.DatasheetAlternateBackColor = RGB(204, 255, 204) Me.DatasheetFontHeight = 10 Me.DatasheetFontName = "Arial" posição = 2 Case 2 Me.DatasheetAlternateBackColor = RGB(204, 236, 255) Me.DatasheetFontHeight = 9 Me.DatasheetFontName = "Tahoma" posição = 0 End Select End If End If End Sub
Passe a propriedade Visualizar teclas do formulário para SIM
A figura abaixo mostra um teste com o CRTL + y , para você visualizar as modificações feitas em tempo de execução. Observe a troca de cor, do nome da fonte e do tamanho da fonte.
Observe na figura acima, na faixa azul, do preço em vermelho, uma sobreposição do fundo branco do controle. É que na formatação condicional não tem a opção de fundo transparente. O padrão é branco.
Baixe o arquivo exemplo para você estudar e testar o efeito do código apresentando, utilizando a combinação CRTL + y
bom estudo!
17 comentário(s) Avelino Sampaio 02/09/2021 05:16:29 Marcelo, fiz um teste aqui em um formulário contínuo e funcionou normal. Refaça o processo, prestando atenção se está formatando o campo correto. Sucesso! Marcelo Costa 01/09/2021 16:27:51 Boa tarde professor! Usando o botão CONDICIONAL, qual o comando que digito em "Formatar apenas as células em que" para que a todas as datas anteriores a atual apareça em vermelho, por exemplo. Coloquei " O valor do campo - é menor que - Data()" , selecionei a cor de fundo e da fonte, porém não surtiu o efeito desejado. Desde já agradeço a atenção. Marcelo Costa. Avelino Sampaio 25/08/2021 05:58:36 Eduardo Crie uma campo na consulta usandoa função DSoma(). Exemplo: Saldo: CDup(DSoma("nz([credito]) - nz([debito])";"[NomeDaTabela]";"[titular]='" & [Nomedatabela].[titular] & "' AND [idMovimento] <=" & [NomeDatabela].[idMovimento])). ATENÇÃO: Este tipo de consulta arrebenta com o desempenho do aplicativo em REDE. Se o usuário for utilizar este recurso com uma certa frequencia, sugiro que trabalhe com geração de tabela local temporaria. Poderá ver isso em vídeo que ofereço no tutorial sobre o uso do Protec. Sucesso! EDUARDO ROCHA 23/08/2021 18:18:49 Olá professor! Eu gostaria de saber como faço o saldo linha a linha, como extrato bancario, mas em um formulário. Grande abraço! Edson Junho 23/08/2021 17:54:29 GRANDE Mestre Avelino, Mais um aprendizado formidável. Obrigado pela contribuição. Edson Lucas 25/04/2021 10:26:09 Vixi...!!! agora "zebrô" pro meu lado... kkk. Avelino Sampaio 25/04/2021 06:24:37 Edson, só fica habilitado se o formulário estiver no modo "folha de dados" ou em modo "Exibição de layout". Sucesso! Edson Lucas 24/04/2021 13:00:31 Ola Avelino, fiz um fichário no access e não consigo habilitar a ferramenta "cor da fonte". Na verdade, a ferramenta "fonte" aparece no fichário, mas não habilitado, fica desabilitado - se é que voce conseguiu entender. Como faço para habilitar essa ferramenta? OBS.: quando entro no "modo design" a ferramenta está habilitada, dá pra alterar as cores, mas quando vou para o "modo formulário" não fica habilitada a ferramenta !!!!! (Email.: eldiretor@hotmail.com). Agradeço a atenção. Carlos 28/03/2021 21:51:14 Avelino, Tem como personalizar esse campo de total? Preciso fazer a média ponderada (sum(campo1)-sum(campo2))/sum(campo1) Grato! Elaine Alcantara 04/12/2020 13:24:50 Olá, tenho uma dúvida com relação a expressões. Tem alguma maneira de mostrar uma letra (A,B ou C) dependendo do total de pontos de um questionario:: Me ajude por favor, estou quebrando a cabeça... Obrigada, Elaine eralcantara@gmail.com Avelino Sampaio 30/11/2020 17:57:52 Fico feliz em poder ajudar Sucesso Alexandre Costa 18/11/2020 08:48:27 Muito bom as suas dicas, me quebrou um galho, no meu trabalho. Valeu!!!! Avelino Sampaio 08/11/2020 17:53:05 Elson, os recursos aqui apreentados são apenas para as versões 2007 em diante. Grato! Elson Garcia 08/11/2020 17:00:42 Não consigo abrir pois o meu access é o 2000, como faço? Grato. Ivan Allessi 13/10/2020 12:18:10 Boa Tarde Avelino, Nao estou conseguindo acertar a expressão para os exemplos abaixo: Ex1: Se a data da ultima compra for maior que 90 dias, a linha toda toda ficaria em vermelho. Ex2: Se a data da ultima ligação for maior que 3 dias, a linha toda fica amarela. Voce pode me ajudar ? Geraldo Marques 07/06/2020 17:02:07 Caríssimo, ótimos exemplos. Pergunta: É possível programar uma Key (exemplo: F8) para adicionar um novo registro ? Geraldo. (24-33446176) Gervásio Gallo 12/02/2020 18:50:52 Olá Avelino, O trabalho que vc está desenvolvendo nesse site é de uma qualidade ímpar. Muito bom, ricamente exemplificado, de uma facilidade de compreensão impressionante. Decididamente era o que faltava na área. Parabéns pela sua disposição e desprendimento em contribuir para a formação dos demais. Paz em seu coração, Gallo |