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...

Preguntas similare

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
Respuesta Responder a este mensaje
#2 Jorge Perez
17/09/2004 - 22:00 | Informe spam
Oye pero crees que se pueda que la fecha la tome de una celda de Excel ????
una celda que contenga la fechga de inicio y la otra celda la fecha de fin.

Saludos..


"Fernando Arroyo" wrote in message
news:eX6Oa%
"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
Respuesta Responder a este mensaje
#3 Fernando Arroyo
18/09/2004 - 10:18 | Informe spam
"Jorge Perez" escribió en el mensaje news:
Oye pero crees que se pueda que la fecha la tome de una celda de Excel ????
una celda que contenga la fechga de inicio y la otra celda la fecha de fin.

Saludos..




Sí, se puede. Suponiendo que las fechas de inicio y fin estuvieran en Hoja1, en A1 y B1 respectivamente, la instrucción que construye la sentencia SQL sería:

pt.PivotCache.CommandText = "SELECT Orders.CustomerID, Orders.OrderDate, Orders.Freight " & _
"FROM Northwind.dbo.Orders Orders " & _
"WHERE (Orders.OrderDate>={ts '" & Format([Hoja1!A1], "yyyy-mm-dd hh:mm:ss") & "'}) AND (Orders.OrderDate<={ts '" & Format([Hoja1!B1], "yyyy-mm-dd hh:mm:ss") & "'})"

Un saludo.


Fernando Arroyo
MS MVP - Excel
Respuesta Responder a este mensaje
#4 Jorge Perez
22/09/2004 - 22:37 | Informe spam
Muchisimas gracias, quedo trabajando excelente. Ahora es más facil hacer el
cambio de fechas sin entrar al query.

Saludos...


"Fernando Arroyo" wrote in message
news:
"Jorge Perez" escribió en el mensaje
news:
Oye pero crees que se pueda que la fecha la tome de una celda de Excel


????
una celda que contenga la fechga de inicio y la otra celda la fecha de


fin.

Saludos..




Sí, se puede. Suponiendo que las fechas de inicio y fin estuvieran en Hoja1,
en A1 y B1 respectivamente, la instrucción que construye la sentencia SQL
sería:

pt.PivotCache.CommandText = "SELECT Orders.CustomerID, Orders.OrderDate,
Orders.Freight " & _
"FROM Northwind.dbo.Orders Orders " & _
"WHERE (Orders.OrderDate>={ts '" &
Format([Hoja1!A1], "yyyy-mm-dd hh:mm:ss") & "'}) AND (Orders.OrderDate<={ts
'" & Format([Hoja1!B1], "yyyy-mm-dd hh:mm:ss") & "'})"

Un saludo.


Fernando Arroyo
MS MVP - Excel
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida