2017-01-26 81 views
0

我試圖用填充下面的代碼下拉列表中的MS Access VBA組合框在MS Access

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

,但是這表明BankID記錄並沒有顯示BANKNAME。我錯過了什麼?有什麼方法可以顯示請選擇銀行的價值綁定爲-1?

回答

1

是的,您錯過了列數和列寬屬性,因此請確保這些屬性已正確設置。以下代碼隱藏BankId(列寬= 0)。如果你想同時顯示,只需將0更改爲1. 編輯以顯示提示作爲列表頭,下面的工作,但需要修改SQL字符串以更改列名稱。您可能需要所以整個頭是可見的調整列寬值:

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 

如果你不喜歡這個標題,你可以使用一個標籤對象與旁邊的組合框的靜態字符串。

編輯2: 如果你想顯示在下拉列表的標題列表打開之前,我認爲唯一的選擇是強制組合框的值,這將意味着LimitToList屬性必須設置爲假。不幸的是,這使用戶輸入未經驗證,可以隨意輸入任何他們想要的內容。下面是如何將工作:

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

你失蹤'結束With'。你能否告訴房產名稱用於顯示請選擇銀行? – Pankaj

+0

對不起。嘗試一下。您可以使用'ColumnHeads'屬性在列表頂部顯示列名,但我不清楚這是否是您想要的。 – MoondogsMaDawg

+0

有什麼方法可以停止在組合框中輸入文本? – Pankaj