powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Обновление записей в главной форме (программное перемещение на нужную запись)
21 сообщений из 21, страница 1 из 1
Обновление записей в главной форме (программное перемещение на нужную запись)
    #32562134
Akni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день всем!

Нужна помощь в таком вопросе (возможно, глупом, но Access для меня не родная среда, так что прошу прощения).

Ситуация следующая:
Есть формуляр (frmCustomer), в котором отображаются данные из таблицы tblCustomer (источник данных select … from tblCustomer where…). Редактирование/удаление/ввод данных в этом формуляре запрещено.
На этом формуляре есть также кнопка, по нажатию на которую открывается диалоговое окно для ввода критериев поиска. После ввода критериев необходимо найти соответствующего клиента и актуализировать данные в формуляре frmCustomer.

Вопрос: как это сделать? Т.е. найти-то нужного клиента запросом не проблема, но как «заставить» формуляр frmCustomer показывать в случае удачного поиска данные найденного клиента (т.е. клиента с опред. idCustomer)?
Фильтровать набор данных и показывать только одного найденного клиента не подходит, т.к. фильтр и так используется в формуляре для отображения определенного круга клиентов (напр., по региону) и после поиска все равно должна сохраняться возможность навигации между клиентами.

Заранее всем спасибо.

З.Ы. Используется Access97
...
Рейтинг: 0 / 0
Обновление записей в главной форме (программное перемещение на нужную запись)
    #32562139
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Навесь стандартную кнопку Find (ее мастер создает) и не парься :)
...
Рейтинг: 0 / 0
Обновление записей в главной форме (программное перемещение на нужную запись)
    #32562140
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поработай над Me.RecordSource

Сделать можно всё!!!
Только бы знать как...
...
Рейтинг: 0 / 0
Обновление записей в главной форме (программное перемещение на нужную запись)
    #32562144
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
me.recordsetclone.findfirst ...
me.bookmark=me.recordsetclone.bookmark
...
Рейтинг: 0 / 0
Обновление записей в главной форме (программное перемещение на нужную запись)
    #32562168
Akni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to paparome
стандартный Find не подходит, т.к. поиск идет не только по видимым в форме критериям (имя и адрес клиента), но и по данным из других таблиц, кот. в основной форме не показываются.

to Владимир Саныч
спасибо, постараюсь разобраться
...
Рейтинг: 0 / 0
Обновление записей в главной форме (программное перемещение на нужную запись)
    #32562173
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
либо я чего то в вопросе не понял... либо дурак...

Сделать можно всё!!!
Только бы знать как...
...
Рейтинг: 0 / 0
Обновление записей в главной форме (программное перемещение на нужную запись)
    #32562174
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sfagnumлибо я чего то в вопросе не понял... либо дурак...

Сделать можно всё!!!
Только бы знать как...
Аналогично :(
...
Рейтинг: 0 / 0
Обновление записей в главной форме (программное перемещение на нужную запись)
    #32562194
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самый прикол в том, что Саныч в принципе написал тоже самое...

Сделать можно всё!!!
Только бы знать как...
...
Рейтинг: 0 / 0
Обновление записей в главной форме (программное перемещение на нужную запись)
    #32562196
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Akniпоиск идет не только по видимым в форме критериям (имя и адрес клиента), но и по данным из других таблиц, кот. в основной форме не показываются.
Тогда и мой вариант не пойдет.
...
Рейтинг: 0 / 0
Обновление записей в главной форме (программное перемещение на нужную запись)
    #32562201
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТогда и мой вариант не пойдет
Почему - если они в соурсе есть, но он их просто не выводит на форму, то (ИМХО) должно прокатить :)
...
Рейтинг: 0 / 0
Обновление записей в главной форме (программное перемещение на нужную запись)
    #32562205
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Логично.
...
Рейтинг: 0 / 0
Обновление записей в главной форме (программное перемещение на нужную запись)
    #32562208
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй мой вариант, ну попробуй, а?
тяжело что ли?
:)))

ну а если серьёзно, то формируешь запросик по условиям, проверяешь есть ли в нём чо, если есть ложишь в RecordSource формы.

правда реакцию фильтра предсказать не могу... т.к. не пробывал комбинировать...

Сделать можно всё!!!
Только бы знать как...
...
Рейтинг: 0 / 0
Обновление записей в главной форме (программное перемещение на нужную запись)
    #32562209
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 paparome
тогда и твой по идеи должОн прокатить.
или я не прав?

Сделать можно всё!!!
Только бы знать как...
...
Рейтинг: 0 / 0
Обновление записей в главной форме (программное перемещение на нужную запись)
    #32562217
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sfagnum2 paparome
тогда и твой по идеи должОн прокатить.
или я не прав?

Сделать можно всё!!!
Только бы знать как...

