Microsoft 10.0 do controle de calendário e versões posteriores usam um valor incorreto para a propriedade FirstDay

O suporte para o Office 2003 terminou

A Microsoft terminou o suporte para o Office 2003 em 8 de abril de 2014. Esta alteração afetou as suas atualizações de software e opções de segurança. Saiba o que isto significa para você e como permanecer protegido.

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 826761
Este artigo se aplica para um arquivo de banco de dados (.mdb) do Microsoft Access ou para um arquivo de banco de dados (.accdb) do Microsoft Access.

Moderado: Requer básica de macro, codificação e interoperabilidade habilidades.
Sintomas
No Microsoft Access, um dia incorreto é exibido para o primeiro dia do controle do calendário. Esse problema ocorre quando você inserir um controle de calendário do Microsoft 10.0 ou posterior em um formulário ou em um relatório e, em seguida, defina a propriedade FirstDay do controle calendário, usando o Microsoft Visual Basic for Applications (VBA) constantes intrínsecas.

Por exemplo, você definir a propriedade FirstDay do controle de calendário para vbMonday ou vbTuesday . Quando você define a propriedade FirstDay do controle Calendar para vbTuesday , o calendário usa quarta-feira como o primeiro dia da semana.

Observação Quando você usa as versões anteriores de controle de calendário, você pode definir a propriedade FirstDay corretamente.
Causa
Esse problema ocorre porque as constantes intrínsecas para os dias são definidos no Microsoft Visual Basic, como vbSunday e vbMonday , não estão associadas com o valor de dia correto.
Como Contornar
Para contornar esse problema, execute estas etapas:
  1. Determine a associação entre os dias, as constantes intrínsecas do VBA e os valores numéricos que estão associados aos valores de dia correto e constantes intrínsecas do VBA. Para fazer isso, execute as seguintes etapas:
    1. Inicie o Access.
    2. Abra o banco de dados de exemplo Northwind.
    3. Na janela banco de dados, clique em formulários sob objetos .

      Observação No Access 2007, clique na guia criar e, em seguida, clique em Design do formulário no grupo de formulários .
    4. No painel direito, clique duas vezes em Criar formulário no modo de design .

      Observação No Access 2007, ignore esta etapa.
    5. No menu Inserir , clique em Controle ActiveX .

      Observação No Access 2007, clique na guia Design e, em seguida, clique em Inserir controle ActiveX no grupo de controles .
    6. Na caixa de diálogo Inserir controle ActiveX , clique para selecionar 10.0 do controle de calendário ou uma versão posterior da caixa de listagem Selecionar um controle ActiveX e, em seguida, clique em OK .
    7. Adicione um botão de comando ao formulário que tenha as propriedades definidas da seguinte maneira:
      propriedade valor
      nome testFD
      legenda alterar o primeiro dia
    8. No menu arquivo , clique em Salvar .

      Observação No Access 2007, clique no Botão Microsoft Office e, em seguida, clique em Salvar .
    9. Na caixa de diálogo Salvar como , digite Form1 na caixa Nome do formulário e, em seguida, clique em OK para salvar o formulário de Form1.
    10. No menu Exibir , clique em código .

      Observação No Access 2007, clique na guia Design e, em seguida, clique em Exibir código no grupo Ferramentas .
    11. No Editor do Visual Basic, digite ou cole o código a seguir:
      Option Compare DatabasePrivate Sub testFD_Click()    Calendar0.FirstDay = vbTuesdayEnd Sub
    12. Abra Formulário1 no modo formulário.
    13. Clique em Alterar primeiro dia botão.

      Observação Se a primeira coluna do controle do calendário não estiver definida para terça-feira, observe o dia na primeira coluna.
    14. No Editor do Visual Basic, clique em janela imediata no menu Exibir .
    15. Na janela Immediate, digite ? vbTuesday , e, em seguida, pressione ENTER.

      Observe o valor numérico.
    16. Repita as etapas j a etapa o substituindo vbTuesday por outras constantes intrínsecas do VBA, como vbMonday e vbWednesday .

      Observe que você irá tem a tabela a seguir para mostrar a associação entre os dias, as constantes intrínsecas do VBA e os valores numéricos que estão associados aos valores de dia correto e constantes intrínsecas do VBA.
      dia da semana constante intrínsecos do VBA valor numérico associado
      Segunda-feira vbSunday 1
      Terça-feira vbMonday 2
      Quarta-feira vbTuesday 3
      Quinta-feira vbWednesday 4
      Sexta-feira vbThursday 5
      Sábado vbFriday 6
      Domingo vbSaturday 7
  2. Crie uma enumeração personalizada global que é mapeada corretamente para os dias da semana. Para fazer isso, execute as seguintes etapas:
    1. Na janela banco de dados, clique em módulo em objetos .

      Observação No Access 2007, clique na guia criar , clique na seta em macro no outro grupo e, em seguida, clique em módulo .
    2. No menu Inserir , clique em módulo .

      Observação No Access 2007, ignore esta etapa.
    3. Digite ou cole o código a seguir no Editor do Visual Basic:
      Option Explicit        Public Enum nwFirstDay    nwMonday = 1    nwTuesday = 2    nwWednesday = 3    nwThursday = 4    nwFriday = 5    nwSaturday = 6    nwSunday = 7End Enum
      Observação criar a enumeração conforme descrito na coluna "Dia de semana" e na coluna "Valor numérico associado" correspondente da tabela que está na etapa 1r.
    4. Nomeie o módulo Day_Association e salvá-lo.
    5. Feche o Editor do Visual Basic.
  3. Substituir as constantes intrínsecas do VBA em seu aplicativo as constantes que estão na enumeração personalizada que é descrita na etapa 2.

    Por exemplo, se seu código original é
    Calendar0.FirstDay = vbTuesday
    modifique seu código para usar enumeração personalizada da seguinte maneira:
    Calendar0.FirstDay = nwTuesday
  4. Execute o aplicativo.
