powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Задать имя таблицы как параметр ....
4 сообщений из 4, страница 1 из 1
Задать имя таблицы как параметр ....
    #33351553
Чудик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Работаю из-под VB с mdb. Пытаюсь использовать динамический (параметрический) запрос. Попробовал назначить имя таблицы БД в качестве параметра, на что VB ругнулся.
Соответственно встал вопрос - можно ли в качестве параметра передавать имя таблиц.
У меня несколькотаблиц одинаковой структуры (данные складов) и мне необходимо провести суммарные расчеты, поэтому использую один и тот же алгоритм, меняя только имена таблиц. Скорость не удовлетворительная, поэтому решил попробовать для этого случая динамический запрос, но в результате, как сказал выше, ничего не получилось. Что можно сделать?

Set dbq = db.CreateQueryDef("", "PARAMETERS [ParamDate] Date," _
"[ParamIndex] text, [Virtual] text;" & vbNewLine & _
"SELECT TOP 1 * FROM [Virtual] WHERE [Data] <= [ParamDate] And [Index] =[ParamIndex] order by Data DESC, q DESC;")

dbq.Parameters("ParamIndex") = .TextMatrix(MyRow, 0) 'индекс продукта
dbq.Parameters("ParamDate") = md 'указанная база
dbq.Parameters("Virtual") = x 'переменная с именем базы
Set rsq = dbq.OpenRecordset
...
Рейтинг: 0 / 0
Задать имя таблицы как параметр ....
    #33352172
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если сделать так

Код: plaintext
1.
2.
3.
4.
5.
6.
Set dbq = db.CreateQueryDef("", "PARAMETERS [ParamDate] Date," _
"[ParamIndex] text;" & vbNewLine & _
"SELECT TOP 1 * FROM " & Virtual & " WHERE [Data] <= [ParamDate] And [Index] =[ParamIndex] order by Data DESC, q DESC;")

dbq.Parameters("ParamIndex") = .TextMatrix(MyRow,  0 ) 'индекс продукта
dbq.Parameters("ParamDate") = md 'указанная база
Set rsq = dbq.OpenRecordset
...
Рейтинг: 0 / 0
Задать имя таблицы как параметр ....
    #33352793
Чудик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Получается ты предлагаешь использовать обычную переменную для передачи в строку запроса имени таблицы? Но если запрос формируется только один раз (в начале процедуры), а параметры задаются в дальнейшем в различных циклах и участках кода, то как можно будет манипулировать сменой имени таблицы БД в таком запросе?
...
Рейтинг: 0 / 0
Задать имя таблицы как параметр ....
    #33353179
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я хотел сказать следующее

Чудик У меня несколькотаблиц одинаковой структуры (данные складов) и мне необходимо провести суммарные расчеты, поэтому использую один и тот же алгоритм, меняя только имена таблиц


public sub work(tablename as string)
dim strSQL as string
dim dbq as QueryDef

'здесь описаны действия которые тебе надо сделать
strSQL = "SELECT * FROM " & tablename
set dbq = db.CreateQueryDef("Запрос")
dbq.sql = strrSQL
set rsq = dbq.OpenRecordset

...

end sub

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


или что-то не так?
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Задать имя таблицы как параметр ....
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]