因此,我有一個列表框,其值爲DeptA,DeptB,DeptC & DeptD。如果適用,我有一個方法可以使這些自動填充到這個列表框中。換句話說,如果它們填充在這個列表框中,我想讓結果邏輯在表中的一個布爾字段中表示它們是「是」。VBA - 訪問03 - 遍歷列表框,用if語句評估
因此,要做到這一點,我試圖通過列表框中首先要使用迭代這個例子週期,它的偉大工程:
dim i as integer
dim myval as string
For i = o to me.lstResults.listcount - 1
myVal = lstResults.itemdata(i)
Next i
如果我debug.print設爲myVal,我得到的名單我想從列表框中獲得的數據項目。所以現在我試圖評估該列表,以便我可以有一個UPDATE SQL語句來更新表,因爲我需要它完成。
所以,我知道這是一個錯誤,但是這是我試圖做的(給它作爲一個例子,這樣就可以看到什麼,我試圖去這裏)
dim sql as string
dim i as integer
dim myval as string
dim db as database
sql = "UPDATE tblMain SET "
for i = 0 to me.lstResults.listcount - 1
myval = lstResults.itemdata(i)
If MyVal = "DeptA" Then
sql = sql & "DeptA = Yes"
ElseIF myval = "DeptB" Then
sql = sql & "DeptB = Yes"
ElseIf MyVal = "DeptC" Then
sql = sql & "DeptC = Yes"
ElseIf MyVal = "DeptD" Then
sql = sql & "DeptD = Yes"
End If
Next i
debug.print (sql)
sql = sql & ";"
set db= currentdb
db.execute(sql)
msgbox "Good Luck!"
所以你可以明白爲什麼這會導致問題,因爲這些值(DeptA,DeptB等)自動填充的列表框是動態的......列表框中很少有一個值,並且每個OrderID的值列表更改我使用的表單首先填充信息;唯一的實例)。
我正在尋找一種能夠一次評估這個列表的東西(即遍歷值的列表,並查找「DeptA」,並且如果找到,則向SQL字符串添加「是」,如果不是向SQL字符串添加「否」,然後繼續進行下一次迭代)。即使列表框動態填充值,它們是設置值,這意味着我知道最終會有什麼結果。
感謝您的幫助, 賈斯汀
什麼是列表框的行來源和行來源類型? – Fionnuala 2010-05-31 18:04:07
這聽起來像你沒有遵循你在這個問題給出的建議,http://stackoverflow.com/questions/2921454/access-2007-vba-building-a-listbox-with-selection-choices-from- another-list-box - 你接受了答案,但在我看來,當你應該使用子表單時,你再一次嘗試使用列表框。 – 2010-05-31 18:54:09
@Remou:Type = ValueList,Row Source =「」 – Justin 2010-06-02 01:55:04