|
открыть форму на нужной записи
|
|||
---|---|---|---|
#18+
Собственно, суть такая: две таблицы связаны отношениями 1-1. Для каждой из этих таблиц есть форма. При этом, на первой форме есть свободный элемент кнопка, который при нажатии через макрос загружает вторую форму. Подскажите, как сделать так, чтобы при этом вторая форма не просто загружалась, но еще и переходила на запись, соответствующую записи первой формы, а если такой записи нет, то открывалась в режиме добавления данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2009, 19:03 |
|
открыть форму на нужной записи
|
|||
---|---|---|---|
#18+
Ну тут просто, если вторая форма открывается в виде списка, то в условии отбора необходимо указать forms![1-я форма]![PhoneNumber] ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2009, 19:29 |
|
открыть форму на нужной записи
|
|||
---|---|---|---|
#18+
Igor Mitichev, При создании кнопки мастером, есть возможность создания кода для открытия формы на нужной записи ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2009, 19:30 |
|
открыть форму на нужной записи
|
|||
---|---|---|---|
#18+
Извиняюсь за панику, заработало. У меня несоответствие типов было, разобрался. Private Sub Clients_Click() Dim stDocName As String Dim stLinkCriteria As String If [Entity] = True _ Then stDocName = "Entitys" Else stDocName = "Individuals" End If stLinkCriteria = "[PhoneNumber]=" & "'" & Me![PhoneNumber] & "'" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_Clients_Click: Exit Sub End Sub зы: в access изучаю VB по запитсям мастеров, книжки нет. Подскажите неграмотному, что это за объект такой me и почему после него стоит восклицательный знак? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2009, 20:29 |
|
открыть форму на нужной записи
|
|||
---|---|---|---|
#18+
Igor Mitichev, из хелпаКлючевое слово Me выполняет роль неявно описанной переменной. Оно автоматически становится доступным для любой процедуры в модуле класса. Если класс содержит более одного экземпляра, то ключевое слово Me дает возможность ссылаться на конкретный экземпляр в классе при выполнении программы. Использование ключевого слова Me особенно полезно для передачи информации из выполняющегося экземпляра класса в процедуру, находящуюся в другом модуле. Предположим, например, что в модуле имеется следующая процедура: Sub ChangeFormColor(ИмяФормы As Form) ИмяФормы.BackColor = RGB(Rnd * 256, Rnd * 256, Rnd * 256) End Sub Можно вызвать эту процедуру и передать в нее текущий экземпляр класса Form как аргумент с помощью следующей инструкции: ChangeFormColor Me Использовать Me можно как коллекцию контролов, тогда после Me ставится восклицательный знак, либо как объект с методами и своствами. В этом случае после Me ставится точка если далее идет обращение к методам/свойствам. При обращении к контролам формы/отчета обе формы практически одинаковы. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2009, 20:46 |
|
открыть форму на нужной записи
|
|||
---|---|---|---|
#18+
Igor Mitichev, Ме - это ссылка на форму в которой была запущена процедура. Т.е. Me![PhoneNumber] - ссылка на поле [PhoneNumber] в текущей форме. ! - это синтаксис ВБА. Вместо "!" может также быть "." ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2009, 20:48 |
|
открыть форму на нужной записи
|
|||
---|---|---|---|
#18+
Еще хелп из хелпаСвойство Me используется в программах Visual Basic для ссылок на форму, отчет, форму или отчет, связанные с подчиненной формой или подчиненным отчетом, а также на модуль класса, в котором выполняется программа Visual Basic. Значения Свойство Me доступно только в программах Visual Basic и допускает только чтение во всех режимах. Дополнительные сведения Свойство Me содержит ссылку объекта на активную форму или отчет и работает быстрее, чем полная ссылка на объект. Например, следующие два фрагмента программы ссылаются на значение элемента управления «Фамилия» для текущей записи формы «Сотрудники». strLastName = Forms!Сотрудники.Фамилия strLastName = Me!Фамилия В большинстве случаев свойство Me возвращает ссылку на ту же форму или отчет, что и свойства ActiveForm или ActiveReport объекта Screen. Однако эти свойства возвращают ссылку на форму или отчет, которые обладают фокусом, в то время, как свойство Me всегда содержит ссылку на форму или отчет, в которых выполняется программа. Например, при возникновении события Таймер (Timer) в форме, не обладающей фокусом, конструкция Screen.ActiveForm возвратит ссылку на форму, обладающую фокусом, а свойство Me возвратит ссылку на форму, в которой возникло событие Таймер (Timer). Поэтому при создании внутренних процедур, предназначенных для обработки активной формы, вместо использования свойства ActiveForm удобнее передать форму в процедуру с помощью свойства Me. Ключевое слово Me можно использовать в модуле класса для ссылки на текущую копию этого класса. Аналогично использованию Me в модулях класса формы или отчета для возвращения ссылки на текущую форму или отчет, можно использовать Me в модуле класса для возвращения ссылки на текущий объект модуля класса. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2009, 20:55 |
|
открыть форму на нужной записи
|
|||
---|---|---|---|
#18+
mds_world, Еще. Me c точкой, это ближний вызов поля и если оно отсутствует, то компилятор выдаст ошибку если с ! восклиц знаком, это дальний вызов (например Forms!ИмяФормы!Поле) проверяться на наличие поля не будет. Это выгодно, когда компилируется модуль отдельно. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2009, 23:33 |
|
|
start [/forum/topic.php?fid=45&fpage=117&tid=1614093]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
113ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
85ms |
get tp. blocked users: |
2ms |
others: | 361ms |
total: | 599ms |
0 / 0 |