我有一個列表框,我填充表/查詢和「選擇」一些VBA代碼的多個條目。在Form_Current上,我打算讓代碼選擇該列表框中爲當前記錄選擇的任何項目(保存在另一個表格中)。VBA/MS訪問,清除新記錄中的選擇項目
當我點擊去下一個記錄時,先前選擇的列表框項目仍然被選中。我如何清除它們?我會認爲一個新的記錄會自動爲我做這一切。
我在12年來第一次回到VBA,所以我不是大師。
感謝, 漢斯
我有一個列表框,我填充表/查詢和「選擇」一些VBA代碼的多個條目。在Form_Current上,我打算讓代碼選擇該列表框中爲當前記錄選擇的任何項目(保存在另一個表格中)。VBA/MS訪問,清除新記錄中的選擇項目
當我點擊去下一個記錄時,先前選擇的列表框項目仍然被選中。我如何清除它們?我會認爲一個新的記錄會自動爲我做這一切。
我在12年來第一次回到VBA,所以我不是大師。
感謝, 漢斯
試試這個(found here):
Function ClearList(lst As ListBox) As Boolean
On Error GoTo Err_ClearList
'Purpose: Unselect all items in the listbox.
'Return: True if successful
'Author: Allen Browne. http://allenbrowne.com June, 2006.
Dim varItem As Variant
If lst.MultiSelect = 0 Then
lst = Null
Else
For Each varItem In lst.ItemsSelected
lst.Selected(varItem) = False
Next
End If
ClearList = True
Exit_ClearList:
Exit Function
Err_ClearList:
Call LogError(Err.Number, Err.Description, "ClearList()")
Resume Exit_ClearList
End Function
謝謝 - 我看到了代碼,但無法正常工作。現在它是。我正在做'ListBoxPrograms = ClearList(ListBoxPrograms)'之前我試過'ListBoxPrograms.ClearList()'和'ClearList(ListBoxPrograms)'沒有成功。第一個工作,但爲什麼VBA需要一個變量來獲得回報?我應該把它設置爲另一個變量還是我沒有問題?感謝您的幫助 - Hans – Hans 2011-04-04 20:25:52
您可以將它作爲Sub來使用,而且您不需要該變量。但是,爲了檢查返回值還有什麼要說的,請介意一下。 – BIBD 2011-04-04 22:09:16
你應該以'ClearList Me!ListBoxPrograms'或'Call ClearList(Me!ListBoxPrograms)'或'MyBooleanVariable = ClearList(Me!ListBoxPrograms)'的方式來做。沒有其他辦法可行。你做了'ListBoxPrograms = ClearList(ListBoxPrograms)'。這意味着您正在清除選擇,但將listbox value屬性設置爲True。這是無稽之談,並可能導致問題(我很驚訝它實際上不會導致錯誤)。 – 2011-04-07 03:44:06
編輯記錄有一個列表框是一個相當奇怪的方式來做事。 – 2011-04-07 03:44:40