Mais Informações
As constantes intrínsecas do VBA não dependem de informações do sistema local. Por exemplo, em um computador em que o sistema operacional localizado no idioma alemão, o primeiro dia da semana é segunda-feira. O valor numérico associado com a segunda no computador é sempre 0.

Porque 10.0 do controle de calendário ou uma versão posterior é um Microsoft ActiveX em todo o mundo controle, você não pode controlar os valores numéricos estão associados com a VBA constantes intrínsecas com base em suas especificações de computador. Portanto, o problema mencionado na seção "Sintomas" deste artigo ocorre.

Etapas para reproduzir o problema

  1. Inicie o Access.
  2. Abra o banco de dados de exemplo Northwind.
  3. Na janela banco de dados, clique em formulários sob objetos .

    Observação No Access 2007, clique na guia criar e, em seguida, clique em Design do formulário no grupo de formulários .
  4. No painel direito, clique duas vezes em Criar formulário no modo de design .

    Observação No Access 2007, ignore esta etapa.
  5. No menu Inserir , clique em Controle ActiveX .

    Observação No Access 2007, clique na guia Design e, em seguida, clique em Inserir controle ActiveX no grupo de controles .
  6. Na caixa de diálogo Inserir controle ActiveX , clique para selecionar 10.0 do controle de calendário ou uma versão posterior da caixa de listagem Selecionar um controle ActiveX e, em seguida, clique em OK .
  7. Adicione um botão de comando ao formulário que tenha as propriedades definidas da seguinte maneira:
    propriedade valor
    nome testFD
    legenda alterar o primeiro dia
  8. No menu Exibir , clique em código .

    Observação No Access 2007, clique na guia Design e, em seguida, clique em Exibir código no grupo Ferramentas .
  9. No Editor do Visual Basic, digite ou cole o código a seguir:
    Option Compare DatabasePrivate Sub testFD_Click()    Calendar0.FirstDay = vbTuesdayEnd Sub
  10. No menu arquivo , clique em Salvar .

    Observação No Access 2007, clique no Botão Microsoft Office e, em seguida, clique em Salvar como .
  11. Na caixa de diálogo Salvar como , digite Form1 na caixa Nome do formulário e, em seguida, clique em OK para salvar o formulário de Form1.
  12. Abra Formulário1 no modo formulário.
  13. Clique em Alterar primeiro dia botão.

    Embora definir a propriedade FirstDay do controle Calendar para vbTuesday , o calendário seleciona quarta-feira para ser o primeiro dia da semana.
Referências
Para obter mais informações sobre controle de calendário e o calendário propriedades de controle, abra Mscal.hlp e procure o tópico apropriado. Mscal.hlp está localizado nas seguintes pastas:

Microsoft Access 2002

Installation Drive: \Program Files\Microsoft Office\Office10

Microsoft Office Access 2003

Installation Drive: \Arquivos de Programas\Microsoft Office\Office11

Observação Installation Drive é um espaço reservado para o nome da sua unidade de instalação.
ACC2002 ACC2003 ACC2007

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 826761 - Última Revisão: 04/04/2007 18:44:02 - Revisão: 2.1

Microsoft Office Access 2007, Microsoft Office Access 2003, Microsoft Access 2002 Standard Edition

  • kbmt kbexpertiseinter kbtshoot kbdatetime kbfunctions kbvba kbctrl kbproperties kbhelp kbprb KB826761 KbMtpt
Comentários