Excel: используйте значение ячейки в качестве параметра для SQL-запроса

Я использую MS Excel для получения данных из базы данных MySQL через ODBC.
Я успешно получаю данные с использованием SQL-запроса. Но теперь я хочу, чтобы этот запрос был параметризован.
Поэтому мне интересно, можно ли использовать значение ячейки (ячейку электронной таблицы) в качестве параметра для такого запроса.
Например, для этого запроса:

select name from user where id=1 

Я хотел бы получить значение id из, скажем, ячейки D4 в электронной таблице.

Это правильный подход к параметризации запроса? и как я могу это сделать?

Благодарю.

У меня была такая же проблема, как и вы, Нобоби мог меня понять, Но я решил это таким образом.

 SELECT NAME, TELEFONE, DATA FROM [sheet1$a1:q633] WHERE NAME IN (SELECT * FROM [sheet2$a1:a2]) 

вам нужно вставить параметр в другой лист, SQL будет рассматривать эту информацию как базу данных, тогда вы можете выбрать информацию и сравнить ее с параметром, который вам нравится.

Если вы используете запрос microsoft, вы можете добавить «?» по вашему запросу …

выбрать имя от пользователя, где id =?

который выведет небольшое окно с запросом ячейки / данных / etc, когда вы вернетесь в Excel.

Во всплывающем окне вы также можете выбрать «всегда использовать эту ячейку в качестве параметра», исключающую необходимость определять эту ячейку каждый раз, когда вы обновляете свои данные. Это самый простой вариант.

 queryString = "SELECT name FROM user WHERE id=" & Worksheets("Sheet1").Range("D4").Value 

SQL похож на синтаксис MS SQL.

 SELECT * FROM [table$] WHERE *; 

Важно, чтобы имя таблицы заканчивалось знаком $, и все это было заключено в скобки. В качестве условий вы можете использовать любое значение, но до сих пор Excel не позволял мне использовать то, что я называю «SQL Apostrophes» (‘), поэтому рекомендуется заголовок столбца одним словом.

Если у вас есть пользователи, перечисленные в таблице под названием «Пользователи», а идентификатор находится в столбце «id» и имени в столбце «Имя», ваш запрос будет выглядеть так:

 SELECT Name FROM [Users$] WHERE id = 1; 

Надеюсь это поможет.

  • Указанный DSN содержит несоответствие архитектуры между Драйвером и Приложением. ЯВА
  • Как подключить pyodbc к файлу базы данных Access (.mdb)
  • Запрос ODBC не может быть выполнен, потому что он слишком сложный?
  • Давайте будем гением компьютера.