| |
|
|
| | Форма. На ней субформа типа Datasheet назовем ее FormDatasheet. Мне нужно переместиться (установить курсор) на нужную запись, например по условию MyField = 535.
Пытаюсь сделать это так:
Кнопка на главной форме.OnClick
Form_FormDatasheet.MyField.SetFocus
Docmd.FindRecord 535, acAnywhere
|
Выдает: RunTime Error 2162: A macro set to one of the field's properties failed because of an error in a find record action argument.
Как делать? | |
| |
| |
| |
|
|
| | субформа - ленточная?
как то так в основной
Forms!subForm.SetFocus
DoCmd.GoToControl "Поле ID записи "
DoCmd.FindRecord 533, , True | |
| |
| |
| |
|
|
| |
Я ж написал - субформа типа Datasheet (лист с данными, как таблица, не ленточная). И она не связана с главной формой ни по какому полю. | |
| |
| |
|
|
| |
|
|
| |
DoCmd.FindRecord 533, , True
| Та же самая ошибка 2162. | |
| |
| |
| |
|
|
| | а на setfocus не ругается??
в отладчике на какой строке ругань
===================================
а как там ваще найти поле идентификатор записи
по какому полю искать - надо указать...... | |
| |
| |
| |
|
|
| | может лучше оставить одну запись, выбрав запросом из таблицы и присвоив запрос как источник данных для Вашего листа? 
DoCmd.GoToControl "Поле ID записи "
|
| |
| |
| |
| |
|
|
| |
в отладчике на какой строке ругань
| DoCmd.FindRecord 535, , True
может лучше оставить одну запись, выбрав запросом из таблицы и присвоив запрос как источник данных для Вашего листа?
| Нет. Должны отображаться все записи. Просто пользователю нужно указать на нужную запись, чтоб он не искал. | |
| |
| |
| |
|
|
| | Блин....... надо же
что ж это за лист такой...... 
и зачем пользователю остальные данные??? если он ищет конкретную....
Datasheet!ID.setfocus
DoCmd.FindRecord 535, , True | |
| |
| |
| |
|
|
| |
Блин....... надо же
что ж это за лист такой......
и зачем пользователю остальные данные??? если он ищет конкретную....
Datasheet!ID.setfocus
DoCmd.FindRecord 535, , True
|
Лист называется "Просмотр транзакций" (бухгалтерская прога). В данном случае отображаются транзакции по выбранному счету. И нет смысла показывать только одну запись, когда нужно показывать всю цепочку транзакций. Но переместиться нужно к конкретной транзакции.
Может это надо не с помощью findrecord делать, а какой другой командой?
Сделал с восклицательным знаком - то же самое. РУгается на строку findrecord. | |
| |
| |
| |
|
|
| | Datasheet!.......ID..........Setfocus | |
| |
| |
| |
|
|
| | используйте Recordset подформы или recordsetclone + bookmark
посмотрите вот этот пример
http://hiprog.com/index.php?option=com_content&task=view&id=251661629&Itemid=35 | |
| |
| |
| |
|
|
| |
используйте Recordset подформы или recordsetclone + bookmark
посмотрите вот этот пример
http://hiprog.com/index.php?option=com_content&task=view&id=251661629&Itemid=35
|
Спасибо. Вот так заработало:
Form_FormDatasheet.Recordset.FindFirst "MyField=535"
|
| |
| |
| |