Páginas

sábado, 19 de maio de 2012

O fim do controle de Calendário no Access 2010

Desde 1990 até o Access 2007 é que eu vinha usando o controle do Calendário nos formulários para filtrar os lançamentos contábeis através de uma data escolhida. Comecei a estudar o Access 2010 hoje, e fiquei desgostoso ao saber que a migração não vai ser nada fácil. A primeira coisa que o Access 2010 me advertiu é que tenho que estudar um pouco mais para atualizar as minhas chamadas aos APIs, principalmente quando o ambiente é o Windows 7 de 64 bits.

Navegando a esmo pelo Google, finalmente encontrei um texto que explica como poderia resolver o problema do calendário: simplesmente você não usa mais nenhuma OCX, uma simples caixa de texto já resolve tudo. Ou seja, junto com o calendário, eu usava um botão para voltar à data atual, e um outro botão para tornar visível o controle do calendário para poder navegar entre as datas; enfim, eu tinha uma dúzia de rotinas que tornavam possível navegar no diário contábil, escolhendo uma data.

Já a caixa de texto é uma novidade para mim. Existem várias propriedades na caixa de texto, e para o calendário dele funcionar, defini os seguintes parâmetros:

Mostrar Selecionador de Datas -> Para Datas
Fonte do controle -> Vazio
Formato -> Data abreviada

O formulário chama-se frmDiário, ele tem uma caixa de texto chamado txtCalendário e um subformulário chamado fsubDiário. Quando o frmDiário é aberto, ele dispara o seguinte comando:

Sub Form_Load ( )
txtCalendário = Date
End Sub

O fsubDiário está vinculado ao txtCalendário, através das seguintes propriedades:

Vincular campos mestres -> txtCalendário
Vincular campos filho -> [Data]

O problema é que nada disso parece óbvio, lembra muito o famoso celular da Apple, o iPhone. Você precisa se familiarizar com a nova funcionalidade da caixa de texto. Para você visualizar o calendário, você precisa clicar na data, dentro do txtCalendário. Do lado direito, então, é que surge um calendário. Mas navegando pelo calendário, nada acontece, assim, eu fui obrigado a criar a seguinte rotina:

Sub txtCalendário_Change ( )
fsubDiário.SetFocus
End Sub

Só assim, o subformulário acompanha a data escolhida. O problema é que ele não soma os débitos e os créditos que eu defini no rodapé do fsubDiário, ele só apresenta esses valores se eu clicar com o mouse na área do subformulário. Como o Windows 7 de 64 bits é extremamente rápido, praticamente não é necessário criar código nenhum para resolver esse problema. Achei esse recurso interessante, e ele também funciona no Access 2007, só que não é qualquer usuário que está acostumado com o novo modismo do iPhone. Depois que você aprende a usar parece fácil, mas para explicar é que são outros quinhentos.

-----------------------------

Para rodar o Access 2007 e o Access 2010 no mesmo micro, eu tive que particionar o HD, instalando o Windows 7 e o Office 2010 Professional na nova partição. Na hora que o Notebook é aberto, existe um menu que pede para você selecionar o sistema operacional, o duro é que os dois têm o mesmo nome. Para particionar um HD, sem perder informação e sem usar aquelas complicadas linhas de comando, veja esse vídeo no YouTube: http://www.youtube.c...R&v=Jr0jI6P1p78

Um comentário:

  1. Se tivesse um sinalzinho de "Gostei" nesse texto,eu iria clicar nele.

    Não repare,sr.Hosaka.
    Cismei de escrever meu nome,ao contrário.
    (h ! h ´!)

    ResponderExcluir