|
|
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#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 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
Не DAO, а Object В mdb - DAO.Recordset В adp - ADO.Recordset Может от версии еще зависит, не помню. И вообще, тебе же по русски сказали: For example и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 15:29 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
Как я апаздал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 15:29 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
Спасибо всем. Понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 15:39 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
2Лоху >В mdb - DAO.Recordset >В adp - ADO.Recordset Точнее В mdb - DAO.Recordset (обновляемый) и ADO.Recordset (не обновляемый) В adp - ADO.Recordset (обновляемый) и DAO.Recordset (хрен его знает - изврат это) А про версию имеется ввиду 2002 акес там вроде(не уверен, не точно, под рукой нет 2002 версии - но легко проверить) ADO.Recordset м.б. обновляемым ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 15:41 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
В mdb - DAO.Recordset (обновляемый) и ADO.Recordset (не обновляемый) В adp - ADO.Recordset (обновляемый) и DAO.Recordset (хрен его знает - изврат это) А про версию имеется ввиду 2002 акес там вроде(не уверен, не точно, под рукой нет 2002 версии - но легко проверить) ADO.Recordset м.б. обновляемым Вот я в 2002 и эксперементирую. в mdb такая конструкция не проходит и выдает ошибку Type mismatch (Error 13) По этой причине и кажется, что В mdb - DAO.Recordset и только. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 15:56 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
>А ты попробуй поставить курсор на запись, удовлетворяющую нескольким >условиям своим OpenArgs и поймешь. Этого, по всей видимости, не будет в данном случае. Юзер выбрал конкретную запись в первой форме, ее же он и будет изменять. А даже если и будет - ну откроется форма с несколькими записями, пройти их все и поменять чего надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 16:03 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
2АлексейЕ какая конструкция выдает ошибку? Такая ничего не выдает - ключевое слово r.CursorLocation = adUseClient Проверено на акесе2000+сп2, mdb Код: plaintext 1. 2. 3. 4. 5. 6. З.Ы. а ты уверен что тебе рекодсеты на форму нужны? Мне ни разу не подобились. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 16:04 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
ну скока можно говорить про одно и тоже? из справки: у формы в mdb может быть только DAO.RecordsetClone и DAO.Recordset а в adp- ADO зарубите себе на носу и больше не спрашивайте если еще нужно объяснить почему? я думаю догадаетесь или пошлю на Гетца 1 том стр.428 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 16:09 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
не работает вот что: Код: plaintext 1. 2. А приципился я к RecordsetClone в ADO В adp проверить не могу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 16:12 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
Хаму трамвайному Так, а я о чем? А ты шипишь, плюешься. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 16:15 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
В adp работать будет. В mdb нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 16:16 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
2Хаму >из справки: у формы в mdb может быть только DAO.RecordsetClone и >DAO.Recordset а в adp- ADO зарубите себе на носу и больше не >спрашивайте >если еще нужно объяснить почему? я думаю догадаетесь или пошлю на >Гетца 1 том стр.428 У меня все работает. Правда не RecordsetClone, а Recordset.Clone. Но это ничего не меняет - Clone в основном нужен для позиционирования по букмаркам. Что и решается следующим примером: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 16:38 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
Виктор, ну что ты как маленький RecordsetClone и Recordset.Clone - это две большие разницы. Или четыре маленькие. Не вводи людей в заблуждение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 17:01 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
Спасибо ВСЕМ Вывод. В mdb по умолчанию форма грузится с источником данных типа DAO и Me.RecordsetClone вернет DAO Recordset Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Если же снять знак комментария в закомментированных строках, то источнику строк в форме будет присвоен ADO Recordset и RecordsetClone тоже вернет ADO Recordset ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 17:14 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
2Лоху >RecordsetClone и Recordset.Clone - это две большие разницы. Или четыре маленькие. Не вводи людей в заблуждение. Я не ввожу в заблуждение - я другие пути показываю. Вопрос:Для чего применяют RecodsetClone? Ответ: для поиска и позиционирования -если нельзя с адо использовать RecodsetClone - пожалуйста делайте, но по-другому. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 17:17 |
|
||
|
Как передать параметр из формы в форму?
|
|||
|---|---|---|---|
|
#18+
позиционироваться можно по всякому.... и через Recordset и чероез Recordsetclone в ADP только на нормальную работу влияет комплекс какихто настроек . честоно говоря это похоже на шаманство. в одних местах у меня получалось только через Recordsetclone причем пр числе записей >50 приходилось делать Movelast. потом мне удалось в другом месте той же проги без Movelast темже Recordsetclone. и другие аналогичные ситуации. тут важен либо порядок команд, которые по здравому смыслу не влияют в каком порядке или ещё что, но что-то такое, что у Гетца не описано и нигде не описано. типа тут работает а тут нет (со стороны как бред, а на самом деле есть что-то.....) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 19:23 |
|
||
|
|

start [/forum/topic.php?all=1&fid=45&tid=1680784]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
92ms |
get tp. blocked users: |
2ms |
| others: | 204ms |
| total: | 395ms |

| 0 / 0 |
