2016-05-25 11 views
1

Access 2010, Windows 7 Haben Sie ein Formular, das mehrere Listenfelder mit Dropdown-Listen enthält. Versuchen Sie, eine Funktion zu erstellen, die den Wert in einer in einem Listenfeld ausgewählten Zeile zurückgibt. Hier ist der Code, den ich habe;Erstellen Sie eine Funktion zum Abrufen von Wert aus Listboxen

Public Function listboxSel(listName As Control) As Integer 
    Dim rowIndex As Integer 
    Dim rowValue As String 
    Dim rowIsSelected As Integer 
    Dim result As String 

    ' ListBox row index clicked 
    rowIndex = Me.xxxxx.ListIndex 

    ' Row value clicked 
    rowValue = Me.xxxxx.Column(0) 
    rowIsSelected = Me.xxxxx.Selected(rowIndex) 
    listboxSel = rowValue 
    End Function 

Erstens, ich weiß nicht, wie Sie den Namen einer Listbox an die Funktion übergeben. Zweitens glaube ich nicht listName As Control ist richtig. Ich habe versucht, Teile des Codes, die ich im Internet gefunden habe, vergeblich.

+0

Mehrfachauswahl ist auf Keine eingestellt – jpl458

Antwort

0

Um das ausgewählte Element für eine Listbox zu erhalten, können Sie diesen Code hier verwenden. Ich habe ein Ereignis namens invoiceButton_Click, das den Code auslöst, um das ausgewählte Element im Listenfeld zu finden und etwas damit zu tun. Ich habe meinen Code herausgenommen, aber gelassen, was notwendig ist.

'Moves selected item from items listbox to invoice listbox 
Private Sub invoiceButton_Click() 

Dim rowIndex As Integer, pos1 As Integer, i As Integer, rowValue As String, str As String, strSQL As String 
Dim strToCut As String, tempStr As String, JobLinkCode As String, val As String 

' ListBox row index clicked 
rowIndex = Me.lbItems.ListIndex 

'Checks if an item in the listbox is selected. If nothing is selected, end the program. If something is selected, Do Something. 
'The .Column(0) is telling my code to use the first column of the listbox since they can contain multiple values. 
If IsNull(Me.lbItems.Column(0)) Then 
    End 
Else 

    'Do Something 

End If 

End Sub 

Auch müssen Sie keine Listbox in eine Funktion/Untergeben. Sie können auf dieses Steuerelement überall in diesem Formular zugreifen, daher muss es nicht als Parameter übergeben werden. Verwenden Sie einfach Me. [Listenfeldname]. [Funktion, die Sie verwenden möchten], um darauf zuzugreifen.

Hoffe, das hilft!

Verwandte Themen