Buscar carpetas y archivos

Hola programadores tengo varias dbf guardadas en diferentes carpetas de este modo.
Carpeta 1 contiene las siguientes carpetas 2007,2008,2009 el dbf que tiene cada carpeta se llama por ejemplo sebastián.dbf
Ingreso la fecha actual de búsqueda por ejemplo 01/04/2010 al 15/04/2010 luego en un combo elijo el año de comparación por ejemplo 2008
Este programita debe buscar todas las tablas que se llamen 2008 de acuerdo a la selección del combo y luego leer el archivo sebastián.dbf y contar los registros que tiene de acuerdo a la fecha ingresada lineas arriba. El año es diferente ya que en la tabla 2008 tendría que buscar esta fecha 01/04/2008 al 15/04/2008 como verán lo que cambia es el año porque el día y mes viene hacer los mismo.
wini = thisform.text1.value
wfin = thisform.text2.value
x = thisform.combo2.value
SELEC fecha, count(fecha)as total from C:\Informes\historicos\ ;
where between(fecha,ctod('01/01/2008'),ctod(padl(day(wfin),2,'0')+"/"+padl(month(wfin),2,'0')+"/2008"))
brow
Este código me envía la información que necesito pero cada vez que requiero cambiar el año tengo que ingresar a la codificación esto necesito hacerlo en un formulario. Gracias de antemano
Respuesta
1
Primero que nada tené cuidado con las fechas por el caso de febrero para los bisiestos, párese una tontera pero te puede dar problema más adelante.
El año lo tomas del combobox y lo cargas, el año lo tomarías con
thisform.combo1.DisplayValue
o sea que reemplazarías
+padl(month(wfin),2,'0')+"/"+thisform.combo1.DisplayValue))
la parte inicial
fecha,ctod('01/01/2008')
No se si el día y el mes es algo fijo o no, lo mismo puedes hacerlo como te dije para el año
Hola gracias por responder ahora si lo adapte y esta funcionando bien, pero tengo una duda, en esta ruta tengo ( C:\Informes\histo\ ) tengo sub carpetas que tienen nombres como 2008,2009,2010 dentro de ellas tengo los dbf. Que tienen el mismo nombre por ejemplo que sean tabla1 para todos, hay alguna posibilidad que al elegir el combo por ejemplo 2008 el from busque automáticamente la carpeta 2008 gracias.
SELEC fecha, count(fecha)as total from C:\Informes\histo\2008\tabla1 ;
where between(fecha, ctod(padl(day(winif),2,'0')+"/"+padl(month(winif),2,'0')+"/"+thisform.combo2.DisplayValue), ctod(padl(day(wfin),2,'0')+"/"+padl(month(wfin),2,'0')+"/"+thisform.combo2.DisplayValue)) into cursor xx
brow
y yo aria lo mismo que la consulta anterior
SELEC fecha, count(fecha)as total from;
"C:\Informes\histo\" + thisform.comboanios.DisplayValue + "\tabla1"
tambien podrias hacer un
FOR para recorrer todos los años que tengas en el combo
Hola grande amigo gracias al fin se pudo solucionar el problema, pero tienes una buena idea de hacer un For para recorrer todos los año que tengo en mi combo esta muy interesante pero no tengo mucho conocimiento en programación por favor me puedes explicar como lo haría gracias nuevamente.
Mm seria algo así
FOR i=1 TO thisform.combo2.ListCount STEP 1
         "C:\Informes\histo\" + thisform.combo1.SelectedID(i) + "\tabla1"
Endfor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas