0

数千のアイテムを含むリストボックスがあります。この脅威で@AngryHackerによって提供された以下のコードは、最初の一致を取得したい場合に最適です。しかし、同じデータを持つ複数のアイテムがある場合があります。それで、すべての試合を取得したいのですが、どうすればよいですか?

ああ、実際には、次のようなものです: aa4 sds aa5 aa6 fdf dsf

リストから「aa」で始まる項目のインデックスを取得したい

Private Declare Function SendMessage Lib "USER32" Alias "SendMessageA" _
     (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As _
     Integer, ByVal lParam As Any) As Long

'constants for searching the ListBox
Private Const LB_FINDSTRINGEXACT = &H1A2
Private Const LB_FINDSTRING = &H18F

'function to get find an item in the Listbox
Public Function GetListBoxIndex(hWnd As Long, SearchKey As String, Optional FindExactMatch As Boolean = True) As Long

    If FindExactMatch Then
        GetListBoxIndex = SendMessage(hWnd, LB_FINDSTRINGEXACT, -1, ByVal SearchKey)
    Else
        GetListBoxIndex = SendMessage(hWnd, LB_FINDSTRING, -1, ByVal SearchKey)
    End If

End Function
4

2 に答える 2

0

次のコードを解決する方法として、このような同様のケースがあります。

Adodc1.Recordset.MoveFirst Adodc1.Recordset.Find "DEBTOR_CODE = '" & Text11.Text & "'" If Adodc1.Recordset.EOF = True Or Adodc1.Recordset.BOF = True Then MsgBox "Record Not Found!", vbApplicationModal Adodc1.Recordset.MoveFirst Me.Combo1.SetFocus Me.Combo1.ListIndex = Me.Text11.Text End If

債務者コードを検索する必要があり、各債務者には複数のアドレスがあり、コンボ ボックスで複数の回答を取得する必要があります

于 2014-11-14T04:45:17.117 に答える