Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.06.2012, 15:30   #1
Wind-up Bird
Пользователь
 
Регистрация: 12.11.2011
Сообщений: 27
По умолчанию Создание SQL с переменными

Здравствуйте помоги создать запрос с переменными ([TempVars]![prol],[TempVars]![Model]). В конструкторе запросов такой код не обрабатывается.
Код:
INSERT INTO [TempVars]![prol] ( Модель, Описание, [Описание краткое], [Цена прайс], Preisgruppe, [Переход на PL], Скидка, [Коэффициент DDP], [Коэффициент VK] )
SELECT Оборудование.Модель, Оборудование.Описание, Оборудование.[Описание краткое], Оборудование.[Цена прайс], Оборудование.Preisgruppe, Preisgruppe.[Переход на PL], Preisgruppe.Скидка, Preisgruppe.[Коэффициент DDP], Preisgruppe.[Коэффициент VK]
FROM Preisgruppe INNER JOIN Оборудование ON Preisgruppe.Preisgruppe = Оборудование.Preisgruppe
WHERE (((Оборудование.Модель)=[TempVars]![Model]));
Не подставляет переменную [TempVars]![prol] в качестве названия таблицы. В VBA код:
Код:
Sub request_project()
Dim txtsql As String
Dim table_name, model_name
table_name = [TempVars]![prol]
model_name = [TempVars]![Model]
txtsql = "INSERT INTO "+table_name+" ( Модель, Описание, [Описание краткое], [Цена прайс], Preisgruppe, [Переход на PL], Скидка, [Коэффициент DDP], [Коэффициент VK] )
SELECT Оборудование.Модель, Оборудование.Описание, Оборудование.[Описание краткое], Оборудование.[Цена прайс], Оборудование.Preisgruppe, Preisgruppe.[Переход на PL], Preisgruppe.Скидка, Preisgruppe.[Коэффициент DDP], Preisgruppe.[Коэффициент VK]
FROM Preisgruppe INNER JOIN Оборудование ON Preisgruppe.Preisgruppe = Оборудование.Preisgruppe
WHERE (((Оборудование.Модель)="+model_name+"))"
CurrentDb.Execute txtsql
End Sub
выдает ошибку "Слишком мало параметров".
Wind-up Bird вне форума Ответить с цитированием
Старый 02.07.2012, 10:36   #2
gluk_fm
Форумчанин
 
Аватар для gluk_fm
 
Регистрация: 09.06.2011
Сообщений: 515
По умолчанию

Добрый день.
Я думаю попробуйте заменить знаки "+" на "&" и будет Вам счастье.
gluk_fm вне форума Ответить с цитированием
Старый 02.07.2012, 21:08   #3
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте Wind-up Bird.
1. в SQL конструкциях MS Access - запросах с параметрами, параметром может быть только передаваемое значение
никак не имя источника.
2. в коде объявлены переменные "Dim table_name, model_name" с типом Variant (нет явного указания типа),
судя по их именам в них помещаются текстовые значения (потому "..заменить знаки "+" на "&".." не поможет)
не вникая в конструкцию могу предположить что поле Оборудование.Модель тоже текстовое и потому
условие отбора нуждается в корректировке - текстовые значения заключаются в кавычки или апострофы
Если я прав, то достаточно сделать подобное исправление последней строки:
Код:
... WHERE Оборудование.Модель='"+model_name+"'"
так-же для возможности безбоязненно использовать + для конкатенации текстовых строк,
рекомендую явно указывать тип переменной и использовать проверку на NULL или конкатенацию
со строкой нулевой длины с применение амперсанда.
Код:
Dim table_name As String, model_name$ 'явное объявление текстовых переменных
table_name = [TempVars]![prol] & ""
Успехов Вам.
Евгений.

Последний раз редактировалось Teslenko_EA; 02.07.2012 в 21:45.
Teslenko_EA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание SQL Stranger333 SQL, базы данных 1 28.02.2010 18:50
Создание запроса SQL Irina_87 Помощь студентам 12 28.12.2009 06:14
SQL создание БД Best Programmist Microsoft Office Access 1 03.12.2009 17:14
Создание новых таблиц в MS SQL SERVERE через SQL запрос в Delphi S_Yevgeniy Помощь студентам 1 27.10.2009 06:26
Создание процедуры на SQL Skyline20000 SQL, базы данных 0 31.03.2009 16:57