|
|
|
Синхронизация SubForm
|
|||
|---|---|---|---|
|
#18+
Иммем таблицу Table1 с ключом Key1 На форме ParentForm TabCtrl1 а на ее страницах SubF1 и SubF2, которые оба опираються на таблицу Table1 ( ТО есть представляють разные части той же записи ). После вода в поле SubF1.LastField1 нужно перейти на форму SubF2.FirstField1 . значение ключа Key1 определяеться в SubF1 . Переходя на SubF2 должны стоять на том же записи. Сделал так : m_IsFromSubF1 as Boolean Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Но она иногда выдает ошибку. Как будто DoCmd работает не для SubF2 Формы. Потому как под Debug всегда правильно работает, Может для активации SubForm нехватит только устанавить на них фокус ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2004, 08:48 |
|
||
|
Синхронизация SubForm
|
|||
|---|---|---|---|
|
#18+
Прошу прошения . в строке Код: plaintext 1. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2004, 08:51 |
|
||
|
Синхронизация SubForm
|
|||
|---|---|---|---|
|
#18+
авторnKey = rs.Fieds("ID") DoCmd.GoToRecord ,, acGoTo , nKey DoCmd.GoToRecord ,, acGoTo , nKey - переходит на запись с номером nKey, считая по порядку в выбранном подмножестве nKey = rs.Fieds("ID") - nKey присваивается значение ключа! Создается впечатление, что у вас в выборка всегда отсортирована по ID и что самое страшное, всегда первым идет запись с ID = 1 (существует в выборке) и всегда без "пробелов" (т.е. в выборке из трех записей ID будет 1, 2, 3; а не 1, 3, 4 - например) Откуда такая уверенность? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2004, 09:29 |
|
||
|
Синхронизация SubForm
|
|||
|---|---|---|---|
|
#18+
попробуй просто синхронизировать закладки форм sub2.form.bookmark = sub1.form.bookmark ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2004, 09:39 |
|
||
|
Синхронизация SubForm
|
|||
|---|---|---|---|
|
#18+
Да это именно так. Свойство SubForm.DATA определена на Table1 , который имеет отношение с основной таблицей с основным ключом. Так что каждая подтаблица определена на множестве , состоящей именно из таких записей ( последовательных ) Они создаються внутри одной транзакции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2004, 09:45 |
|
||
|
Синхронизация SubForm
|
|||
|---|---|---|---|
|
#18+
Я просто не знаю, какую функцию выполняют закладки. Они включают параллельное соответствие ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2004, 09:47 |
|
||
|
Синхронизация SubForm
|
|||
|---|---|---|---|
|
#18+
авторОни создаються внутри одной транзакции. Это не гарантирует что в таблице будут именно последовательные значения поля ID без дыр т.к. есть: - Удаление (можно и из середины) - Откат транзакции (если поле типа счетчик, то после отката транзакции следующие ID не будут последовательны) PS: это только то, что на вскидку вспомнил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2004, 09:49 |
|
||
|
Синхронизация SubForm
|
|||
|---|---|---|---|
|
#18+
То есть перемещение SubForm1.recordset приведет к аналогичного перемещения SubForm2.recordset ?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2004, 09:49 |
|
||
|
Синхронизация SubForm
|
|||
|---|---|---|---|
|
#18+
2 paparome Я понимаю. Здесь важно, чтобы ключи с конкретным значением находились на одном расстоянии от начала. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2004, 09:52 |
|
||
|
Синхронизация SubForm
|
|||
|---|---|---|---|
|
#18+
авторЯ просто не знаю, какую функцию выполняют закладки. Они включают параллельное соответствие ? Закладки они и есть закладки - как вам объяснить :( Просто заменить свое Set rs = me.Parent.TabCtrl1.Pages(1).Controls("SubF1").Recordset nKey = rs.Fieds("ID") DoCmd.GoToRecord ,, acGoTo , nKey на то что АлексейК предложил, и посмотрите, что получиться! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2004, 09:52 |
|
||
|
Синхронизация SubForm
|
|||
|---|---|---|---|
|
#18+
Хорошо , попробую. То есть Recordset 2 формы устанавливаеться на позицию Recordset 1 формы ? Что то такое ? И его можно использовать без ограничении ? Или при каких то условиях может не срабатывать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2004, 09:56 |
|
||
|
Синхронизация SubForm
|
|||
|---|---|---|---|
|
#18+
авторИли при каких то условиях может не срабатывать ? Может не сработать, если rs по сути своей не одинаковы, но как у вас - должно сработать (одинаковые записи в обеих rs, только разные поля одной и той же таблицы) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2004, 10:16 |
|
||
|
Синхронизация SubForm
|
|||
|---|---|---|---|
|
#18+
авторСпасибо Помогло? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2004, 10:29 |
|
||
|
Синхронизация SubForm
|
|||
|---|---|---|---|
|
#18+
Это дома попробую. Кстати , ведь так выходит, что мы настраиваем SubForm2.recordset на ту же запись что и SubForm1.recordset. А как мы можем изменять програмно SubForm1.recordset? Ведь мне надо находясь на SubForm2 , перейти ( я это делал с помощью SetFocus ) на SubForm1 , притом на следующую запись,( если оно есть конечно) То есть надо же сделать Код: plaintext 1. 2. Правда я не пробовал вариант Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2004, 11:07 |
|
||
|
Синхронизация SubForm
|
|||
|---|---|---|---|
|
#18+
Машу вать!!! - Да зачем вам фокус с одной SubF на другую перекидывать? - Что DoCmd срабатывал на активном объекте. - И где вы в примере АлексеяК DoCmd увидили? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2004, 11:11 |
|
||
|
Синхронизация SubForm
|
|||
|---|---|---|---|
|
#18+
Пример Алексея подразумевает, что переход с одной подформы в другую будет по выбору пользователья. А мне надо, чтобы при LostFocus- e TextBox -a yf SubForm2 Автоматически перешли опять на SubForm1 при том на следующую запись :-)) н сердись ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2004, 11:18 |
|
||
|
Синхронизация SubForm
|
|||
|---|---|---|---|
|
#18+
- переключить вкладку у родителя - передать фокус не контролу SubF1, а его первому TextBox что-то типа: call me.parent.subf1.form.textbox_first.setfocus - сделать DoCmd.GoToRecord ,,acNext (и быть готовым, что выдаст ошибку, что следующего нет, т.к. этот последний!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2004, 11:31 |
|
||
|
Синхронизация SubForm
|
|||
|---|---|---|---|
|
#18+
делаете из мухи слона вот весь код Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2004, 12:23 |
|
||
|
Синхронизация SubForm
|
|||
|---|---|---|---|
|
#18+
2 paparome Во первых не [Next] а по конкретному значению из имеющегося множества. Во вторых - я точно так написал, то есть - Установил фокус на textbox c TabIndex =0 1. me.parent.subf1.form.textbox_first.setfocus 2. DoCmd.GoToRecord ,,acGoto, nID Так вопрос не в том, что recordset не устанавливаеться, а в том, что после 1. как будто пока subf1 не являеться текущей. Когда через Debug проверяю, я меняю очередность установки фокуса и это может стать причиной, что работает нормально. А без Debug 2. команда фактически выполняеться не в том контексте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2004, 14:34 |
|
||
|
Синхронизация SubForm
|
|||
|---|---|---|---|
|
#18+
прошу извинения. DoEvents -Она переключает выполнении на очередь сообщении ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2004, 14:42 |
|
||
|
Синхронизация SubForm
|
|||
|---|---|---|---|
|
#18+
авторDoEvents -Она переключает выполнении на очередь сообщении ? Мудрено для моего понимания завернул :( Я бы сказал так: Дает выполниться прочим событиям не дожидаясь завершения процедуры (функции) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2004, 14:53 |
|
||
|
Синхронизация SubForm
|
|||
|---|---|---|---|
|
#18+
2 paparome Ты молодец ! все понятно. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2004, 15:08 |
|
||
|
Синхронизация SubForm
|
|||
|---|---|---|---|
|
#18+
откуда уверенность, что рекордсет у 2 разных форм один? букмарки разных рекордсетов (однрй таблицы) не совпадают. Может правда хитрый аксесс соображает, что достаточно раздать один рекордсет 2 формам, но я сомневаюсь. если букмарки такиразные, то: что мешало Дону обе страницы сделать на 1 форме? Превышения максимума по контролам? Одно из решений: Вторая форма должна смотреть на ключевое поле первой, а не на главную. (есть минусы). С табличными формами вероятно придется переходить на запись по ключу. (Seek - ом) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2004, 15:18 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32536007&tid=1674315]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
214ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 523ms |

| 0 / 0 |
