[英]How to Filter On Load with Microsoft Access Navigation Forms
我有一個帶有3個標簽的導航表單。 房屋,客戶,裝飾。
在導航表單上,我有一個未綁定字段LOTNUMSELECT。
在每個選項卡內的子窗體上,它都有一個名為LOT_NUMBER的字段。
由於導航表單似乎無法實現主/子關系,因此我正在尋找要在加載時進行過濾的子表單。
用戶在LOTNUMSELECT中輸入很多#,然后單擊一個選項卡。 當選項卡成為當前選項卡時,將顯示特定的批號(記錄)。
我一直從“控制面板”表單執行此操作,並使用以下代碼打開了另一個表單。
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "Decor"
If IsNull(LotNumberSelect.Value) = True Then
MsgBox "Please enter a lot number first."
Else
stLinkCriteria = "[Lot_Number]=" & "'" & Me![LotNumberSelect] & "'"
DoCmd.OpenForm stDocName, , , stLinkCriteria
End If
我只是不知道如何編輯它以與“導航”表單和子表單一起使用。
導航控件包含兩個部分。 導航菜單和一個導航子窗體。 每個導航按鈕(也稱為選項卡)會將目標表單加載到navigationsubform控件中。 一次只能將一個表單加載到navigationsubform中。 由於navigationsubform打開了您的目標表單,因此您可以使用標准的“ form_open”方法來設置過濾器或相應地設置記錄集。 所有您需要做的,單擊表單打開事件,然后在該事件中,您可以通過以下方式輕松訪問父控件:
dim lotno as long
Lotno = nz(me.Parent!controlname.value,0)
If lotno <> 0 the
' do your filter or recordset operation
End if
您也可以使用form_load事件。 由於將在加載后執行過濾器,因此最好在form_open上進行設置。 這將提高您的性能。
第2部分
做完一些實驗后,我有了更多的想法。
我認為導航控件不是適合您情況的正確控件。 導航控件似乎沒有事件,並且可以通過屬性將其鏈接到具有導航控件的主窗體上的控件(我認為這是您要嘗試的操作)。
我認為您會發現使用“選項卡控件”更容易,在這種情況下,使用它更容易。
我認為導航控件實際上是一個菜單,允許您訪問其中的其他表單和報告。
以下是有關使用導航控件的視頻的一些鏈接: 視頻1 視頻2 視頻3
這是我在導航控件旁邊做的一些注釋:
導航控件具有“導航子窗體”,該窗體沒有任何主/子數據鏈接字段。 但是,此子窗體不是普通的子窗體。
使用導航控件,必須將導航按鈕(在“導航”菜單中)的“導航目標名稱”屬性設置為要在單擊按鈕時顯示在導航子表單中的表單。
此外,該按鈕具有“ Navigation Where子句”屬性,我相信該屬性可用於設置為在加載表單時過濾顯示的行。 在主窗體上使用控件時,似乎沒有事件可讓您更改此過濾器。 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.