|
|
|
ADO рекордсет как источник формы: как сделать клон?
|
|||
|---|---|---|---|
|
#18+
Не знаю. Вот так вот у меня работает - в mdb с ADO. И фильтрация нормально учитывается, и сортировка, и выделение Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. Писалось быстро на коленке, сильно не смеяться :) З.Ы. Может действительно лучше использовать DAO и запросы к серверу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 17:46:38 |
|
||
|
ADO рекордсет как источник формы: как сделать клон?
|
|||
|---|---|---|---|
|
#18+
Я не вижу компактного решения для использования запроса к серверу в клонированной форме. Либо такой запрос должен возвращать все записи с сервера, а сабформу вешать на линк - работает медленно и моргает при прокрутке, либо в запрос надо вписывать параметры, тогда он не годится как источник клонированной формы. Не для клонов, и там, где не требуется редактирование, я второй вариант и использую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 18:05:12 |
|
||
|
ADO рекордсет как источник формы: как сделать клон?
|
|||
|---|---|---|---|
|
#18+
У меня так не получается, на форме есть еще пачка параметров настройки, которые влияют на выведение информации в сабформе, значит, мне нужно по требованию обновлять набор записей (кроме прописывания его при открытии), а я не умею, не получается, держать открытое соединение. Даже если я декларирую conn как Public, все равно в процедурах его значение Nothing. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 19:12:51 |
|
||
|
ADO рекордсет как источник формы: как сделать клон?
|
|||
|---|---|---|---|
|
#18+
Почему-то у меня не получается держать открытый рекордсет на уровне формы. Когда управление переходит к другой процедуре, рекордсет оказывается Nothing. Поэтому сумму в приведенном примере посчитать невозможно. Что я делаю неправильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 20:22:19 |
|
||
|
ADO рекордсет как источник формы: как сделать клон?
|
|||
|---|---|---|---|
|
#18+
Поднимаю тему. Почему в модуле формы переменная, определенная на уровне формы, не имеет значения по завершении работы процедуры, в которой значение было присвоено? Так и должно быть и в приведенном здесь примере ошибка, или я просто что-то делаю неправильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2004, 10:55:56 |
|
||
|
ADO рекордсет как источник формы: как сделать клон?
|
|||
|---|---|---|---|
|
#18+
Имеется в виду переменная mrstClone? Возможно, потому, что она объявлена как private, а в модуле, из которого ведется проверка ее содержимого, нет строки Option Explicit ? Т.е. там эта переменная не находится и соответственно создается as variant. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2004, 11:02:24 |
|
||
|
ADO рекордсет как источник формы: как сделать клон?
|
|||
|---|---|---|---|
|
#18+
Ой, myrstclone - это йййй. Ну не важно, все равно возможно по этой причине. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2004, 11:04:10 |
|
||
|
ADO рекордсет как источник формы: как сделать клон?
|
|||
|---|---|---|---|
|
#18+
У меня объявлено как Public и эта опция есть, но все равно по жизни как то у меня ни разу не получилось (к своему стыду) использовать в форме значение глобальной переменной в разных процедурах. Проблема не только в этом примере. Значение пусто, если в текущей процедуре оно не присвоено. Вот такой у меня пробел в знаниях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2004, 11:16:37 |
|
||
|
ADO рекордсет как источник формы: как сделать клон?
|
|||
|---|---|---|---|
|
#18+
В форме напиши: Код: plaintext 1. 2. 3. 4. В другом модуле напиши Код: plaintext 1. 2. Нажми Ctrl-G, напиши aaa Нажми Enter. Название переменной надо предварять обращением к форме. Можно вместо Forms("Форма1") писать Form_Форма1 (см faq по экземплярам, п 4.3.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2004, 11:24:04 |
|
||
|
ADO рекордсет как источник формы: как сделать клон?
|
|||
|---|---|---|---|
|
#18+
То, что я привел - это модуль подчиненной формы. Адын в адын. Усе работает. В ней есть Private-переменная mrstClone. Открывается этот рекордсет при открытии формы. Пока форма не закрыта - рекордсет есть. Снаружи он не виден (потому как Private), если надо к нему вне формы обращаться - сделайте Public Property Наверное можно и не держать постоянно этот рекордсет, вместо него использовать конструкцию Set mrstClone = Me.Recordset.Clone или Set mrstClone = Me.RecordsetClone Главное - скопировать строку фильтра и строку сортировки с формы в этот рекордсет, тем самым добиться от ADO-шного клона поведения, изначально присутствующего в формах на DAO-шных рекордсетах. По поводу всего остального: Я не вижу компактного решения для использования запроса к серверу в клонированной форме Не понял. Что такое клонированная форма? на форме есть еще пачка параметров настройки, которые влияют на выведение информации в сабформе, значит, мне нужно по требованию обновлять набор записей (кроме прописывания его при открытии) Не понял - как это связано с ADO или DAO? ADO-рекордсет (в качестве источника формы) у вас сам все параметры просекает и сам обновляется? Не верю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2004, 13:51:05 |
|
||
|
ADO рекордсет как источник формы: как сделать клон?
|
|||
|---|---|---|---|
|
#18+
На AfterUpdate параметров повторяется загрузка рекордсета из процедуры. А на OnOpen подчиненной формы у меня вообще невозможно процедуру запустить, потому что (почему, не знаю) у клонированной формы материнской Unbound'ы с параметрами еще не нарисовались и обращение к ним вызывает ошибку(. Клоны форм - вот только что фигурировала ссылка http://www.sql.ru/faq/faq_topic.aspx?fid=240 А вообще подробно описано у Гетца. Может быть у меня такая проблема с глобальной переменной именно потому, что форма клонированная и по сути безымянная? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2004, 15:06:32 |
|
||
|
ADO рекордсет как источник формы: как сделать клон?
|
|||
|---|---|---|---|
|
#18+
Пытался сотворить все то же самое для DAO.Recordset на основе хп с параметрами. Что-то не вышло ни фига Создаю временную QueryDef, устанавливаю св-во Connect, в SQL пишу вызов хп и значения параметров, открываю DAO рекордсет, вешаю на него форму, пока все ок. Как только пытаюсь сортировать или фильтровать - "не существует источник записей sp_test 1" Чета я наверное не то делаю? Но ADO-шный вариант у меня все равно работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2004, 19:00:57 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32611928&tid=1673065]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 239ms |
| total: | 390ms |

| 0 / 0 |
