Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.79/38: Рейтинг темы: голосов - 38, средняя оценка - 4.79
euph0ria
0 / 0 / 0
Регистрация: 27.11.2010
Сообщений: 2
1

SQL запрос с параметром в Access, используя VBA

30.11.2010, 13:47. Просмотров 7040. Ответов 7
Метки нет (Все метки)

Здравствуйте, есть БД в Access. В ней таблица (каталог предложений) и форма (поиск), на которой пользователь должен выбрать параметры SQL запроса. И по нажатию кнопки должен выполниться SQL запрос. Файл БД прилагаю ниже.
Перерыл весь инет, пробовал различные коды, но постоянно ошибки, то синтаксиса, то Дебуги Помогите, заранее спасибо.
db1.zip
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2010, 13:47
Ответы с готовыми решениями:

Access 2007 запрос sql из VBA
Доброго дня. Начали делать базу. Столкнулся с задачей создания формы...

SQL запрос на добавление данных из VBA Excel в таблицу Access
Добрый день, форумчане! Столкнулся с ошибкой запроса на добавление при попытке...

SQL запрос в vba
В общем есть запрос на обновление: UPDATE student SET student.N_gr =...

SQL-запрос на выборку в VBA
Здравствуйте! Есть такой запрос SQLText = "SELECT tblTreaty.TreatyID,...

SQL запрос в VBA Excel
Добрый день! Прошу помощи... Создал SQL запрос. Вырезка: Select Case...

7
Helen_fire
203 / 42 / 6
Регистрация: 15.10.2010
Сообщений: 125
30.11.2010, 15:21 2
для одного варианта, даже не заморачиваясь делается так И SQl не надо
0
Вложения
Тип файла: zip db1.zip (100.4 Кб, 147 просмотров)
Helen_fire
203 / 42 / 6
Регистрация: 15.10.2010
Сообщений: 125
30.11.2010, 15:36 3
А если так принципиален SQL, то вводите в форму список и результат запроса выводите в нее так:

Visual Basic
1
2
3
4
 НазвСписка.RowSource = "SELECT текст запроса (что) " & _
    "FROM тескт запроса (откуда)" & _
    "GROUP BY текст запроса (что группируем)" & _
"HAVING Каталог_предложений.Марка Like Forms!Поиск!Pole47;"
0
euph0ria
0 / 0 / 0
Регистрация: 27.11.2010
Сообщений: 2
30.11.2010, 19:11 4
Helen_fire, спасибо большое. А если у меня несколько вариантов марок авто? И если я еще добавлю таки параметры как модель, цвет и т.д. Тогда без SQL не обойтись? И что тогда будет здесь?
"HAVING Каталог_предложений.Марка Like Forms!Поиск!Pole47;"
0
Lupus
23 / 23 / 4
Регистрация: 13.03.2011
Сообщений: 326
24.03.2011, 03:16 5
Visual Basic
1
2
БД.Open Source:="SELECT * FROM Documents WHERE (Ssilka_na_Pole = " & Nomer & ") AND (Document = " & Name & ")", ActiveConnection:=Соединение, _
        CursorType:=adOpenKeyset, LockType:=adLockOptimistic, Options:=adCmdText
Вроде корректный запрос, но пишет "Отсутствует значение для одного или нескольких требуемых параметров".
Проблема в части
Visual Basic
1
AND (Document = " & Name & ")"
Стоит её убрать, всё работает.
Поле Document существует, значение в нем равно Name, написано англ. буковками.
0
Helen_fire
203 / 42 / 6
Регистрация: 15.10.2010
Сообщений: 125
24.03.2011, 15:09 6
Дело здесь не в буковках - проблема решится, если разделить текст запроса на несколько текстовых переменных:

Visual Basic
1
2
3
4
5
Dim s1$,s2$,s3$,s4$
s1=SELECT * FROM Documents WHERE (Ssilka_na_Pole = " & Nomer & ") AND (Document = " 
s2=""""
s3= "Name"
s4=")"
После чего собрать текст запроса:

Visual Basic
1
.CommandText =s1 & s2 & s3 & s2 & s4
Попрбуйте так.Должно работать. У Вас Name не опознается SQL как параметр выбора текстового поля.
1
Busine2009
Заблокирован
25.03.2011, 17:05 7
В одинарные кавычки нужно помещать текст в WHERE:
Visual Basic
1
2
НаборЗаписей.Open Source:="SELECT * FROM Таблица1 WHERE Ssilka_na_Pole='" & Nomer & "' AND Document='" & Name & "';", _
    ActiveConnection:=Соединение, CursorType:=adOpenKeyset, LockType:=adLockOptimistic
1
Lupus
23 / 23 / 4
Регистрация: 13.03.2011
Сообщений: 326
25.03.2011, 21:16 8
Цитата Сообщение от Busine2009 Посмотреть сообщение
В одинарные кавычки нужно помещать текст в WHERE
Точно!
Вариант Helen_fire как раз из этого и вытекает:
в s2 одну двойную кавычку можно удалить, а в s3 обе удалить, ибо Name - переменная.
0
25.03.2011, 21:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2011, 21:16

Не работают VBA функции в SQL запросе к БД в Access
Уважаемые форумчане! В Аccess был написан запрос, использующий несколько ...

Как программно создать запрос в VBA Access?
Помогите пожалуйста. Мне нужно программно создать запрос, и открыть его как...

Запрос SQL в Excel VBA к файлу dbf
Помогите пожалуйста начинающему. Есть задача: нужно в VBA из файла dbf данные...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru