|
|
|
Как живет переменная типа рекордсурса
|
|||
|---|---|---|---|
|
#18+
Моих дурных вопросов здесь уже разрешили несколько, хочу задать еще один. Есть форма, работает только в виде клона. Есть процедура, которая их открывает, отдельный экземпляр для каждого заказчика. АДО-рекордсет создается при открытии и присваивается источнику подчиненной формы табличного вида. Для сумматора по выделению мне нужна копия этого рекордсета, не сам источник формы, иначе не сохранится экранное выделение. Если я открываю тождественный рекордсет в модуле формы, в переменной, задекларированной Public, все нормально. Но мне приходится открывать это рекордсет лишний раз, при первом обращении к нему в форме. Но получить доступ к тому рекордсету, который был использован в процедуре создания клона и его источника у меня не получается. Где моя ошибка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2004, 18:27:52 |
|
||
|
Как живет переменная типа рекордсурса
|
|||
|---|---|---|---|
|
#18+
Поднимаю тему. Не получается у меня обеспечить доступ процедурам в модуле формы к рекордсету, открываемому во внешнем модуле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2004, 11:09:32 |
|
||
|
Как живет переменная типа рекордсурса
|
|||
|---|---|---|---|
|
#18+
ниче не понятно может, я плохой телепят? откуда куда пытаетесь обратиться, и где и что не работает? и как не работает? какой-такой рекордсет лишний раз? что за внешний модуль? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2004, 11:14:11 |
|
||
|
Как живет переменная типа рекордсурса
|
|||
|---|---|---|---|
|
#18+
трудно что-то сказать определенное по такому описанию. надо бы код глядеть... может быть Set MyRec = SubFormControl.Form.Recordset.Clone ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2004, 11:15:23 |
|
||
|
Как живет переменная типа рекордсурса
|
|||
|---|---|---|---|
|
#18+
ADO-рекордсет, открытый через выполнение сохраненной процедуры, нельзя клонировать. До того, как источник этой формы переехал на SQL-сервер, Код: plaintext Я открываю не клон рекордсета, а его вторую копию. Происходит это так. Сейчас я делаю это в модуле формы при первой попытке обращения, по ошибке, ясно, что это изврат. Открыть его на OnOpen не удается, потому что источник загружается внешней процедурой, на этот момент все подходящие события формы уже отработали. Процедура, открывающая клон формы: Код: 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. Процедура, вызываемая при окрытии формы и при изменении параметров настройки: Код: 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. Переменная определена во внешнем модуле Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2004, 11:36:36 |
|
||
|
Как живет переменная типа рекордсурса
|
|||
|---|---|---|---|
|
#18+
Во внешнем модуле: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2004, 11:42:03 |
|
||
|
Как живет переменная типа рекордсурса
|
|||
|---|---|---|---|
|
#18+
Andres 1Во внешнем модуле: Код: plaintext 1. Упс. Не так понял :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2004, 11:43:01 |
|
||
|
Как живет переменная типа рекордсурса
|
|||
|---|---|---|---|
|
#18+
все очень странно вот это DoCmd.SelectObject colFormsInfoCtr.Item(Frm.hwnd & "") 'DoCmd.MoveSize (mintI + 1) * 80, (mintI + 1) * 350 DoCmd.OpenForm stDocName, , , , , acHidden я не понял зачем нужно - это я бы просто выкинул ("процедура открытия клона") Да и серверный курсор в паре с MSDataShape - для меня необычно... я бы на клиентский поменял... кажется в чистом результате - перепутывание форм происходит... есть ли проблема собственно с рекордсетом - сходу не скажу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2004, 11:54:24 |
|
||
|
Как живет переменная типа рекордсурса
|
|||
|---|---|---|---|
|
#18+
Ольга_ТADO-рекордсет, открытый через выполнение сохраненной процедуры, нельзя клонировать. эээ... а почему нельзя? честно говоря не понял - как у вас несколько экземпляров формы будут работать с одним публичным рекордсетом. может в форме Public Property сделать? З.Ы. А что не работает - так и не понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2004, 11:57:30 |
|
||
|
Как живет переменная типа рекордсурса
|
|||
|---|---|---|---|
|
#18+
Лох Позорный эээ... а почему нельзя? Код: plaintext Код: plaintext 1. А можно ли заслать значение локальной переменной в модуль формы, когда она открыта? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2004, 12:20:04 |
|
||
|
Как живет переменная типа рекордсурса
|
|||
|---|---|---|---|
|
#18+
Ольга_ТМожет,в 2002 этих пробем нет, но мы пока в 2000. Да я вообще-то про ADO говорил, а ему вроде как пофигу из какой версии аксеса его используют. На всякий случай проверил с рекордсетом формы. В 2002 все клонируется. ADO вообще версии 2.1 Ольга_ТА можно ли заслать значение локальной переменной в модуль формы, когда она открыта? Public Property Let Public Property Set Хотя применительно к клону рекордсета - я бы саму форму и заставлял бы внутри Property Get его создавать (если еще не создано). Разумеется если рекордсет формы удастся таки отклонировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2004, 12:29:31 |
|
||
|
Как живет переменная типа рекордсурса
|
|||
|---|---|---|---|
|
#18+
[quot Ольга_Т Код: plaintext [/quot] количество записей -1 патамушта CursorLocation=adUseServer Код: plaintext 1. А можно ли заслать значение локальной переменной в модуль формы, когда она открыта?[/quot] заслать - проперти Let\Set написать в модуле формы Public Property Set SetObjValue(tValue As myObj) set ObjVar = tValue End Property и пользовать "снаружи".. 2ЛП "Глобального" рекордсета здесь не просматривается глюки формы, если есть - связаны с "нестандартностью" провайдера, скорее всего... До рекордсета все равно должно бы можно достучаться... (русскага язЫка не знаю) Скорее всего, в результате перепутывания экземпляров форм происходит обращение к форме с неустановленным рекордсетом... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2004, 12:31:11 |
|
||
|
Как живет переменная типа рекордсурса
|
|||
|---|---|---|---|
|
#18+
патамушта2ЛП "Глобального" рекордсета здесь не просматривается Как это? А это что тогда: Ольга_ТВот к rst, определяемом в последней процедуре я хотела бы иметь доступ из модуля формы, но не могу этого добиться. Переменная определена во внешнем модуле Код: plaintext 1. 2. 3. глюки формы, если есть - связаны с "нестандартностью" провайдера, скорее всего... Кстати мысль. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2004, 12:36:00 |
|
||
|
Как живет переменная типа рекордсурса
|
|||
|---|---|---|---|
|
#18+
2 ЛП хи - не разглядел... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2004, 12:41:51 |
|
||
|
Как живет переменная типа рекордсурса
|
|||
|---|---|---|---|
|
#18+
а не разглядел - патамушта человек говорит - это то, чего мне не надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2004, 12:43:11 |
|
||
|
Как живет переменная типа рекордсурса
|
|||
|---|---|---|---|
|
#18+
щас недосуг разбираться с параметрами - там как будто функцией их можно обрабатывать... если сильно торопиться, сделал бы (попробовал), наверно так - в форме для клонирования 1) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. "авторский код" превращается в 2) Код: 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. код модуля формы превратил бы примерно в такое 3) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2004, 13:38:47 |
|
||
|
Как живет переменная типа рекордсурса
|
|||
|---|---|---|---|
|
#18+
должно быть что-то такое: pFrm.HistoryCtrEventsF.Form.RecordSource = "HistoryCtrEventsP " pFrm.HistoryCtrEventsF.Form.InputParameters="@Param1=" & pCtrID & _ ", @param2=" & CStr(Abs(OpShowBills)) & _ ", @param3=" & CStr(Abs(OpShowOfftake)) & _ ", @param4=" & CStr(Abs(OpShowProj)) & _ ", @param5=" & CStr(Abs(OpShowCurr)) где @param1...5 - именя формальных параметров процедуры ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2004, 14:27:03 |
|
||
|
Как живет переменная типа рекордсурса
|
|||
|---|---|---|---|
|
#18+
Спасибо, я, кажется, справилась. Проблема с невидимостью рекордсета была в лишней декларации этой переменной, нечаянно забытой. Сформировать дубликат рекордсета для подчиненной формы клона мне удалось через вызов открывающей внешней процедурой процедуры из модуля субформы. Рекордсет в переменной, глобальной на уровне клона. Все тормоза с загрузкой записей с сервера только при открытии, открытая форма считает все мгновенно. Осталась одна проблема с фильтрованием этого рекордсета. Событие формы ApplyFilter у меня отрабатывает и все действия по дубликату рекордсета проходят правильно, а вот сброс фильтра через панель инструментов мне отловить не удалось. С формы фильтр сбрасывается, а события никакого, на которое можно было бы повесить симметричные действия с дубликатом рекордсета, нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2004, 14:36:05 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32681469&tid=1671965]: |
0ms |
get settings: |
5ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
17ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 293ms |

| 0 / 0 |
