excel - query - parametros en consulta sql
Excel: use un valor de celda como parĂ¡metro para una consulta SQL (4)
El SQL es algo así como la sintaxis de MS SQL.
SELECT * FROM [table$] WHERE *;
Es importante que el nombre de la tabla finalice con un signo $ y todo se ponga entre paréntesis. Como condiciones puede usar cualquier valor, pero hasta ahora Excel no me permitió usar lo que llamo "apóstrofos SQL" (''), por lo que se recomienda un título de columna en una palabra.
Si tiene usuarios listados en una tabla llamada "Usuarios", y el ID se encuentra en una columna titulada "id" y el nombre en una columna titulada "Nombre", su consulta se verá así:
SELECT Name FROM [Users$] WHERE id = 1;
Espero que esto ayude.
Estoy usando MS Excel para obtener datos de una base de datos MySQL a través de ODBC.
Obtuve datos con éxito usando una consulta SQL. Pero ahora quiero que esa consulta se parametrice.
Entonces me pregunto si es posible usar un valor de celda (una celda de hoja de cálculo) como parámetro para dicha consulta.
Por ejemplo, para esta consulta:
select name from user where id=1
Me gustaría obtener el valor de identificación de, por ejemplo, la celda D4 en la hoja de cálculo.
¿Es ese el enfoque adecuado para parametrizar una consulta? y como puedo hacerlo?
Gracias.
Si está utilizando la consulta de Microsoft, puede agregar "?" a su consulta ...
seleccionar el nombre del usuario donde id =?
eso abrirá una pequeña ventana pidiendo la celda / datos / etc. cuando vuelva a Excel.
En la ventana emergente, también puede seleccionar "usar siempre esta celda como parámetro", eliminando la necesidad de definir esa celda cada vez que actualice sus datos. Esta es la opción más fácil.
Tuve el mismo problema que tú, Noboby puede entenderme, pero lo resolví de esta manera.
SELECT NAME, TELEFONE, DATA
FROM [sheet1$a1:q633]
WHERE NAME IN (SELECT * FROM [sheet2$a1:a2])
necesita insertar un parámetro en otra hoja, el SQL considerará esa información como base de datos, luego puede seleccionar la información y compararla en el parámetro que desee.
queryString = "SELECT name FROM user WHERE id=" & Worksheets("Sheet1").Range("D4").Value