|
|
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
Для изменения данных и добавления новых, двойным кликом открываю другую форму. В ней данные представленны в виде ленточной формы. Хочется что бы указатель стоял на той записи, по котой я кликнул в вызывающей форме. Вероятно я должен передать туда параметры вызывающей формы, например, номер учащегося. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 12:50 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
DoCmd.OpenForm "NewForm" NewForm.RecordsetClone.FindFirst "LineNr=" & OldForm & "" ' Твое условие' If Not NewForm.RecordsetClone.NoMatch Then NewForm.Bookmark = NewForm.RecordsetClone.Bookmark End If ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 12:53 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
Попробуй так: Код: plaintext Функция приведена ниже Код: 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. P.S.: Если ни одна запист не удовлетворяет условию, то система переводит форму в режим ввода новой записи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 12:58 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
Забыл добавить. Функции универсальные и работают в любой версии MSAccess (проверял в версиях начиная с 95 и заканчивая XP). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 13:00 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
сделай проще. docmd.openform "name",,,,,,arg где arg-признак нужной записи. в открывшейся форме переданый параметр извлекается как me.openargs делаешь gotorecord и все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 13:04 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
Ну незнаю. Я лично откузался от таких действий два года назад. Слишком много лишнего кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 13:10 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
самый простой вариант: в источнике прописать условие select ... where id=[Дрянь-форма]![Дурной контрол] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 13:13 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
> Слишком много лишнего кода. а ты свою функцию не считаешь таковой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 13:15 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
А ты попробуй поставить курсор на запись, удовлетворяющую нескольким условиям своим OpenArgs и поймешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 13:21 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
Спасибо, буду пробовать, но есть вопрос: 1. Call formsOpenLocate помещается в программу события "двойное нажатие кнопки"? 2. Sub formsOpenLocate(vFormName, vCondition As Variant) вероятно помещается в модуль? С модулями я еще не работал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 13:26 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
2 Дмитрий Басовский: но ведь OpenArgs, это строка вот и передавай хоть мульён параметров (как в where), а в открытой форме используй их как conditions в функциях поиска записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 13:30 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
А код писать на каждой вызываемой форме? Если форма не содержит VB-модулей, то на ее компиляцию при открытии не тратится время и она открывается гораздо быстрее и занимает гораздо меньше места как в самом mdb файле, так и в памяти компа. При наличии кода в форме размер формы увеличивается в среднем на 10-20%. Если в БД, которую я сейчас обслуживаю, сделать так, как ты советуешь - система будет ворочаться как недобитый мамонт. Проверено. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 13:46 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
Заменяешь в коде Sub formsOpenLocate(vFormName, vCondition As Variant) на Function formsOpenLocate(vFormName, vCondition As Variant) И End Sub на End Function и после этого можешь использовать построитель выражений. Пример: =formsOpenLocate2("Country";"Country ='" & [Citizenship] & "'") P.S.: В .adp проектах этот метод неприменим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 13:54 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
>Если форма не содержит VB-модулей, то на ее компиляцию при открытии не тратится время и она открывается гораздо быстрее и занимает гораздо меньше места как в самом mdb файле, так и в памяти компа. Хрень это - сказки про еле ворочающиеся формы у которых есть модуль. Даже если это так и было - то благодаря тому что код грузиться в память 1 (один) раз при первом обращении, можно насовать в формы Public функции (пустые) и обращаться к ним в момент загрузки базы - таким образом инициализировать загрузку модулей формы в память. Сам код занимает не так уж и много места (сделай SaveAsText модулей и убедись в этом сам). Данную процедуру можно проделать только для особо перегруженных форм. Главные тормоза в формах - это источники данных и перегрузка формы элементами и полями-со-списками, ну и в криворукости программера (сам на это попадался :) ). Чем основаваюсь? Опытом и экспериментами по поводу оптимизации работы одной слишком круто растолстевшей формы (открытие порядка 5-8 сек) - убрав модули нафиг - скорость загруки заметно не изменилась - вернее так и осталась. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 14:02 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
Параметр формы "Наличие модуля" трогал? Если нет, то мог бы и не удалять проргаммного кода. У меня есть форма (без модуля), данные для которой имеют ширину 430 полей. Всего записей 2 347 490 (на данный момент). Открывается примерно 1,5 секунды. С модулем она открывалась 2,5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 14:19 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
2Дмитрий Басовский >Параметр формы "Наличие модуля" трогал? Если нет, то мог бы и не удалять проргаммного кода. Куда нам, чайникам, про HasModule знать-то... :) >У меня есть форма (без модуля), данные для которой имеют ширину 430 полей. Всего записей 2 347 490 (на данный момент). Открывается примерно 1,5 секунды. С модулем она открывалась 2,5. 1.5 сек? Локально поди наверное, да на PIV? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 14:26 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
Я знаю более 5 методов передачи информации из формы в форму. У каждого свои достоинства и недостатки. Так что не будем спорить по пустякам. Человеку помогли (если это так) и то хорошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 14:27 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
Спасибо, помогли, все получилось! Сегодня хороший день! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 14:34 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
>Человеку помогли (если это так) и то хорошо. Ему уже помогли. Дали совет который позволит ему сделать что он хочет. Мне про 1,5 сек знать хочеться - у меня записей было на 3 порядка меньше и котролов около 50 - открывалось (в сети) 5-8 секн. а тут такие цифрищи -1,5 сек! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 14:34 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
Не очень я понял - т.е. источником данных для формы служит селект с 430 полями по таблице (или группе таблиц) с общим количеством строк в 2 347 490 - и это открывается 1.5. секунды? Простой Select без группировки и сортировки будет работать медленнее. на наборе в 823000 записей при первом обращении к таблице время селекта 1 мин 23 сек, по индексу (т.е. в селекте только кластерный индекс) при повторном обращении - 6 секунд. Запрос на сервере. И это не форма, даже с одним контролом и без модулей. Да и второй момент - на форму выводятся все записи??? Как правильно заметили, время загрузки формы зависит от количества контролов на ней и исходных данных к форме. P.S. Предложенный метод - универсален и хорош. В своём посте я его не затрагивал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 14:42 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
Так, на всякий случай. Если автор вопроса остановится на варианте передачи параметров через openargs, то пусть заглянет по ссылочке: http://am.rusimport.ru/MSAccess/topic.aspx?ID=94 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 14:45 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
Вопрос к Дмитрию и остальным ADO только изучаю. Код: plaintext 1. 2. Разве такая конструкция может работать? RecordsetClone есть только в DAO. Или я чего-то недопонял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 15:02 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
Такая конструкция работать будет. В данном случае, frm.RecordsetClone - свойство формы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 15:09 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
Так ведь это Свойство, RecordsetClone, используется для ссылок на объект формы Recordset типа DAO. да и в Хелпе: You use the RecordsetClone property to navigate or operate on a form's records independent of the form itself. For example, you can use the RecordsetClone property when you want to use a method, such as the DAO Find methods, that can't be used with forms. P.S. Только что попробовал. Выдает ошибку Type mismatch (Error 13) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 15:20 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
>Так ведь это Свойство, RecordsetClone, используется для ссылок на объект формы Recordset типа DAO. Не типа DAO, а типа Object (см. F2) и по разному ведет себя в разных версиях акеса (2000/2002) и в проектах при присваивании ADODB.Recodset or DAO.Recodset. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 15:25 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32196179&tid=1680784]: |
0ms |
get settings: |
8ms |
get forum list: |
22ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
90ms |
get tp. blocked users: |
2ms |
| others: | 201ms |
| total: | 395ms |

| 0 / 0 |
