2013-10-26 49 views
1

我已經創建了我的數據庫,並且我的數據庫中有學生姓名,出生日期,國籍,學校,部門,手機號碼,身份證號碼等選項卡。想要使用下拉搜索框搜索訪問數據庫中的值

我知道如何使用一個「文本框」搜索選項從數據庫中搜索數值。我可以創建一個文本框,也可以爲其創建查詢,並可以從數據庫中找出結果。

但在搜索表單中我想使用一個下拉搜索框。就像在選項卡國籍中,所有的國家都會在下拉列表中,如果我從下拉列表中選擇一個國家,我的結果將顯示來自該國家的所有學生信息。

Microsoft訪問專家需要您的幫助。

+0

http://stackoverflow.com/questions/7680171/getting-combobox-value-in-access-vba和http://stackoverflow.com/questions/3423442/access-2007-using-the- id-value-from-a-list-box-in-vba-sql-statement應該提供你的答案。取決於你使用組合框或列表框 – Grant

+0

@ TKEyi60我認爲你提到的上述兩個鏈接不能幫助我。我沒有得到任何通過使用組合框的方式,我的值顯示在結果中。 – user2663126

+0

對於收存箱,您可能需要組合框或列表框。然後,您可以使用表格或鍵入值填充它。要獲得選定的值,然後使用'Me.Combobox.Column(n)'。你是說你使用不同的方法?或者你正在嘗試它們,但它不起作用? – Grant

回答

0

你說,'我的結果會顯示該國的所有學生信息'。我不知道這是否意味着修改了表單數據源的結果,或者根據第一個組合框的選擇更改了第二個組合框。所以,下面我展示了一個簡化的方法。

Private Sub cboCountry_AfterUpdate() 
    If (vba.strings.len(cboCountry.Value & "")<>0) Then 
    'To change the RowSource of another combo box do the following: 
    cboStudents.RowSource = "SELECT * FROM Students WHERE CountryID = " & cboCountry.Column(0) 

    'To Filter the forms data source perform the following: 
    Me.Filter = "CountryID = " & cboCountry.Column(0) 
    Else 
    Me.Filter = "" 
    cboStudents.RowSource = "SELECT * FROM Students" 
    End If 

    Me.Refresh 
End Sub