2013-10-05 71 views
1

我有一個Microsoft Access數據庫。它有一個客戶表和每個客戶的進入日期。我有一個表格,其中包括所有客戶和他們的信息。基於組合框預定義值篩選微軟訪問記錄

我想製作一個組合框(下拉框),其中包括一年中的月份(一月,二月,三月,四月......)。當用戶從組合框中選擇April時,只有在該月添加的記錄纔會顯示在記錄表中。

可以這樣做嗎?我一直試圖做至少3天,但沒有運氣..

親切的問候。

+0

是的,它可以完成。哪一點是你堅持?我敢肯定有人可以幫助你,雖然不是我因爲訪問給了我heebies。 –

+0

即時通訊卡我必須根據從組合框中選擇的月份篩選記錄。 – moeido

回答

0

您需要執行以下幾個步驟:首先進入組合框的屬性並更改行源,以便在第一列中包含月份的編號,在第二列中包含月份名稱的編號。你需要爲此製作一張桌子。接下來,進入組合框的屬性並將列數改爲2.然後更改列寬以使第一列爲0.它應該看起來像這樣 - 0「; 2」。現在組合框應該在下拉列表中列出月份名稱,但是如果以編程方式訪問它,則會給出月份的編號。

這應該讓你開始,從那裏取決於你如何得到這些數據,你需要一個查詢使用Month()來分隔它,或者如果你使用的是一個子窗體,你需要一個字段月有鏈接。

希望這可以幫助,如果它不是太晚。

3

本質上,您需要一個下拉字段,該字段應用過濾器功能來按月過濾相應的記錄。根據您是否使用子窗體執行以下操作。

主窗體(無子窗體) - 使用ApplyFilter

  1. 創建要麼輸入的值列表選擇爲所有12個月或與從月表的數據(使用隱藏或取消隱藏月份數)的組合框。
  2. 使用命令ApplyFilter爲AfterUpdate或OnClick按鈕事件創建宏或VBA例程。

宏:ApplyFilter FilterName: (leave blank), Where Condition: ="=[Record Month Field]='" & Forms!MainForm!FilterMonthCombo & "'", Control Name: (leave blank)

VBA:DoCmd.ApplyFilter , "[Record Month Field]='" & Me.FilterMonthCombo & "'"

主窗體(與子窗體) - 使用記錄源

  1. 創建要麼輸入的值列表選擇爲所有12個組合框月份或來自月份表的數據(使用隱藏或未隱藏的月份數)。
  2. 一個更新後或按鈕的OnClick事件動態篩選子窗體的記錄源創建VBA程序:

VBA:Forms!MainForm!Subform.Form.RecordSource = "SELECT * FROM Records WHERE [Record Month Field]='" & Forms!MainForm!FilterMonthCombo & "'"

1

我看來,像一個簡單的事情,在MS Access做。 如果您對VBA感到滿意,可以在 組合框的「AFTER UPDATE」事件上編寫一個程序。 該程序應簡單地更新的記錄源FROM到

"SELECT * FROM [the table with the records you want to filter] WHERE [Field with month number] = " & ComboxboxField.Column(0) 

設置您的組合框有兩列,一個與月數和其他與該月的名稱。 在格式化組合框時,選擇通過將其大小設置爲0來隱藏第一列數據「