2017-01-26 15 views
0

Ich versuche, den Drop-Down mit folgendem Code in MS Access VBACombobox in MS Access

strSQL = "Select BankID, BankName from tblBank" 
Me.cmbBank.RowSource = strSQL 
BoundColumn = 2 
Me.cmbBank.Requery 

aber dies zeigt BankID Datensätze bevölkern und nicht den Banknamen zeigt. Fehle ich etwas? Gibt es eine Möglichkeit zu zeigen? Bitte wählen Sie Bank mit Wertbindung als -1?

Antwort

1

Ja, Sie vermissen die Spaltenanzahl und die Spaltenbreiteneigenschaften. Stellen Sie daher sicher, dass diese richtig eingestellt sind. Der folgende Code verbirgt die BankId (Spaltenbreite = 0). Wenn beide angezeigt werden sollen, ändern Sie einfach die 0 in eine 1. EDIT, um die Eingabeaufforderung als Kopfzeile der Liste anzuzeigen. Folgendes funktioniert, aber die SQL-Zeichenfolge muss geändert werden, um den Spaltennamen zu ändern. Möglicherweise müssen Sie die Spaltenbreite Wert einzustellen, so dass die gesamte Header sichtbar ist:

strSQL = "Select BankID, BankName As [Please Select Bank] from tblBank" 
With Me.cmbBank 
    .RowSource = strSQL 
    .ColumnCount = 2 
    .BoundColumn = 2 
    .ColumnWidths = "0in.;1in." 
    .ColumnHeads = True 
    .Requery 
End With 

Wenn Sie den Header nicht gefällt, können Sie ein Label-Objekt mit einer statischen Zeichenfolge neben der Combobox verwenden können.

Edit 2: Wenn Sie den Header in der Combobox angezeigt werden sollen, bevor die Liste öffnet, ich glaube, die einzige Möglichkeit ist, den Wert in der Combobox zu zwingen, was bedeuten würde, dass die LimitToList Eigenschaft muss eingestellt werden falsch. Leider bleibt der Benutzereintrag unbewertet und kann beliebig eingegeben werden. Hier ist, wie das funktionieren würde:

strSQL = "Select BankID, BankName As [Please Select Bank] from tblBank" 
With Me.cmbBank 
    .RowSource = strSQL 
    .ColumnCount = 2 
    .BoundColumn = 2 
    .ColumnWidths = "0in.;1in." 
    .ColumnHeads = True 
    .LimitToList = False 
    .Requery 
    .Value = "Please Select Bank" 
End With 

MSDN Column Count

MSDN Column Width

+0

Sie fehlten 'With' End. Können Sie den Namen der Immobilie angeben, die verwendet werden soll? Bitte wählen Sie Bank? – Pankaj

+0

Entschuldigung. Probieren Sie es aus. Sie können die 'ColumnHeads' -Eigenschaft verwenden, um die Spaltennamen am Anfang der Liste anzuzeigen, aber mir ist unklar, ob dies das ist, was Sie wollen. – MoondogsMaDawg

+0

Gibt es eine Möglichkeit, den Text in der Combobox nicht mehr einzugeben? – Pankaj