Consulta con parametros en Ms Query(excel)

Tengo una super duda, estoy haciendo una consulta de una db de mysql a través de Excel, con microsoft query, ya logre que los criterios los tome de una celda (con parámetros, o sea poniendo [] en el criterio), pero necesito usar un like con todo y comodín, y no he podido.
Necesito que el where busque todo lo que empiece con por valor y tomar ese valor de la celda.
Para que haga el like yo tengo:
SELECT Datos.Tienda, Datos.Codigo, Datos_0.Existencia
FROM Datos
WHERE (Datos.Zn=?) AND (Datos.Codigo Like ?)
¿El? Lo pone para tomar el valor de una celda de excel, pero el like así funciona como si fuera un =, necesito poner el comodín de al fina (%), pero no se donde o como ponerlo...
Si lo hago con un valor constante si puedo poner WHERE Datos. Código like 'a-40%' pero necesito tomar ese dato de la celda.
¿Esta muy difícil?

4 Respuestas

Respuesta
1
Lamento decirte que no soy experto en MS Query ya que no lo utilizo.
De todas formas, he estado mirando las ayudas y buceando en la web de Microsoft y te cuento lo que he averiguado:
- ¿Poner? En el SQL de MSQuery, lo único que hace es que te trata lo que sigue como un parámetro (al ejecutar la consulta te saca un cuadro de diálogo pidiendo el Valor). Esto es equivalente a poner [] en la celda de criterio. Lo que pongas entre los corchetes es el texto que aparecerá como pregunta en el cuadro de diálogo.
- En ningún sitio he encontrado como hacer que dicho parámetro tome el valor de una celda de Excel.
- Lo único que he visto que te puede servir es utilizar código VBA para actualizar los datos. El proceso sería:
- Inicias una sesion DDE con MSQuery (MSquery utiliza DDE, no OLE)
- Obtienes la sentencia SQL de la query.
- Modificas el parámetro con el contenido de la Celda que desees utilizar como parámetro. En la celda puedes tener caracteres comodín.
- Ejecutas la consulta para que te refresque los datos.
- Cierras la sesión DDE.
Te vuelvo a repetir que no soy experto en MSQuery. Con DDE no he trabajado nunca (siempre he trabajado con OLE y COM). Así pues lamento decirte que no te puedo ayudar mucho más.
Tal vez debieras dirigir tu pregunta al tablón de otra categoría.
De verdad que lo lamento.
OK, gracias. Solo te comento, por si lo necesitas alguna vez, ¿que con el? O [] si se puede tomar el dato de una celda, mi problema era el like =(
Gracias
Respuesta
1
Disculpa, pero en este tema no tengo mucha experiencia, sólo he hecho cosas muy sencillas, lamento no poder ayudarte.
Suerte!
Respuesta
1
No está fácil pero si muy interesante, por favor envíame el libro a mera(underscore)cesar(arroba)hotmail(punto)com
Lo reviso, lo adecuo a mi base de datos y te contesto.
Cordialmente,
cmera
Gracias... ya logré que funcionara. Y es más sencillo de lo que parece. Je je
Solo concatené el valor introducido por el usuario con un & y ya lo hace correctamente.
Gracias por tu interés.
Respuesta
Este es un ejemplo en visual basic debe reemplazar
sql = "select * from pacientes where rut like'" & txtbuscar & "*'"
algo asi:
sql = "select * from [tabla] where rut like'" x "*'"
Mmm... no, no me deja
Para que haga el like yo tengo:
SELECT Datos.Tienda, Datos.Codigo, Datos_0.Existencia
FROM Datos
WHERE (Datos.Zn=?) AND (Datos.Codigo Like ?)
¿El? Lo pone para tomar el valor de una celda de excel, pero el like así funciona como si fuera un =, necesito poner el comodín de al fina (%), pero no se donde o como ponerlo...
Si lo hago con un valor constante si puedo poner WHERE Datos. Código like 'a-40%' pero necesito tomar ese dato de la celda.
¿Esta muy difícil?
Disculpa la demora pero reempalazalo por el *

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas