|
|
|
Программно удалить запрос
|
|||
|---|---|---|---|
|
#18+
Нужно динамически менять запрос. Решил удалять и снова создавать. Создать-то создал, а как удалить не знам..... Помогите бедняжке.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2004, 20:10:50 |
|
||
|
Программно удалить запрос
|
|||
|---|---|---|---|
|
#18+
Удалить: CurrentDb.QueryDefs.Delete "myquery" Изменить: CurrentDb.QueryDefs!myquery.SQL = "select * from mytable" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2004, 20:13:42 |
|
||
|
Программно удалить запрос
|
|||
|---|---|---|---|
|
#18+
А зачем запрос, который надо удалять???? не проще через DoCmd.RunSQL ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2004, 20:21:07 |
|
||
|
Программно удалить запрос
|
|||
|---|---|---|---|
|
#18+
Тогда уже не DoCmd.RunSQL, а DoCmd.Execute. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2004, 20:24:17 |
|
||
|
Программно удалить запрос
|
|||
|---|---|---|---|
|
#18+
Я имел в виду вообще не создавать запрос, а выполнить SQL из модуля. создание и удаление объектов медленные операции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2004, 20:36:43 |
|
||
|
Программно удалить запрос
|
|||
|---|---|---|---|
|
#18+
Лично я так и понял. :^) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2004, 20:47:05 |
|
||
|
Программно удалить запрос
|
|||
|---|---|---|---|
|
#18+
У меня отчет на основе запроса... А условие запроса надо менять... Во как.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2004, 20:33:57 |
|
||
|
Программно удалить запрос
|
|||
|---|---|---|---|
|
#18+
Так зачем его (запрос) удалять - пусть живет. Просто каждый раз, когда он тебе нужен, обращаешься к нему и меняешь ему SQL: Dim db as Database: Set db = CurrentDb Dim qd as QueryDef: Set qd= sb.QueryDef("MyQuery") qd.SQL = "SELECT ..." и все - получаешь новый запрос со своими сритериями ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2004, 20:54:44 |
|
||
|
Программно удалить запрос
|
|||
|---|---|---|---|
|
#18+
Посмотри на свойства: ServerFilter и Filter Это тебе скорее всего поможет и ничего изменять и удалять не придется. BTW: вместо того, чтобы перезаписывать текст зароса - гораздо лучше использовать его (запрос) вместо таблицы в SQL запросе. Как я понимаю - Query для Access это некий аналог VIEW для остальных БД. Пример: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2004, 21:14:51 |
|
||
|
Программно удалить запрос
|
|||
|---|---|---|---|
|
#18+
Я все-же за то, чтобы переписывать запрос - это более динамично и, чаще, работает быстрее фильтрации и сортировки. В новый текст запроса можно вставить вообще другой текст, базирующийся на других или на дополнительных таблицах. Попробуй то же самое сделать фильтрами - придется написать еще несколько запросов, а так только один - динамический ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2004, 21:56:00 |
|
||
|
Программно удалить запрос
|
|||
|---|---|---|---|
|
#18+
У этого подхода есть как плюсы так и минусы... Например: если этот запрос использует несколько форм/отчетов - то его переписывание приведет к чему угодно, кроме предсказуемой работы. А SQL текст можно и не в запрос писать а сразу в Report.RecordSource - какая разница куда строку записывать... Опять же... для тренировки остроты зрения: ServerFilter и Filter - сервер фильтр не должен работать СИЛЬНО медленнее перезаписанного запроса. Будет медленнее - если запросу требуется оптимизация сама по себе... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2004, 22:11:30 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32559496&tid=1673886]: |
0ms |
get settings: |
5ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
163ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 195ms |
| total: | 431ms |

| 0 / 0 |
