Consultas SQL

12/05/2008 - 09:53 por Ricardo Peña | Informe spam
Buenas, soy nuevo en esto de importar desde una base de datos SQL.

Tengo unos archivos en excel, que se nutren de consultas a bases de datos SQL.
Quisiera poder que dichas consultas estén dentro de unas fechas concretas,
que las puedo poner en unas celdas del excel, o dentro de la propia consulta.


Gracias de antemano, un saludo,

Preguntas similare

Leer las respuestas

#1 Juan M
12/05/2008 - 10:09 | Informe spam
Hola Ricardo,

¿Como ejecutas las consultas? ¿Cómo es esa consulta?¿Es a través de una
macro o con MS Query?

Un saludo,
Juan


"Ricardo Peña" escribió
Buenas, soy nuevo en esto de importar desde una base de datos SQL.

Tengo unos archivos en excel, que se nutren de consultas a bases de datos
SQL.
Quisiera poder que dichas consultas estén dentro de unas fechas concretas,
que las puedo poner en unas celdas del excel, o dentro de la propia
consulta.


Gracias de antemano, un saludo,
Respuesta Responder a este mensaje
#2 Ricardo Peña
12/05/2008 - 14:53 | Informe spam
Hola Juan, gracias por la prontitud en la respuesta:


La consulta se ejecuta automaticamente al abrir el libro, es una consulta
directa a a una base de datos externa. Se puede crear una macro, donde al
ponerle las fechas del periodo que necesito, busque la información sólo en
esa fecha.
Es suficiente la información, o necesitas más.

Gracias de antemano.

"Juan M" wrote:

Hola Ricardo,

¿Como ejecutas las consultas? ¿Cómo es esa consulta?¿Es a través de una
macro o con MS Query?

Un saludo,
Juan


"Ricardo Peña" escribió
> Buenas, soy nuevo en esto de importar desde una base de datos SQL.
>
> Tengo unos archivos en excel, que se nutren de consultas a bases de datos
> SQL.
> Quisiera poder que dichas consultas estén dentro de unas fechas concretas,
> que las puedo poner en unas celdas del excel, o dentro de la propia
> consulta.
>
>
> Gracias de antemano, un saludo,



Respuesta Responder a este mensaje
#3 Juan M
12/05/2008 - 16:41 | Informe spam
Hola Ricardo,

Si hemos decidido hacerlo por macros es necesario esto:

El tipo de base de datos influye en la cadena de conexión,
El nombre de la base de datos si es con contraseña o de uso restringido... y
su ruta
El nombre de las tablas y sus campos para poder armar las consultas,
No es necesario que sean los reales, pero si con una aproximación buena para
que luego puedas realizar los cambios pertinentes.

La versión de excel, yo tengo la 2003 y no puedo hacer pruebas en la 2007.
también hay características de la 2003 no válida para las anteriores.
Rangos para saber de donde se toman los datos y donde los quieres devolver.

Alguna conversación relacionada por si quieres intentarlo por tu cuenta:

Página de Ron de Bruin con un ejemplo muy útil
http://www.rondebruin.nl/accessexcel.htm
Conversaciones del foro
http://tinyurl.com/6a8zbr
http://tinyurl.com/69jwkz

Un saludo,
Juan

"Ricardo Peña" escribió

Hola Juan, gracias por la prontitud en la respuesta:


La consulta se ejecuta automaticamente al abrir el libro, es una consulta
directa a a una base de datos externa. Se puede crear una macro, donde al
ponerle las fechas del periodo que necesito, busque la información sólo en
esa fecha.
Es suficiente la información, o necesitas más.

Gracias de antemano.

"Juan M" wrote:

Hola Ricardo,

¿Como ejecutas las consultas? ¿Cómo es esa consulta?¿Es a través de una
macro o con MS Query?

Un saludo,
Juan


"Ricardo Peña" escribió
> Buenas, soy nuevo en esto de importar desde una base de datos SQL.
>
> Tengo unos archivos en excel, que se nutren de consultas a bases de
> datos
> SQL.
> Quisiera poder que dichas consultas estén dentro de unas fechas
> concretas,
> que las puedo poner en unas celdas del excel, o dentro de la propia
> consulta.
>
>
> Gracias de antemano, un saludo,



Respuesta Responder a este mensaje
#4 Juan M
12/05/2008 - 16:55 | Informe spam
Hola Ricardo,

Te paso un ejemplo,

Emplea la celda B2, B3, B4 para los datos
B2 es un campo de texto,
B3 es la fecha inicial
B4 es la fecha dinal

Lo pega todo a partir de la celda A10

Es un ejemplo modificado al vuelo, puede que haya algún error

Un saludo,
Juan

Inicio Código
'Hay que añadir la referencia a Microsoft ActiveX Data Objects x.x library
Sub ProduccionDia()
Dim strSQL As String

strSQL = "SELECT * FROM produccion WHERE nombre_tipo like '" & Range("B2") &
"%' "
strSQL = strSQL & "AND fecha_produccion "
strSQL = strSQL & "BETWEEN #" & Format(Range("B3"), "mm/dd/yyyy") & "# AND "
strSQL = strSQL & "#" & Format(Range("B4"), "mm/dd/yyyy") & "# ORDER BY
nombre_obra"

ExtraeDatosProduccion strSQL
End Sub

Function ConnectionBuild() As String
Dim strCnn As String

strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;"
strCnn = strCnn & "Data Source=c:\Miruta\MiBaseDatos.mdb;"
ConnectionBuild = strCnn

End Function

Sub ExtraeDatosProduccion(strSQL As String)
Dim mCnn As ADODB.Connection
Dim mRst As ADODB.Recordset

Dim strCnn As String

Dim i As Long

strCnn = ConnectionBuild

Set mCnn = New ADODB.Connection
mCnn.Open strCnn

Set mRst = New ADODB.Recordset

mRst.Open strSQL, mCnn, adOpenForwardOnly, adLockReadOnly, adCmdText

For i = 0 To mRst.Fields.Count - 1
Range("A10").Offset(, i) = mRst.Fields(i).Name
Next i
Range("A11").CopyFromRecordset mRst

mRst.Close
Set mRst = Nothing
mCnn.Close
Set mCnn = Nothing

End Sub
Fin Codigo
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida