![]() |
|
|
![]()
|
|
| ZeroMem |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 24.8.2004 Где: Комсомольск-на-Ам уре Репутация: нет Всего: нет |
Дело обстоит так. Использую MSAccess и TADOTable с DBGridEh в D7
У меня есть 2 формы. 1 Главная и 1 подчиненная. Задача: пользователь в основной таблице на главной форме находится на некоторой записи. После нажатия на кнопку, открывается дочерняя форма, где я могу изменить значения некоторых из них (там есть еще функционал, но он никак не связан с задачей). Для отображения данных, я просто из OnFormShow дочерней формы забиваю данные в ее же ComboBox'ы и едиты:
Основная таблица находится как раз на FOrder - главной форме. И использует tm: TADOTable как источник. Но!!! При открытие дочерней формы tm всегда говорит, что он находится на 1-й записи! То есть почему-то возвращает данные только первой строки, хотя должен вроде брать данные строки основной таблицы, на которую встал пользователь! не понимаю почему так... Я это дело позже обошел просто так: при нажатии кнопки открытия дочерней формы, я до открытия прописал код, который из tm подставляет данные в контролы дочерней. Работает. Но когда пытаюсь сохранить в tm по закрытию формы, данные пишутся именно в 1-ю строку и при этом изменения 1-й строки отображаются в основной таблице только после перезапуска программы! открытие/закрытие датасета tm тоже не помогло.
Уже совсем не знаю что делать. Надо просто сделать так, чтобы данные для дочерней корректно брались из tm, а потом изменения корректно записывались! |
||||
|
|||||
| ZeroMem |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 24.8.2004 Где: Комсомольск-на-Ам уре Репутация: нет Всего: нет |
Хм... думаю ответы на все эти вопросы будут получены, если понять почему вот так бывает:
На главной форме кинул кнопку. и при щелчке сиавлю датасет таблицы в состояние Edit.
Беру на второй форме созлаю тоже кнопку и обращаюсь как
Вопрос: Почему при щелчке на кнопке в основной форме грид показывает, что датасет в состоянии редактирования, а при щелчке со второй - НЕТ??!! |
||||
|
|||||
| Rodman |
|
|||
|
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: 22 Всего: 122 |
а если из ГЛАВНОЙ формы сразу заполнять эдиты ДОЧЕРНЕЙ и потом открывать ее...
|
|||
|
||||
| ZeroMem |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 24.8.2004 Где: Комсомольск-на-Ам уре Репутация: нет Всего: нет |
Так и пришлось сделать.
Интересно, но если в дочерней форме в классе формы объявить переменную tbl типа, как tm, т.е. TADOTable, а при открытие формы сделать из главной
а в дочерней работать только с tbl, то все работает! ХЗ почему, но работае! |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |