2011-10-11 76 views
0

我在窗體上有兩個組合框。第一種方法允許用戶按名稱搜索記錄,當選擇記錄時,表單上的所有其他控件都會更新。我不記得我是如何做到這一點的,我想這可能是通過嚮導完成的。但現在我想添加第二個組合框,允許用戶按地址進行搜索,但是當在此新組合框中選擇地址時,記錄不會更新。MS Access - 2組合框,一個不更新

這是我曾嘗試:

Private Sub Form_Activate() 
    Me.Refresh 
End Sub 

而且......

Private Sub Combo250_AfterUpdate() 

Me.Requery 

End Sub 

,也是一個SearchForRecord宏與使用該WHERE子句

="[ID] = " & Str(Nz(Screen.ActiveControl,0)) 
搜索的第一條記錄

涉及的兩個表是受衆特徵和地址,它們由ID列連接。

請幫忙!

回答

1

使用嚮導添加組合框,當選項顯示「根據我在我的組合框中選擇的值在我的表單上查找記錄」時,選擇該記錄並繼續執行嚮導。

手冊代碼:

所有的
With Me.RecordsetClone 
    .FindFirst "Address='" & Me.cboAddress & "'" 
    If Not .NoMatch Then 
     Me.Bookmark = .Bookmark 
    End If 
End With 
+0

我知道我已經看到過,但現在它並沒有在嚮導中顯示爲選項。你遇到過這個問題嗎? – jerry

+0

另外,我知道這個選項在記錄源爲空時不顯示,但我實際上在記錄源中有多個表,所以它應該顯示 – jerry

+0

@Jerry看起來你的表單基於一個SQL字符串而不是一個表或查詢,這會產生你遇到的問題。您可以將記錄源另存爲查詢,並且您的嚮導將再次運行,也可以手動創建代碼。 – Fionnuala

0

首先,你應該給控件有意義的名字,如cboSearchByAddress

我不知道該怎麼SearchForRecord宏工作,但你可以在更新後事件改變代碼:

Private Sub cboSearchByAddress_AfterUpdate() 
    Me.Filter = "[ID]=" & Nz(cboSearchByAddress,0)) 
    Me.FilterOn = True 
End Sub 

您可能需要取決於組合框的設置更改Nz(cboSearchByAddress,0))Nz(cboSearchByAddress.Column(0),0))