Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Поиск записи в подчиненной форме / 9 сообщений из 9, страница 1 из 1
29.03.2004, 21:12
    #32461481
Ukraina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск записи в подчиненной форме
Имеется форма «ГЛ» и подчиненная форма «ПФ». В «ПФ» есть поле «Номер».

Задача: нужно осуществить поиск по «Номеру» в «ПФ», если находит, то открывается запись главной формы, где есть этот номер в «ПФ».

Пробывал методами, которые знаю, но поиск и переход осуществляется только в текущей записи главной формы.
...
Рейтинг: 0 / 0
29.03.2004, 22:03
    #32461509
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск записи в подчиненной форме
авторПробывал методами, которые знаю, но поиск и переход осуществляется только в текущей записи главной формы.
me!контролссабформой.setfocus
...
Рейтинг: 0 / 0
29.03.2004, 22:08
    #32461515
Ukraina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск записи в подчиненной форме
Не совсем понял
me!контролссабформой.setfocus = me![Номер подчиненной формы].setfocus

Если можно оазверните ответ. Куда это вставить?
...
Рейтинг: 0 / 0
29.03.2004, 22:10
    #32461516
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск записи в подчиненной форме
авторme!контролссабформой.setfocus = me![Номер подчиненной формы].setfocus
Вот это никуда вставлять не надо. А то, что я написал, - перед командой, которая ищет запись (и ищет в главной, а если это добавить, то будет искать в подчиненной).
...
Рейтинг: 0 / 0
29.03.2004, 22:33
    #32461522
Ukraina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск записи в подчиненной форме
Владимир Саныч!!!!!!!!
Использовал 2 метода
1.
Private Sub Шаблон_AfterUpdate()
Dim rst As Recordset, frm As Form, s As String
On Error GoTo 999
Set frm = [ПФ_картотека].Form
Set rst = frm.RecordsetClone
rst.FindFirst "([Номер] Like '" & Me.Шаблон & "')=True"
If rst.NoMatch = False Then
frm.Bookmark = rst.Bookmark
Else
MsgBox "Нет данных!"
End If

Exit Sub
999:
MsgBox "Введите правильно данные?"
End Sub

Работает но в пределах текущей записи главной формы. Т.е находит номер и ставит фокус в нужном месте в подчиненной форме. Если нет такого, то пишетт соответственно, однако такой номер существует, правда в другой записи главной формы . Чаго сделать??????????????

2.
Private Sub Кнопка81_Click()
Forms![Картотека]![ПФ_картотека]![Номер].SetFocus
Me![ПФ_картотека]![Номер].SetFocus
DoCmd.GoToControl "Номер"
DoCmd.FindRecord 21
, , True, , True

где "21" номер искомый

End Sub
В этом случае вообще пишет (после DoCmd.GoToControl "Номер"), что ошибка и нет вообще такого поля, хотя он естььь

Выручите, где нужно исправить. И главное, что бы при существовании такого номера все перешло на соответствующую запись в главной
...
Рейтинг: 0 / 0
29.03.2004, 22:40
    #32461524
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск записи в подчиненной форме
Первый способ работает совершенно правильно. Если в форме содержатся только записи, соответствующие текущей записи главной формы, то оно в них и ищет. Чтобы искало в других записях, надо искать в других записях. То есть открывать рекордсет не на frm.RecordsetClone, а на таблице.

Второй способ будет работать, если сделать то, что я сказал:
Me![ПФ_картотека].SetFocus
...
Рейтинг: 0 / 0
29.03.2004, 22:41
    #32461525
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск записи в подчиненной форме
Но, кстати, и второй способ тоже будет искать только в тех записях, которые есть.
...
Рейтинг: 0 / 0
29.03.2004, 22:53
    #32461528
Ukraina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск записи в подчиненной форме
"Чтобы искало в других записях, надо искать в других записях. То есть открывать рекордсет не на frm.RecordsetClone, а на таблице. "

Если не "frm.RecordsetClone", то что мне написать "на таблице"

Владимир Саныч
Я уже начинаю сдаваться. Многие вещи я пишу просто наугад, не осознавая, чаго пишу. Приведенный мною метод стал результатом (гибридом) моих вставок из других примеров. Да он работает, но не переходит на другие записи основной формы. Если Вам не трудно. тонапишите решение, я уже все перепробывал или дайте более развернутое объяснение вашему объяснению

"То есть открывать рекордсет не на frm.RecordsetClone, а на таблице. "

Чаго написатььььььььььь????????????????
...
Рейтинг: 0 / 0
29.03.2004, 23:37
    #32461544
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск записи в подчиненной форме
Не "чаго написать", а "дай списать". Понимаю.

set rst=currentdb.openrecordset("названиетаблицы", dbopendynaset)

Только при этом Bookmark работать не будет. Надо взять из рекордсета значение ключа главной формы и дважды сделать DoCmd.FindRecord: сначала в главной форме найти нужную запись, а потом SetFocus на подчиненную и найти в ней.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Поиск записи в подчиненной форме / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]