|
|
|
Обновление записей в главной форме (программное перемещение на нужную запись)
|
|||
|---|---|---|---|
|
#18+
Добрый день всем! Нужна помощь в таком вопросе (возможно, глупом, но Access для меня не родная среда, так что прошу прощения). Ситуация следующая: Есть формуляр (frmCustomer), в котором отображаются данные из таблицы tblCustomer (источник данных select … from tblCustomer where…). Редактирование/удаление/ввод данных в этом формуляре запрещено. На этом формуляре есть также кнопка, по нажатию на которую открывается диалоговое окно для ввода критериев поиска. После ввода критериев необходимо найти соответствующего клиента и актуализировать данные в формуляре frmCustomer. Вопрос: как это сделать? Т.е. найти-то нужного клиента запросом не проблема, но как «заставить» формуляр frmCustomer показывать в случае удачного поиска данные найденного клиента (т.е. клиента с опред. idCustomer)? Фильтровать набор данных и показывать только одного найденного клиента не подходит, т.к. фильтр и так используется в формуляре для отображения определенного круга клиентов (напр., по региону) и после поиска все равно должна сохраняться возможность навигации между клиентами. Заранее всем спасибо. З.Ы. Используется Access97 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2004, 16:57 |
|
||
|
Обновление записей в главной форме (программное перемещение на нужную запись)
|
|||
|---|---|---|---|
|
#18+
Навесь стандартную кнопку Find (ее мастер создает) и не парься :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2004, 16:59 |
|
||
|
Обновление записей в главной форме (программное перемещение на нужную запись)
|
|||
|---|---|---|---|
|
#18+
поработай над Me.RecordSource Сделать можно всё!!! Только бы знать как... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2004, 16:59 |
|
||
|
Обновление записей в главной форме (программное перемещение на нужную запись)
|
|||
|---|---|---|---|
|
#18+
me.recordsetclone.findfirst ... me.bookmark=me.recordsetclone.bookmark ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2004, 17:00 |
|
||
|
Обновление записей в главной форме (программное перемещение на нужную запись)
|
|||
|---|---|---|---|
|
#18+
to paparome стандартный Find не подходит, т.к. поиск идет не только по видимым в форме критериям (имя и адрес клиента), но и по данным из других таблиц, кот. в основной форме не показываются. to Владимир Саныч спасибо, постараюсь разобраться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2004, 17:07 |
|
||
|
Обновление записей в главной форме (программное перемещение на нужную запись)
|
|||
|---|---|---|---|
|
#18+
либо я чего то в вопросе не понял... либо дурак... Сделать можно всё!!! Только бы знать как... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2004, 17:07 |
|
||
|
Обновление записей в главной форме (программное перемещение на нужную запись)
|
|||
|---|---|---|---|
|
#18+
Sfagnumлибо я чего то в вопросе не понял... либо дурак... Сделать можно всё!!! Только бы знать как... Аналогично :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2004, 17:09 |
|
||
|
Обновление записей в главной форме (программное перемещение на нужную запись)
|
|||
|---|---|---|---|
|
#18+
Самый прикол в том, что Саныч в принципе написал тоже самое... Сделать можно всё!!! Только бы знать как... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2004, 17:14 |
|
||
|
Обновление записей в главной форме (программное перемещение на нужную запись)
|
|||
|---|---|---|---|
|
#18+
Akniпоиск идет не только по видимым в форме критериям (имя и адрес клиента), но и по данным из других таблиц, кот. в основной форме не показываются. Тогда и мой вариант не пойдет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2004, 17:14 |
|
||
|
Обновление записей в главной форме (программное перемещение на нужную запись)
|
|||
|---|---|---|---|
|
#18+
авторТогда и мой вариант не пойдет Почему - если они в соурсе есть, но он их просто не выводит на форму, то (ИМХО) должно прокатить :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2004, 17:15 |
|
||
|
Обновление записей в главной форме (программное перемещение на нужную запись)
|
|||
|---|---|---|---|
|
#18+
Логично. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2004, 17:16 |
|
||
|
Обновление записей в главной форме (программное перемещение на нужную запись)
|
|||
|---|---|---|---|
|
#18+
Попробуй мой вариант, ну попробуй, а? тяжело что ли? :))) ну а если серьёзно, то формируешь запросик по условиям, проверяешь есть ли в нём чо, если есть ложишь в RecordSource формы. правда реакцию фильтра предсказать не могу... т.к. не пробывал комбинировать... Сделать можно всё!!! Только бы знать как... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2004, 17:17 |
|
||
|
Обновление записей в главной форме (программное перемещение на нужную запись)
|
|||
|---|---|---|---|
|
#18+
2 paparome тогда и твой по идеи должОн прокатить. или я не прав? Сделать можно всё!!! Только бы знать как... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2004, 17:19 |
|
||
|
Обновление записей в главной форме (программное перемещение на нужную запись)
|
|||
|---|---|---|---|
|
#18+
Sfagnum2 paparome тогда и твой по идеи должОн прокатить. или я не прав? Сделать можно всё!!! Только бы знать как... Вроде бы должно, но вот вопрос - как задать поиск по полю, которого не видно :( На него же "встать" нельзя :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2004, 17:24 |
|
||
|
Обновление записей в главной форме (программное перемещение на нужную запись)
|
|||
|---|---|---|---|
|
#18+
попытаюсь объяснить еще раз: на главной форме - основные данные клиента (имя, адрес, еще пару атрибутов). Ес-но, все они есть в рекордсорсе. В эту форму встроена подчиненная форма, в которой в виде таблицы отображен список контактных лиц в этой фирме (Иванов - тех. отдел, Петров - бухгалтерия и т.д.). У некоторых фирм контактных лиц вообще может не быть. Таблица конт. лиц имеет FK на tblCustomer Задача: найти клиента по контактному лицу. Стандартный Find (у меня, по крайней мере) поиск по данным подчиненной формы проводить не хочет. Поэтому и делается доп. форма. По нажатию на кнопку отркывается доп. форма, в которой выбирается конт. лицо. Определить для этого конт. лица idCustomer - дело нехитрое. Осталось только обновить главную форму. Надеюсь, теперь попонятнее. Если иду заведомо неправильным путем - наставтьте, pls, на истинный ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2004, 17:29 |
|
||
|
Обновление записей в главной форме (программное перемещение на нужную запись)
|
|||
|---|---|---|---|
|
#18+
Дубля №2 Код: plaintext 1. 2. Сделать можно всё!!! Только бы знать как... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2004, 17:34 |
|
||
|
Обновление записей в главной форме (программное перемещение на нужную запись)
|
|||
|---|---|---|---|
|
#18+
по idCustomr определяешь idFirm - тоже дело не хитрое :) а потом как Саныч сказал :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2004, 17:35 |
|
||
|
Обновление записей в главной форме (программное перемещение на нужную запись)
|
|||
|---|---|---|---|
|
#18+
Немного кода, по фильтрам: 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 Вешаешь подобный такой код, со своими заморочками на кнопку фильтров, вводишь поля для ввода фильтров и всё летает на раз два. Извини, но код длинный (для наглядности). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2004, 17:42 |
|
||
|
Обновление записей в главной форме (программное перемещение на нужную запись)
|
|||
|---|---|---|---|
|
#18+
Если не разберёшь, могу написать покороче. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2004, 17:43 |
|
||
|
Обновление записей в главной форме (программное перемещение на нужную запись)
|
|||
|---|---|---|---|
|
#18+
Всем спасибо за внимание. Вариант Саныча - как раз то, что и было нужно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2004, 18:10 |
|
||
|
Обновление записей в главной форме (программное перемещение на нужную запись)
|
|||
|---|---|---|---|
|
#18+
иногда вариант от саныча не работает тогда лучше клон рекордсета назначить новому рекордсету set rst = me.recordsetclone.clone ... me.bookmark = rst.bookmark ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2004, 19:52 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32562254&tid=1673833]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
187ms |
get topic data: |
9ms |
get forum data: |
6ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 512ms |

| 0 / 0 |
