2015-05-20 52 views
0

我有一個包含兩個組合框的表單,第一個(cboSet)選擇一個類集合,第二個(cboName)顯示該集合中的學生名稱(ID隱藏在第一列)。我有一個按鈕,我想用它來找到該組中的下一個學生。我已經嘗試實現下一個按鈕,它將轉到下一個記錄,但不是正確的學生。任何幫助將非常感激。 enter image description here如何查找基於組合框「篩選器」的下一條記錄

+1

你是怎麼嘗試創建你的下一個學生按鈕的。如果您在嘗試中有任何代碼,請將其發佈。截圖也會有所幫助。 – Newd

+0

=「[EnglishID] =」&Str(Nz([Screen]。[ActiveControl],0))在進入下一個記錄的那一刻,但我希望下一個與組合框相同的EnglishID。我已經搞砸了這個變種,但他們還沒有成功......我是新來的,因爲你可以告訴;) –

回答

0

當你說下一個學生時,你是指具有下一個數字標識的學生,還是你在爲下一個學生使用其他標準? 假設您想要與下一個學生過濾表單,這裏有一種可能的解決方案。沒有更多細節,這個例子有些含糊。看到你已經有了什麼會讓它更精確。

在按鈕的onclick事件:

Dim ID as Integer 

ID = me.cboName.column(0) + 1 
me.filter = "[ID] = " & ID 
me.filteron = true 

找到您所設定的下一個值,你可以不喜歡以下,當然,這只是一般的,基礎(希望有人正確)的代碼,所以你必須改變它以適應你的需求,但它應該指向你正確的方向。

dim db as dao.database 
dim rs as dao.recordset 
dim nextID as interger 
dim SQLquery as string 
nextID = 0 

SQLquery = "SELECT TOP 1 ID from COMBO_RECORD_SOURCE WHERE ID > " & me.namecombo.column(0) & " ORDER BY ID" 
set db = currentdb 
set rs = db.openrecordset(SQLquery,dbOpenSnapshot) 
if rs.recordCount > 0 THEN 
    rs.movefirst //I know it's not strictly necessary, old habit I like to do.. 
    nextID = rs!ID 
end if 

if nextID > 0 then 
    me.filter = "[ID] = " & nextID 
    me.filteron = true 
else 
    msgbox "There are no more names in this set." 
end if 

set rs = nothing 
set db = nothing 
+0

該表格是基於一個查詢有英文標識,然後集學生的名字。在第一個組合框中,您選擇該組合,並使用相關名稱更新第二個組合框。我想要做的是點擊按鈕,同一組中的下一個學生將出現。英文ID的編號是按照數字順序排列的,但我希望它跳到與該組中的學生相對應的ID。希望有所幫助。 –

+1

上面的概念將起作用,你只需要弄清楚如何提取你的設置中的下一個學生的ID。你如何在組合框中獲得學生的姓名?通過查詢。您應該能夠通過查找查詢中用作記錄源的下一個最大ID來查找集中的下一個ID。然後如上所述進行過濾。 – Gene

+0

你能指點我在正確的方向開始嗎?我已經在宏建設者中做了一些工作,我會使用tempVar和某種表達式嗎?目前,我有一個消息框來顯示當前的ID,也許我可以從那開始? –

相關問題