Вроде бы должно, но вот вопрос - как задать поиск по полю, которого не видно :( На него же "встать" нельзя :(
...
Рейтинг: 0 / 0
Обновление записей в главной форме (программное перемещение на нужную запись)
    #32562227
Akni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
попытаюсь объяснить еще раз:
на главной форме - основные данные клиента (имя, адрес, еще пару атрибутов). Ес-но, все они есть в рекордсорсе.
В эту форму встроена подчиненная форма, в которой в виде таблицы отображен список контактных лиц в этой фирме (Иванов - тех. отдел, Петров - бухгалтерия и т.д.). У некоторых фирм контактных лиц вообще может не быть.
Таблица конт. лиц имеет FK на tblCustomer

Задача: найти клиента по контактному лицу.
Стандартный Find (у меня, по крайней мере) поиск по данным подчиненной формы проводить не хочет.
Поэтому и делается доп. форма.
По нажатию на кнопку отркывается доп. форма, в которой выбирается конт. лицо. Определить для этого конт. лица idCustomer - дело нехитрое. Осталось только обновить главную форму.
Надеюсь, теперь попонятнее.

Если иду заведомо неправильным путем - наставтьте, pls, на истинный
...
Рейтинг: 0 / 0
Обновление записей в главной форме (программное перемещение на нужную запись)
    #32562235
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дубля №2
Код: plaintext
1.
2.
me.RecordSource = "SELECT имя, адрес, еще пару атрибутов 
FROM ГлТаблица INNER JOIN tblCustomer ON ГлТаблица.КастомерID = tblCustomer.ID"
примерно так оно дОлжно бытя...

Сделать можно всё!!!
Только бы знать как...
...
Рейтинг: 0 / 0
Обновление записей в главной форме (программное перемещение на нужную запись)
    #32562237
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по idCustomr определяешь idFirm - тоже дело не хитрое :)
а потом как Саныч сказал :)
...
Рейтинг: 0 / 0
Обновление записей в главной форме (программное перемещение на нужную запись)
    #32562254
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Немного кода, по фильтрам:
Private Sub filter_Click()
Dim strFilter As String
Dim no As Integer
Dim na As String
Dim vid As Integer
Dim db As DAO.Database
Dim rcd As DAO.Recordset
Set db = CurrentDb
Dim n As Integer
If Not IsNull(f1) Then
If strFilter <> "" Then strFilter = strFilter & " AND "
na = "SELECT id_zem FROM objtype WHERE objtype='" & f1 & "';"
Set rcd = db.OpenRecordset(na, dbOpenDynaset, dbSeeChanges)
Do
If rcd.BOF Or rcd.EOF Then GoTo met2
strFilter = strFilter & "vid_obj = " & rcd!ID_ZEM
rcd.MoveNext
Loop
met2:
rcd.Close
End If
If Not IsNull(f2) Then
If strFilter <> "" Then strFilter = strFilter & " AND "
na = "SELECT id_nazn FROM naznach WHERE nazn_type='" & f2 & "';"
Set rcd = db.OpenRecordset(na, dbOpenDynaset, dbSeeChanges)
Do
If rcd.BOF Or rcd.EOF Then GoTo met3
strFilter = strFilter & "nazn= " & rcd!id_nazn
rcd.MoveNext
Loop
met3:
End If
If Not IsNull(f3) Then
If strFilter <> "" Then strFilter = strFilter & " AND "
na = "SELECT id_rute FROM rutes WHERE vid_rute='" & f3 & "';"
Set rcd = db.OpenRecordset(na, dbOpenDynaset, dbSeeChanges)
Do
If rcd.BOF Or rcd.EOF Then GoTo met5
strFilter = strFilter & "rute = " & rcd!Id_Rute
rcd.MoveNext
Loop
met5:
rcd.Close
End If

If Not IsNull(f4) Then
If strFilter <> "" Then strFilter = strFilter & " AND "
strFilter = strFilter & "dist >= " & f4
End If
If Not IsNull(f8) Then
If strFilter <> "" Then strFilter = strFilter & " AND "
strFilter = strFilter & "dist <= " & f8
End If

If Not IsNull(f5) Then
If strFilter <> "" Then strFilter = strFilter & " AND "
strFilter = strFilter & "price >= " & f5
End If
If Not IsNull(f7) Then
If strFilter <> "" Then strFilter = strFilter & " AND "
strFilter = strFilter & "price <= " & f7
End If

If Not IsNull(f6) Then
If strFilter <> "" Then strFilter = strFilter & " AND "
strFilter = strFilter & "plosh >= " & f6
End If
If Not IsNull(f9) Then
If strFilter <> "" Then strFilter = strFilter & " AND "
strFilter = strFilter & "plosh <= " & f9
End If

Me.Main_obj.Form.Filter = strFilter
Me.Main_obj.Form.FilterOn = True
End Sub
Вешаешь подобный такой код, со своими заморочками на кнопку фильтров, вводишь поля для ввода фильтров и всё летает на раз два.
Извини, но код длинный (для наглядности).
...
Рейтинг: 0 / 0
Обновление записей в главной форме (программное перемещение на нужную запись)
    #32562257
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если не разберёшь, могу написать покороче.
...
Рейтинг: 0 / 0
Обновление записей в главной форме (программное перемещение на нужную запись)
    #32562325
Akni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо за внимание. Вариант Саныча - как раз то, что и было нужно
...
Рейтинг: 0 / 0
Обновление записей в главной форме (программное перемещение на нужную запись)
    #32562492
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
иногда вариант от саныча не работает

тогда лучше клон рекордсета назначить новому рекордсету

set rst = me.recordsetclone.clone
...

me.bookmark = rst.bookmark
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Обновление записей в главной форме (программное перемещение на нужную запись)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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