2012-05-02 65 views
1

我有兩個表格和Microsoft Access數據庫中的表單。讓第一個表tblCUSTOMERS和第二個表tblINVOICES。 tblCUSTOMERS包含稱爲CustomerID(主鍵),FirstName和LastName的字段。 tblINVOICES包含稱爲InvoiceID(主鍵),CustomerID(外鍵)和金額的字段。該表單稱爲frmInvoices幷包含tblINVOICES中字段的文本框。以訪問形式傳遞值

我該做什麼是創建功能,使我能夠搜索我的客戶表,從該表中選擇一個客戶記錄,然後將該記錄的CustomerID返回給frmInvoices。理想情況下,搜索將採用數據網格的格式,允許按名字,姓氏和客戶ID進行搜索。

具體來說,您可以告訴我最簡單的方法: 1.插入一個表單(讓我們稱這個新表單爲frmCUSTOMERS),並使用類似於datagrid控件的東西來顯示客戶記錄。 2.更新frmCUSTOMERS上的datagrid以僅顯示匹配tblCUSTOMER查詢的記錄(例如,只有名字以'B'開頭的客戶) 3.將CustomerID從frmCUSTOMERS傳遞到frmINVOICES。

非常感謝,

佈雷特

回答

1

當你打開它你可以傳遞一個值作爲開口參數的形式。

DoCmd.OpenForm "frmFormName", , , , , ,"B" 

或者您也可以通過在一個標準的語句:

DoCmd.OpenForm "frmFormName", , , "FirstName LIKE 'B*'" 

如果你走第一條路,你會做這樣的事情:

Private Sub Form_Load() 
    Me.Filter = "FirstName LIKE '" & Nz(Me.OpenArgs, "") & "*'" 
    'or 
    Me.Subform1.Form.Filter = "FirstName LIKE '" & Nz(Me.OpenArgs, "") & "*'" 
End Sub 

要交出一個值,如客戶ID從搜索表單返回,有很多選項。您可以將該值放入全局變量中。或者,您可以使用調用表單上的公用變量或公用函數將搜索表單的值返回給調用表單。

可以說,一個更正確,更乾淨的方法是設計一個處理打開搜索表單並傳入入站和出站值的類。課程確實需要更多的知識和技能才能寫出來,這對於你想要做的事情可能是過度的。一個班級當然不需要做這項工作。它只會更清潔一點。實際上,如果你爲此寫了一個類,你會使用上面列出的許多相同技術。

+0

謝謝@ HK1這是我認爲是必要的。我只是想/希望會有更容易的事情。 – Brett