В MS Access, как выбрать запись на форме 1 после добавления из формы 2?

Это мой сценарий (MS Access 2007):

На Form1 у меня есть список записей (заказов). В Form1 есть кнопка, которая запускает Form2.

Form2 используется для создания новых заказов. Кнопка «Сохранить» в Form2 использует VBA для сохранения записи, закрытия формы и повторного запроса Form1:

DoCmd.RunCommand acCmdSaveRecord
DoCmd.RunCommand acCmdCloseWindow
Forms!Orders.Requery

Следующим шагом, который я хотел бы сделать, является автоматический выбор новой записи в Form1. Я предполагаю, что это как-то сделано с DoCmd.FindRecord? Я не могу понять это - любая помощь очень ценится.

Спасибо, Стюарт.


person Stewart Johnson    schedule 02.06.2011    source источник
comment
Я думаю, вам будет лучше с пользовательским интерфейсом, который позаботится обо всем этом за вас. В общем, вместо использования нескольких форм вы должны использовать одну форму списка и подчиненную форму сведений, чтобы вы могли напрямую управлять взаимодействием в одном месте. Конечно, вам определенно придется использовать взрослый VBA вместо команд, переведенных из меню, которое вы цитируете во фрагменте кода выше.   -  person David-W-Fenton    schedule 03.06.2011


Ответы (1)


Ответ будет зависеть от того, имеет ли приложение одного пользователя или несколько пользователей. В многопользовательском сценарии простое получение последнего добавленного Заказа не обязательно вернет тот, который ВЫ только что ввели. Но если это только вы, получение самой последней добавленной стоимости сделает это.

Вы можете найти строку с максимальным (orderid), если вы используете ключ автоинкремента; или найдите строку с max(orderDateTime), если ваши заказы имеют отметку времени; или просто отсортируйте источник данных для формы Orderslist по любому из этих значений, убыванию и перемещению в первую запись после Requery.

person Tim    schedule 02.06.2011
comment
Лучший вопрос: если я использую Forms!Orders.Recordset FindFirst "ID = " & the ID, как я могу получить идентификатор из только что сохраненного столбца автонумерации? - person Stewart Johnson; 02.06.2011
comment
Ах, некоторые гуглы поняли это для меня - сейчас я делаю FindFirst и ищу заказ с тем же именем и датой. Спасибо за вашу помощь! - person Stewart Johnson; 02.06.2011
comment
Рад, что ты нашел это. Какова цель поиска вновь вставленного заказа в мастер-списке? Обычно это было бы так, чтобы вы могли продолжить работу с этим заказом. Так почему бы не остаться на форме ввода нового заказа вместо того, чтобы вернуться к основному списку? Вы не могли бы иметь соответствующие пункты меню в новой форме заказа? - person Tim; 02.06.2011