Подтвердить что ты не робот

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

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

select name from user where id=1

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

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

Спасибо.

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

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

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

Ответ 3

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

Ответ 4

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

SELECT * FROM [table$] WHERE *;

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

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

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

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