Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Установить курсор на нужную запись Datasheet
 
 автор: Stanislav   (20.04.2010 в 09:28)   личное сообщение
 
 

Форма. На ней субформа типа 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.
Как делать?

  Ответить  
 
 автор: час   (20.04.2010 в 09:31)   личное сообщение
 
 

субформа - ленточная?
как то так в основной
Forms!subForm.SetFocus
DoCmd.GoToControl "Поле ID записи "
DoCmd.FindRecord 533, , True

  Ответить  
 
 автор: Stanislav   (20.04.2010 в 09:35)   личное сообщение
 
 


субформа - ленточная?


Я ж написал - субформа типа Datasheet (лист с данными, как таблица, не ленточная). И она не связана с главной формой ни по какому полю.

  Ответить  
 
 автор: час   (20.04.2010 в 09:36)   личное сообщение
 
 

Звиняюся

  Ответить  
 
 автор: Stanislav   (20.04.2010 в 09:37)   личное сообщение
 
 


DoCmd.FindRecord 533, , True

Та же самая ошибка 2162.

  Ответить  
 
 автор: час   (20.04.2010 в 09:41)   личное сообщение
 
 

а на setfocus не ругается??
в отладчике на какой строке ругань
===================================
а как там ваще найти поле идентификатор записи
по какому полю искать - надо указать......

  Ответить  
 
 автор: час   (20.04.2010 в 09:44)   личное сообщение
 
 

может лучше оставить одну запись, выбрав запросом из таблицы и присвоив запрос как источник данных для Вашего листа?

DoCmd.GoToControl "Поле ID записи "

  Ответить  
 
 автор: Stanislav   (20.04.2010 в 09:50)   личное сообщение
 
 


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

DoCmd.FindRecord 535, , True


может лучше оставить одну запись, выбрав запросом из таблицы и присвоив запрос как источник данных для Вашего листа?

Нет. Должны отображаться все записи. Просто пользователю нужно указать на нужную запись, чтоб он не искал.

  Ответить  
 
 автор: час   (20.04.2010 в 09:52)   личное сообщение
 
 

Блин....... надо же
что ж это за лист такой......
и зачем пользователю остальные данные??? если он ищет конкретную....

Datasheet!ID.setfocus
DoCmd.FindRecord 535, , True

  Ответить  
 
 автор: Stanislav   (20.04.2010 в 10:24)   личное сообщение
 
 


Блин....... надо же
что ж это за лист такой......
и зачем пользователю остальные данные??? если он ищет конкретную....

Datasheet!ID.setfocus
DoCmd.FindRecord 535, , True


Лист называется "Просмотр транзакций" (бухгалтерская прога). В данном случае отображаются транзакции по выбранному счету. И нет смысла показывать только одну запись, когда нужно показывать всю цепочку транзакций. Но переместиться нужно к конкретной транзакции.
Может это надо не с помощью findrecord делать, а какой другой командой?
Сделал с восклицательным знаком - то же самое. РУгается на строку findrecord.

  Ответить  
 
 автор: час   (20.04.2010 в 10:41)   личное сообщение
 
 

Datasheet!.......ID..........Setfocus

  Ответить  
 
 автор: osmor   (20.04.2010 в 11:04)   личное сообщение
 
 

используйте Recordset подформы или recordsetclone + bookmark
посмотрите вот этот пример
http://hiprog.com/index.php?option=com_content&task=view&id=251661629&Itemid=35

  Ответить  
 
 автор: Stanislav   (20.04.2010 в 11:42)   личное сообщение
 
 


используйте Recordset подформы или recordsetclone + bookmark
посмотрите вот этот пример
http://hiprog.com/index.php?option=com_content&task=view&id=251661629&Itemid=35


Спасибо. Вот так заработало:

Form_FormDatasheet.Recordset.FindFirst "MyField=535"

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList