
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
15.08.2003, 16:32
|
|||
|---|---|---|---|
|
|||
как передать запросу имя таблицы параметром? |
|||
|
#18+
То есть существует несколько схожих групп таблиц. Как избежать написание нескольких одинаковых запросов (по запросу для каждой группы), которые будут отличаться только именами таблиц? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.08.2003, 16:35
|
|||
|---|---|---|---|
|
|||
как передать запросу имя таблицы параметром? |
|||
|
#18+
Надо полагать, что "схожие" есть "одинаковые" Отсюда вопрос: почему бы не завести одну таблицу и не парить мозги ни себе не людям? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.08.2003, 16:43
|
|||
|---|---|---|---|
|
|||
как передать запросу имя таблицы параметром? |
|||
|
#18+
Хороший топик. Я сам когда-то задавался таким вопросом (у меня годовые таблицы разные, различие в названии - год). Ответа не нашел. Но можно используя команду Execute или напрямую используя переменную: set Tbl=currentdb.openrecorbset(SQLStr,dbOpenDynaset) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.08.2003, 16:44
|
|||
|---|---|---|---|
|
|||
как передать запросу имя таблицы параметром? |
|||
|
#18+
Дело в том, что под группой понимается куча таблиц с разной структурой (в каждой группе по 15 разных таблиц). Склеивать соответствующие (одинаковые по полям) таблицы разных групп (для того, чтобы забабахать обработку всего массива одним запросом) нельзя в силу нарушения логики информации. Посему - подскажите пожалуйста, как передать запросу имена таблиц параметрами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.08.2003, 16:49
|
|||
|---|---|---|---|
как передать запросу имя таблицы параметром? |
|||
|
#18+
Можно, например, программно редактировать текст запроса. Или, еще проще, сделать промежуточный запрос select * from mytable1, в твоем запросе ссылаться на него, а при изменении таблицы просто подменять этот запрос на select * from mytable2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.08.2003, 16:49
|
|||
|---|---|---|---|
|
|||
как передать запросу имя таблицы параметром? |
|||
|
#18+
Сорри я не заметил слово "групп" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.08.2003, 16:50
|
|||
|---|---|---|---|
как передать запросу имя таблицы параметром? |
|||
|
#18+
Как Параметром не знаю. А переопределить SQL запроса программно можно с помощью QueryDefs ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.08.2003, 16:59
|
|||
|---|---|---|---|
|
|||
как передать запросу имя таблицы параметром? |
|||
|
#18+
Если под запросом понимать сохраненный запрос, то, видимо, никак. А если по запросом понимать строку с SQL-запросом, то ответ очевиден. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.08.2003, 17:59
|
|||
|---|---|---|---|
|
|||
как передать запросу имя таблицы параметром? |
|||
|
#18+
А что мешает програмно менять текст сохранённого запроса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.08.2003, 18:03
|
|||
|---|---|---|---|
|
|||
как передать запросу имя таблицы параметром? |
|||
|
#18+
Если ты имеешь ввиду написать сколько нужно запросов и подставлять их, то этот вариант не отвечает на вопрос: Как избежать написание нескольких одинаковых запросов (по запросу для каждой группы), которые будут отличаться только именами таблиц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.08.2003, 18:22
|
|||
|---|---|---|---|
|
|||
как передать запросу имя таблицы параметром? |
|||
|
#18+
Есть решение. Код: plaintext 1. 2. 3. Правда, у него куча недостатков: 1. Работает медленно. 2. Требует наличия ключа в каждой из таблиц, причем во всех таблицах ключ должен состоять из одинакового числа полей (в моем примере поле одно и оно названо cou). 3. Выдает нередактируемый набор данных. На мой взгляд, решение Geo от 16:49 лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.08.2003, 18:35
|
|||
|---|---|---|---|
|
|||
как передать запросу имя таблицы параметром? |
|||
|
#18+
На всякий случай расшифровываю. Если подставить, например, p=1, то запрос сработает так, как будто написано: Код: plaintext 1. 2. То есть для каждой записи таблицы t1 будет выдана одна запись, и в ней соответствующие поля той же таблицы. Таблицы t2 и t3 приплетены почем зря - на скорость действия запроса влияют, а в конечном результате не участвуют. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.08.2003, 20:54
|
|||
|---|---|---|---|
как передать запросу имя таблицы параметром? |
|||
|
#18+
возможно повторю кого-нибудь: *сформировать в VBA строку запроса SSS, где вместо имен таблиц - строковые переменные. в нужном месте присвоить переменным нужные значения - имена таблиц далее удаляется запрос(ы) ХХ далее (не помню точно текст команд) сохраняется запрос под именем ХХ полученный с помощью строки SSS. запускается отчет или форма на основании запроса ХХ. форма или отчет могут использоваться до тех пор пока не произойдут действия* если имена таблиц отличаются только годом строку SSS можно формировать испоьзуя только один параметр - год. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.08.2003, 00:12
|
|||
|---|---|---|---|
|
|||
как передать запросу имя таблицы параметром? |
|||
|
#18+
Еще один недостаток моего решения. Оказалось, что если в одной из таблиц нет данных, то этот запрос всегда возвращает 0 записей. Для компенсации предлагаю (это первая версия, ее можно совершенствовать) создать таблицу OneLine той же структуры, что и t1, t2, t3, но с гарантированной одной записью, причем дать ключу значение, которое в настоящих данных не встречается, и писать так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. *** А вот совсем другое решение, гораздо более простое. 1. Делаем запрос, называем его U: Код: plaintext 1. 2. 3. 4. (Вместо * можно перечислить нужные поля.) 2. Делаем второй запрос: Код: plaintext 1. И это все, и оно работает без проблем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.08.2003, 14:25
|
|||
|---|---|---|---|
|
|||
как передать запросу имя таблицы параметром? |
|||
|
#18+
Ко второму решению вариант: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Во-первых, одним запросом, во-вторых, в параметр передается именно имя таблицы, как и было заказано, а не номер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=45&mobile=1&tid=1679891]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 226ms |
| total: | 364ms |

| 0 / 0 |
