fechas vba

02/05/2008 - 00:39 por news.microsoft.com | Informe spam
Hola grupo:

Escribi un procedimiento en visual basic en access el cual, abre un archivo
de excel e importa datos a una tabla.
El prolema que tengo es que no reconoce bien las fechas.
En mi pc tengo la configuración regional en dd/mm/yyyy. Sin embargo, cuando
escribo
sheet.cell(row,col) interpreta el 02/01/2008 (dos de enero) como 01/02

Si abro el archivo xls con excel, la fecha se lee correctamente. Y la
interpreta correctamnete.
Por ejemplo si en excelelpongo a la celda formato numerico se lee 39449 que
corresponde al 02/01 pero si en el procedimiento
escrito en vba que corre en acces escribo clng(sheet.cell(row,col)) devuelve
39479, que corresponde al 01/02.
Si alguien sabe algo, agradecido.
Saludos
 

Leer las respuestas

#1 Héctor Miguel
02/05/2008 - 01:06 | Informe spam
hola, 'anonimo/a' !

Escribi un procedimiento en visual basic en access el cual, abre un archivo de excel e importa datos a una tabla.
El prolema que tengo es que no reconoce bien las fechas.
En mi pc tengo la configuración regional en dd/mm/yyyy. Sin embargo, cuando escribo
sheet.cell(row,col) interpreta el 02/01/2008 (dos de enero) como 01/02
Si abro el archivo xls con excel, la fecha se lee correctamente. Y la interpreta correctamnete.
Por ejemplo si en excelelpongo a la celda formato numerico se lee 39449 que corresponde al 02/01 pero si en el procedimiento
escrito en vba que corre en acces escribo clng(sheet.cell(row,col)) devuelve39479, que corresponde al 01/02.
Si alguien sabe algo, agradecido...



(hasta donde se) existen algunas situaciones donde es necesario respetar la configuracion regional (p.e.)
a) VBA (siendo US-Centric) ESPERA y trabaja -siempre/solo- con el formato de fechas mm-dd-yy
b) si en la configuracion regional el formato de fechas es NO-USA... hay conflictos con la interpretacion EN VBA
c) CDate(texto_fecha) utiliza el formato/orden de fechas que se tiene en la configuracion regional de windows
d) si (al fin de cuentas en excel) las fechas SON numeros seriales...
-> una nueva re/conversion con el tipo de datos CLng(CDate(...)) +/- te asegura la transparencia entre VBA-usuario
e) que sucederia si (por costumbre) se hace una "conversion" de fecha usando literales en ingles/castellano en el idioma equivocado ?
-> revisa: http://www.bmsltd.ie/ExcelProgRef/Ch22/default.htm

saludos,
hector.

Preguntas similares