2011-06-02 62 views
0

這是我的場景(MS Access 2007):在MS Access中,如何從form2添加後在form1上選擇記錄?

在Form1上我有一個記錄列表(訂單)。 Form1有一個啓動Form2的按鈕。

Form2用於創建新的訂單。 Form 2上的「保存」按鈕使用VBA保存記錄,關閉窗體並重新查詢Form1中:

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

下一步我希望能夠做的是在Form1上自動選擇的新紀錄。我的猜測是用DoCmd.FindRecord以某種方式完成的?我無法弄清楚 - 任何幫助都非常感謝。

感謝, 斯圖爾特

+0

我想你會更好用一個用戶界面,爲您照顧所有這些。一般來說,不是使用多個表單,而是使用單個列表表單和詳細子表單,以便您可以在一個地方直接控制所有交互。當然,你一定要使用「成熟的」VBA,而不是從上面的代碼片段中引用的菜單中翻譯的命令。 – 2011-06-02 20:59:33

回答

1

答案將取決於應用程序是否有一個或多個用戶。在多用戶場景中,簡單地獲取最近添加的訂單不一定會返回您剛輸入的訂單。但是,如果只有你,獲得最近增加的價值就可以做到這一點。

如果您使用的是自動增量鍵,則可以查找帶有max(orderid)的行;或者如果您的訂單有時間戳,則查找具有max(orderDateTime)的行;或者簡單地讓Orderslist表單的數據源按這些值中的任何一個進行排序,降序排列,並在Requery之後重新定位到第一個記錄。

+0

一個更好的問題:如果我使用「Forms!Orders.Recordset FindFirst」ID =「&ID」,我如何從剛剛保存的自動編號列中獲取ID? – 2011-06-02 11:32:29

+0

一些Google使用Google爲我找到了答案 - 我現在正在使用FindFirst並查找具有相同名稱和日期的訂單。謝謝你的幫助! – 2011-06-02 12:11:28

+0

很高興你找到它。在主列表中查找新插入的訂單的目的是什麼?通常情況下,您可以繼續使用該訂單。那麼,爲什麼不留在新訂單表單上而不是反彈回主表呢?你不能在新的訂單上有適當的菜單選項嗎? – Tim 2011-06-02 12:57:39