在列表框中找到具有特定值的第一条记录

时间:2015-02-09 18:08:34

标签: vba ms-access

假设我有两个列表框,第一个是:

ID | Name1 | Name2
 1    dcf    jkl

,第二个是

ID_1 | Name1 | Addr
 1    abc     add1
 2    dcf     add2
 3    cde     add1
 4    dcf     add2

我想说看看" dcf" name1在第二个列表框中。基本上,如果" dcf"在任何地方的第二个列表框中,将其设置为活动,然后执行此操作,否则,执行其他操作。我熟悉写if语句和我需要的内容,我似乎无法弄清楚如何只搜索" dcf"在第二个列表框中。

2 个答案:

答案 0 :(得分:1)

我认为这就像你在寻找的东西。显然,代码需要经过调整,以便在找到记录和命名方案后执行您想要的操作,但结构就在那里。

Private Sub ListBox1_AfterUpdate()

    Dim rs       As Recordset
    Dim o        As Object
    Dim blnFound As Boolean

    Set rs = Me.ListBox2.Recordset

    rs.MoveFirst

    Do While Not rs.EOF
        If Nz(rs.Fields(0), "") = Me.ListBox1.Column(0) Then
            blnFound = True
            MsgBox "Found"
        End If
        rs.MoveNext
    Loop

End Sub

答案 1 :(得分:1)

或者这个:

Private Sub List0_AfterUpdate()
Dim i As Long
    For i = IIf(List2.ColumnHeads, 1, 0) To List2.ListCount - 1
        If List2.Column(1, i) = List0 Then
            MsgBox "Found"
        End If
    Next
End Sub

请注意,Column是基于零的,因此Column(1, rowIndex)是列表数据中的第二列。