Condición hacia SQL desde Excel

10/09/2004 - 04:45 por Jorge Perez | Informe spam
Hola a todos,

Tengo el siguiente problema:

Tengo una Pivot Table Viculada a una tabla de SQL, y para extraer los
datos primero tengo que editar el Pivot y despues editar el Query para
modificar el rango de fechas.

Alguien sabe si este condicionamiento se puede hacer modificando un par
de celdas en Excel ? Fecha de Inicio y Fecha de Fin para generar el reporte
y evitar entrar al Qery para editar las fechas ?

Aprecio su ayuda de antemano, Gracias

Saludos...
 

Leer las respuestas

#1 Fernando Arroyo
10/09/2004 - 12:19 | Informe spam
"Jorge Perez" escribió en el mensaje news:%23atz$
Hola a todos,

Tengo el siguiente problema:

Tengo una Pivot Table Viculada a una tabla de SQL, y para extraer los
datos primero tengo que editar el Pivot y despues editar el Query para
modificar el rango de fechas.

Alguien sabe si este condicionamiento se puede hacer modificando un par
de celdas en Excel ? Fecha de Inicio y Fecha de Fin para generar el reporte
y evitar entrar al Qery para editar las fechas ?

Aprecio su ayuda de antemano, Gracias

Saludos...





Sí, se puede. Por ejemplo, yo acabo de crear una tabla dinámica basándola en la tabla Orders de la base de datos de ejemplo de SQL Server (NorthWind) y he podido modificar las fechas de inicio y fin con el siguiente código:

Sub prueba()
Dim pt As PivotTable
Set pt = [Hoja1].PivotTables(1) 'Hoja donde está la tabla

pt.PivotCache.CommandText = "SELECT Orders.CustomerID, Orders.OrderDate, Orders.Freight " & _
"FROM Northwind.dbo.Orders Orders " & _
"WHERE (Orders.OrderDate>={ts '" & Format(DateValue("01-01-98"), "yyyy-mm-dd hh:mm:ss") & "'}) AND (Orders.OrderDate<={ts '" & Format(DateValue("31-01-98"), "yyyy-mm-dd hh:mm:ss") & "'})"
pt.PivotCache.Refresh

Set pt = Nothing
End Sub


Posiblemente mi sentencia SQL no será exactamente igual a la que tú vayas a necesitar (quizás cambie la parte del FROM), pero espero que al menos te sirva como ejemplo.

Un saludo.


Fernando Arroyo
MS MVP - Excel

Preguntas similares