Obtener datos en Excel

Buenas:
Tengo una base de datos, de la que tengo hecha un ODBC que se llama 'bdprinex32'. Con Excel, cojo los datos de una tabla de dicha b.b.d.d., pero mi pregunta es: ¿Cómo puedo operar con los datos antes de insertarlos en Excel?
Lo que quiero conseguir es hacer los subtotales de algunos de los campos de esa tabla (y posteriormente, de otras tablas), pero el número de campos es distinto de una a otra, y no sé cómo podría introducir el subtotal al final de todos los campos.
Espero que puedas ayudarme, pues lo necesito urgentemente
Saludos
-VÍCTOR-

5 Respuestas

Respuesta
Lo único que te puedo decir es que crees una macro en VB de excel que te lo haga.
Un saludo.com
Car
Respuesta
1
Tienes que decirme en que formato o programa están los datos originales, de todas formas en Excel puedes usar MS Query que es el programa con el que podrías consultar los datos (pej subtotales, de manera análoga a como lo hace access).
Por lo que veo quieres hacer los subtotales parciales y luego los totales ¿no es así?, seguramente no podrás hacerlo de un tirón pero sí en dos pasos.
Respuesta
1
No mencionas si ya tienes la conexión, si es así, puedes hacer cualquier operación sobre la base de datos antes de vaciar cualquier cosa en la hoja de Excel, pero si quieres obtener subtotales, aprovecha la potencia de Excel y obtenlos directamente sobre la hoja, la macro que te anexo es un ejemplo de como conectarme a la base y vaciarlos en Excel, hice una base de datos que se llama Tmp.mdb y una conexión ODBC que se llama Temporal...
Option Explicit
Public Sub basDemoAdo()
Dim cnn1 As ADODB.Connection
Dim rstClientes As ADODB.Recordset
Dim strCnn As String
Dim strNombre As String
Dim co1 As Integer
'Me conecto a la base de datos
strCnn = "Provider=MSDASQL;DSN=Temporal;DATABASE=Tmp"
'Por si ocurre un error
On Error GoTo basDemoAdo_Err
Set cnn1 = New ADODB.Connection
cnn1.Open strCnn
Set rstClientes = New ADODB.Recordset
'Aqui abro la tabla Clientes
rstClientes.Open "Clientes", cnn1
'Aqui vacio los datos del campo NombreContacto, pero como te decia más arriba, antes de vaciar, puedes realizar cualquier operación sobre los datos
co1 = 0
Do Until rstClientes.EOF
strNombre = rstClientes!NombreContacto
ActiveCell.Offset(co1, 0).Value = strNombre
rstClientes.MoveNext
co1 = co1 + 1
Loop
basDemoAdo_Err:
Set rstClientes = Nothing
Set cnn1 = Nothing
If Err.Number <> 0 Then MsgBox "Error = " & Err.Number & " " & Err.Description
End Sub
Respuesta
1
Si lo que tu quieres es obtener datos de una fuente, procesarlos y guardarlos en otra fuente necesariamente necesitas construir un programa. Puedes usar Visual Basic, Delphi o el lenguaje que prefieras.
De todas maneras existen las funciones COUNT() y SUM() de SQL que te permiten contar y sumar los parámetros que le pases. Por ejemplo:
select nombre, sum(importe)
from tabla
where nombre = 'pepe'
group by nombre
Esto sacaría tuplas con los nombres y los importes.
Respuesta
Realmente no entiendo que hace esta pregunta en un grupo de PHP.
Supongo que si estas usando VBA (Visual Basic for Applications) para conectarte con Excel a una base de datos a través de ODBC, con el mismo VBA puedes hacer operaciones de cualquier tipo, total es un lenguaje de programación, o podrías simplemente agregar (en forma de macro) una fórmula al final de la selección con la sumatoria de las filas traídas de la tabla.
Puedes obtener información sobre estas técnicas de programación para MS Office en:
[] http://msdn.microsoft.com/office
[] http://msdn.microsoft.com/vba
[] http://www.microsoft.com/data/odbc

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas