cawboy > 10-01-18, 10:08 AM
cpucloi > 10-01-18, 11:10 AM
Function fncSelectNextInListbox( _
lst As Access.ListBox, _
Optional bWrap As Boolean) _
As Long
' Select the next item in the list box passed as .
' If no item is selected, select the first one.
' If the optional argument is True, then the selection
' will wrap around from the last item in the list box to the
' first item.
' NOTE: THIS FUNCTION ONLY WORKS FOR NON-MULTISELECT LIST BOXES.
' Copright (c) 2009, DataGnostics LLC.
' You are free to use this code in your application, so long
' as the copyright notice remains unchanged.
Dim lngMaxIndex As Long
Dim lngFirstIndex As Long
With lst
If .ListCount <> 0 Then
lngFirstIndex = Abs(.ColumnHeads)
lngMaxIndex = .ListCount - lngFirstIndex - 1
If .ItemsSelected.Count = 0 Then
.Value = .ItemData(lngFirstIndex)
Else
If .ListIndex >= lngMaxIndex Then
' We're at the end of the list box.
If bWrap Then
.Value = .ItemData(lngFirstIndex)
End If
Else
.Value = .ItemData(.ListIndex + lngFirstIndex + 1)
End If
End If
End If
fncSelectNextInListbox = .ListIndex
End With
End Function
Function fncSelectPreviousInListbox( _
lst As Access.ListBox, _
Optional bWrap As Boolean) _
As Long
' Select the previous item in the list box passed as .
' If no item is selected, select the first one.
' If the optional argument is True, then the selection
' will wrap around from the first item in the list box to the
' last item.
' NOTE: THIS FUNCTION ONLY WORKS FOR NON-MULTISELECT LIST BOXES.
' Copright (c) 2009, DataGnostics LLC.
' You are free to use this code in your application, so long
' as the copyright notice remains unchanged.
Dim lngMaxIndex As Long
Dim lngFirstIndex As Long
With lst
If .ListCount <> 0 Then
lngMaxIndex = .ListCount - 1
lngFirstIndex = Abs(.ColumnHeads)
If .ItemsSelected.Count = 0 Then
.Value = .ItemData(lngMaxIndex)
Else
If (.ListIndex + lngFirstIndex) <= lngFirstIndex Then
' We're at the top of the list box.
If bWrap Then
.Value = .ItemData(lngMaxIndex)
End If
Else
.Value = .ItemData(.ListIndex - 1 + lngFirstIndex)
End If
End If
End If
fncSelectPreviousInListbox = .ListIndex
End With
End Function
cawboy > 11-01-18, 02:18 PM
(10-01-18, 11:10 AM)cpucloi Đã viết: Bạn ngâm cứu thử function sau nhé (mình hay dùng chuột hơn).
Mã PHP:Function fncSelectNextInListbox( _
lst As Access.ListBox, _
Optional bWrap As Boolean) _
As Long
' Select the next item in the list box passed as .
' If no item is selected, select the first one.
' If the optional argument is True, then the selection
' will wrap around from the last item in the list box to the
' first item.
' NOTE: THIS FUNCTION ONLY WORKS FOR NON-MULTISELECT LIST BOXES.
' Copright (c) 2009, DataGnostics LLC.
' You are free to use this code in your application, so long
' as the copyright notice remains unchanged.
Dim lngMaxIndex As Long
Dim lngFirstIndex As Long
With lst
If .ListCount <> 0 Then
lngFirstIndex = Abs(.ColumnHeads)
lngMaxIndex = .ListCount - lngFirstIndex - 1
If .ItemsSelected.Count = 0 Then
.Value = .ItemData(lngFirstIndex)
Else
If .ListIndex >= lngMaxIndex Then
' We're at the end of the list box.
If bWrap Then
.Value = .ItemData(lngFirstIndex)
End If
Else
.Value = .ItemData(.ListIndex + lngFirstIndex + 1)
End If
End If
End If
fncSelectNextInListbox = .ListIndex
End With
End Function
Function fncSelectPreviousInListbox( _
lst As Access.ListBox, _
Optional bWrap As Boolean) _
As Long
' Select the previous item in the list box passed as .
' If no item is selected, select the first one.
' If the optional argument is True, then the selection
' will wrap around from the first item in the list box to the
' last item.
' NOTE: THIS FUNCTION ONLY WORKS FOR NON-MULTISELECT LIST BOXES.
' Copright (c) 2009, DataGnostics LLC.
' You are free to use this code in your application, so long
' as the copyright notice remains unchanged.
Dim lngMaxIndex As Long
Dim lngFirstIndex As Long
With lst
If .ListCount <> 0 Then
lngMaxIndex = .ListCount - 1
lngFirstIndex = Abs(.ColumnHeads)
If .ItemsSelected.Count = 0 Then
.Value = .ItemData(lngMaxIndex)
Else
If (.ListIndex + lngFirstIndex) <= lngFirstIndex Then
' We're at the top of the list box.
If bWrap Then
.Value = .ItemData(lngMaxIndex)
End If
Else
.Value = .ItemData(.ListIndex - 1 + lngFirstIndex)
End If
End If
End If
fncSelectPreviousInListbox = .ListIndex
End With
End Function