Suma de 100 tablas dbf
Hola...
Despues de percibir el calibre en cuanto a conocimientos de algunos en este Foro, no tengo dudas de que mi problema tiene solución. Tengo en una carpeta mas de 100 archivos(tablas.dbf) con igual estructura y de diferente nombre solo deseo saber como se pueden sumar los valores de todas las tablas de esta manera y poner el resultado en una tabla vacia o creada previamente. tabla1 tabla2 tabla total 2 1 2 1 1 1 3 2 3 3 3 3 3 3 1 3 3 4 De cualquier manera gracias. :confused: |
La cosa es fácil, no tienes más que hacer una consulta SQL por tabla e ir acumulando el resultado en una variable.
Si las tablas tienen la misma estructrura, es decir el campo a sumar se llama igual, te vale el Sql, solamente hay que cambiar el nombre de la tabla. Estos nombres se pueden guardar en una matriz y recorrerla mediante un bucle que se ejecutaría 100 veces e ir acumulando los valores. Un Saludo. |
basado en el codigo de Marcos, prodria utilizar una funcion
|
Hola Marcos y Onti
Ayer no accedí al Foro por eso no pude probar los resultados que me ofrecieron, de todas formas les agradezco que se hayan ocupado en ayudarme, ya que seguramente el tiempo no les alcanza para atender los multiples problemas que presentamos los menos experimentados. Este es el extenso codigo que elaboré, primero inserté una sección en el Formulario para apareciera en un Combo los archivos.dbf que estan en una carpeta determinada, luego puse dentro de un ciclo un label que toma el nombre de los itenms de Combo y despues la sentencia SQL cullo resultado se graba en qrlabels (no encontré otra forma). for zz:=0 to can do Label2.Caption:=ComboBox1.Items[ComboBox1.ItemIndex]; begin Query4.SQL.Clear; Query4.SQL.Add('Select * From ' + Label2.caption); Query4.SQL.Add('where ID_IND = "180"'); Query4.Open; Form4.qrlabel169.Caption:=(Query4.Fields[0].Text); if Form4.qrlabel169.Caption='' then Form4.qrlabel169.Caption:='0'; Form4.qrlabel167.Caption:=(Form4.qrlabel169.Caption); aa:=Form4.qrlabel22.Caption; ab:=Form4.qrlabel167.Caption; ba:=strtofloat(aa); bb:=strtofloat(ab); l:=ba+bb; Form4.qrlabel22.Caption:=floattostr(l); Form4.qrlabel168.Caption:=(Form4.qrlabel170.Caption); end; Gracias por adelantado. |
Algunos detalles:
Cuando uses código delphi utiliza las etiquetas que ayudan mucho para visualizar y entender rápidamente un código, también es útil que tengas una instrucción por linea. No hay necesidad que utilices un Label como "Puente" entre tu ComboBox y el Query, puedes hacerlo directamente de esta forma:
|
¿Como se realiza ciclo sin hacer referencia al Label?
Hola Onti.
Es cierto que debo observar algunas normas de programación para no pasar trabajo despues al rectificar o al agregar algun segmento del codigo. te agradezco tu respuesta, solo que ¿como se realiza ciclo sin hacer referencia al Label? Disculpame si soy demaciado insistente. |
La franja horaria es GMT +2. Ahora son las 10:18:23. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi