在列表框中查找具有特定值的第一条记录
find first record with a specific value in list box
假设我有两个列表框,第一个是:
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" 在第二个列表框中。
我认为这正是您要找的东西。显然,一旦找到记录和您的命名方案,就需要调整代码以执行您希望它执行的操作,但结构就在那里。
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
或者这样:
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(1, rowIndex)
是列表数据中的第二列。
假设我有两个列表框,第一个是:
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" 在第二个列表框中。
我认为这正是您要找的东西。显然,一旦找到记录和您的命名方案,就需要调整代码以执行您希望它执行的操作,但结构就在那里。
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
或者这样:
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(1, rowIndex)
是列表数据中的第二列。