Artigo: 241728 - Última revisão: segunda-feira, 28 de Junho de 2004 - Revisão: 3.0 PROBLEMA: Utilização anos de 2 dígitos com ÉData pode produzir resultados inesperados
Nesta páginaSintomasA função IsDate() poderá devolver resultados inesperados se forem transmitidos uma data que contém um ano de 2 dígitos. CausaAs data funções VBA ÉData , formato , CDATA e CVData utilizam uma função na automatização OLE (OleAut32.dll). Esta função procura todos os formatos de data por tokenizing cada um dos valores separados pela cadeia que representa a data e devolve um valor boleano que indica se a entrada pode ser representada como uma data. Isto é importante lembrar-se quando utiliza a função para interpretar uma data que contém um ano de 2 dígitos. Idiomas diferentes utilizam vários formatos de data (ou seja, mm/dd/aa, aa/mm/dd, "DD MMM aa", "Aa MMM DD" e assim sucessivamente) e, por isso, a função tenta os dígitos em todas as posições até que a função tiver encontrado uma data válida ou esgotado todas as possibilidades. Corrente quer 29 de Fevereiro é uma data válida para um ano específico, é um exemplo de onde poderá obter resultados inesperados quando passar ÉData funcionar uma data que contém um ano de 2 dígitos. Para ser mais específico, passar a função ' ÉData um ambíguo data tal como "29-Fev-01", irá resultar em ÉData verificar todos os formatos de data disponível e devolvem VERDADEIRO como 1 de Fevereiro de 2029 é uma data válida. No entanto, quando o ano totalmente qualificado é transmitido como "29-Fev-2001", em seguida, ÉData pode determinar que esta é uma data inválida e assim devolverá FALSO. ResoluçãoCrie uma função de wrapper à volta a função ÉData para converter a data de um ano com 4 dígitos antes de passar a data convertida para a função IsDate() . Ponto Da SituaçãoEste comportamento ocorre por predefinição. Mais InformaçãoAs funções OleAut32.dll utilizar um padrão "Deslizar ano" para que, por predefinição, todos os anos de 2 dígitos no intervalo 0 - 29 são considerados como correspondendo ao século XXI e estas no intervalo de 30-99 são in a 1900s. Isto pode ser facilmente substituído com a seguinte função de mensagens publicitárias. A documentação para a função ' ÉData define este comportamento foi concebida. IsDate(expression) A expressão obrigatório é uma variante contendo uma expressão de data ou uma expressão de cadeia reconhecível como uma data ou hora. Passos para reproduzir o comportamento
Passos para evitar o problema
A informação contida neste artigo aplica-se a:
Tradução automáticaIMPORTANTE: 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado. Clique aqui para ver a versão em Inglês deste artigo: 241728
(http://support.microsoft.com/kb/241728/en-us/
)
| Outros Recursos Outros Sites de Suporte
ComunidadesObtenha Ajuda AgoraTraduções de Artigos |






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Voltar ao topo