Query con parámetro

16/07/2003 - 00:50 por fernando | Informe spam
Quisiera crear un query con un parámetro, cuyo valor se
tome de forma automática de una celda de la hoja excel, en
vez de introducirlo manualmente.
Alquien puede ayudarme?

Preguntas similare

Leer las respuestas

#6 Fernando Arroyo
06/08/2003 - 18:59 | Informe spam
Ahora mismo no puedo comprobar lo de las fechas porque estoy de vacaciones y el ordenador de que dispongo no tiene el Access, pero creo recordar que para las fechas se pueden convertir el dato de Excel al tipo de datos "double" usando algo como:

"WHERE (Tabla.CampoTipoFecha=" & Cdbl(Worksheets("Hoja").Range("CeldaDondeEstáLaFecha")) & ")"

Los números se pueden usar igual que el texto, con la única diferencia de que no hay que poner la comilla simple '
En el ejemplo que estamos utilizando sería algo como:

WHERE (Tabla3.Campo1 =" & ActiveSheet.Range("G1") & ")"

en vez de:

WHERE (Tabla3.Campo1 ='" & ActiveSheet.Range("G1") & "')"

Un saludo.


Fernando Arroyo
MS MVP - Excel


"Juanjo" escribió en el mensaje news:
Mostrar la cita
#7 Juanjo
11/08/2003 - 09:36 | Informe spam
Hola Fernando,

lo del parámetro con un número me funciona perfectamente, muchas gracias
El parámetro con la fecha no me funciona, miralo cuando puedas y dime cosas

Un saludo y muchas gracias otra vez
Juanjo


"Fernando Arroyo" escribió en el mensaje
news:
Ahora mismo no puedo comprobar lo de las fechas porque estoy de vacaciones y
el ordenador de que dispongo no tiene el Access, pero creo recordar que para
las fechas se pueden convertir el dato de Excel al tipo de datos "double"
usando algo como:

"WHERE (Tabla.CampoTipoFecha=" &
Cdbl(Worksheets("Hoja").Range("CeldaDondeEstáLaFecha")) & ")"

Los números se pueden usar igual que el texto, con la única diferencia de
que no hay que poner la comilla simple '
En el ejemplo que estamos utilizando sería algo como:

WHERE (Tabla3.Campo1 =" & ActiveSheet.Range("G1") & ")"

en vez de:

WHERE (Tabla3.Campo1 ='" & ActiveSheet.Range("G1") & "')"

Un saludo.


Fernando Arroyo
MS MVP - Excel


"Juanjo" escribió en el mensaje
news:
Mostrar la cita
fecha
Mostrar la cita
#8 Fernando Arroyo
12/08/2003 - 21:25 | Informe spam
Pues a mí sí me funciona lo de Cdbl, y pienso que debería funcionar siempre que en el campo de la tabla se almacene sólo la fecha, pero no la hora también. Si se almacenara la hora habría que modificar la instrucción. En cualquier caso, si estás haciendo pruebas con una base de datos pequeña y con datos ficticios, envíamela si quieres y hago unas pruebas yo.
Un saludo.


Fernando Arroyo
MS MVP - Excel

"Juanjo" escribió en el mensaje news:e%
Mostrar la cita
#9 Juanjo
14/08/2003 - 15:14 | Informe spam
Hola Fernando,

lo de la fecha, lo he arreglado de la siguiente manera porque de la forma
que tú me dijistes solo me funcionaba en una bd de acces.

Ahora me ha surgido un nuevo problema:
Tengo este código ( tengo más, pero este es el importante, creo ) y se trata
de en una hoja ( "Cuadro") le pongo una fecha y en otra hoja ( "SemRC")
ejecuto las consultas, pero al tener dos consultas, ( según leí por uno de
los mensajes ) especifico en QueryTables(1 o 2 ) según la consulta que
quiera hacer referencia.
El problema es que la primera vez que lo ejecuto funciona correctamente,
pero al guardar el documento, salir y volver a entrar, se me ejecuta
correctamente pero se me cambia el orden de los resultados, es decir, me
pasa la segunda consulta arriba y la primera abajo. Significa un grande
problema porque tengo datos relacionados en otras hojas.

No se si me explico, pero gracias.
Juanjo



Dim qtQ As QueryTable
Dim strSQL As String
Dim fecha_inicio As String

fecha_inicio = Format(Worksheets("Cuadro").Range("C18"), "yyyy-mm-dd")

Set qtQ = Worksheets("SemRC").QueryTables(1)

strSQL = "SELECT * FROM incidencias incidencias "
strSQL = strSQL + "WHERE f_comprobacion >= {d '" + fecha_inicio + "'}"

qtQ.CommandText = strSQL
qtQ.Refresh
Set qtQ = Nothing


Set qtQ = Worksheets("SemRC").QueryTables(2)

strSQL = "SELECT * FROM incidencias incidencias "
strSQL = strSQL + " WHERE tipo_incidencia='TI00000001' "

qtQ.CommandText = strSQL
qtQ.Refresh
Set qtQ = Nothing
Ads by Google
Search Busqueda sugerida