2015-11-19 60 views
1

組合框中選擇我有一個組合框([的TaskID])。 [任務ID]的行源來自表格,幷包含[任務ID]和[任務名稱],僅限於[有效](該表中另一字段)= True的條目。由於[任務ID]是要在[選擇的任務ID]字段中輸入的值,因此將其設置爲綁定列。因爲沒有人需要查看[任務ID](它只是一個自動編號)的值,所以列計數設置爲2,寬度設置爲0「; 2」。 今天有兩個任務的[Active]標誌被設置爲True,並且我有不同的記錄,其中[Selected Task ID]字段是這兩個任務中的一個。在窗體上,它看起來像:如何顯示綁定到字段[選定的任務ID]不能被選擇

  Task Name 
Record 1: Task 1 
Record 2: Task 2 

明天,任務1將不再有效(即不能分配時間它了)。我仍然希望能夠看到「任務1」的記錄顯示1(因爲它的[任務ID]存儲在[選定的任務ID]字段),但我不希望能夠選擇任務1了。當[有效]被設定爲False的任務1,但是,在表單字段的顯示是空白:

  Task Name 
Record 1: 
Record 2: Task 2 

(記住組合框既用於該字段顯示和設置數據)查看數據表本身,確實存儲了任務ID,但與其關聯的名稱未顯示(大概是因爲[Active]標誌被設置爲No,所以它不在組合框選項中) 。

我怎麼能顯示以前有效條目的值,而只是實現的目前有效條目的選擇?

回答

1
  1. 您可以創建兩個組合框:一個用於數據顯示而不過濾非活動元素,第二個用於數據選擇和過濾。將顯示控制選擇一個和代碼添加到GotFocus事件顯示控制:

    Me.cboSelect.SetFocus 
    Me.cboSelect.Dropdown 
    

    現在有效和無效的條目將始終可見,但用戶將無法從下拉列表中選擇無效的行。此解決方法的減號是,如果單擊該字段,無效條目的值將消失。

  2. 您可以將第三列添加到具有活動指示符的行源查詢中,首先按活動字段對列表進行排序,以便將非活動元素移動到列表末尾並將代碼添加到Before Update ComboBox的事件,該行爲不允許用戶選擇具有非活動元素的行。

+0

您的「選項2」就是我最終做的事情......偉大的思想家都認爲(至少我們是這樣做的)。選項2與Before Update事件的附加好處是,我可以提出警告,但允許用戶選擇非活動元素,如果這是他們真正想做的事情(例如,「回溯」活動)。謝謝! – ragoertz

相關問題