簡體   English   中英

如何使用Microsoft Access導航表單進行負載篩選

[英]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

以下是有關使用導航控件的視頻的一些鏈接: 視頻1 視頻2 視頻3

這是我在導航控件旁邊做的一些注釋:

導航控件具有“導航子窗體”,該窗體沒有任何主/子數據鏈接字段。 但是,此子窗體不是普通的子窗體。

使用導航控件,必須將導航按鈕(在“導航”菜單中)的“導航目標名稱”屬性設置為要在單擊按鈕時顯示在導航子表單中的表單。

此外,該按鈕具有“ Navigation Where子句”屬性,我相信該屬性可用於設置為在加載表單時過濾顯示的行。 在主窗體上使用控件時,似乎沒有事件可讓您更改此過濾器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM