2017-01-28 10 views
0

私はコンボボックス問題:VBAのMS Access

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

しかし、原因、私は銀行を選択してください」である最初の項目を選択することはできませんよ、いくつかの理由を移入するコードを以下しています"

何か間違っていますか?

下記のコメントに従って、以下のコードを変更しました。

StrSQL = "Select 0 as BankID, 'Please Select Bank' As [Please Select Bank] from tblBank UNION Select BankID, BankName As [Please Select Bank] from tblBank" 

With Me.cmbBank 
    .RowSource = StrSQL 
    .ColumnCount = 2 
    .BoundColumn = 1 
    .ColumnWidths = "0in.;1in." 
    .ColumnHeads = True 
    .LimitToList = True 
    .Requery 
End With 
+0

「私が選択することはできませんよ「銀行を選択してください」という最初の項目 - あなたのテーブルに「銀行を選択してください」というレコードがありますか?それはその列の名前のようです。あなたはコンボボックスで列名を選択できるはずがありません。 BankIDとしてSelect 0を選択してください。BankをSelect tblBankから選択してください。UNION Select BankID、BankName as BankをPlease select Bankから –

+0

私は最初のレコードを複製しています。スクリーンショットをご覧ください:https://i.stack.imgur.com/Oz3QV.png – Pankaj

答えて

-1

これは、(コンボ/リストボックスからの値が常に文字列である)十分なはずです:

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

編集 - 列の頭を持っていないに:

With Me.cmbBankSearch 
    .RowSource = StrSQL 
    .ColumnCount = 2 
    .BoundColumn = 1 
    .ColumnWidths = "0in.;1in." 
    .ColumnHeads = False 
    .LimitToList = True 
    .Value = "0" 
End With 
+0

の上に更新されたコードを追加しましたが、それでも問題は解決しません。最初のレコードを選択できない理由(銀行を選択してください) – Pankaj

+0

これは、ColumnHeadsをTrueに設定したためです。それが最初のエントリです。 – Gustav

+0

'ColumnHeads = False'を設定した場合、「Please Select Bank」は最初のレコードとして表示されません。私の質問は:コンボボックスですでに選択されているデータベースレコードがある場合は、「銀行を選択してください」というオプションを選択させるにはどうすればいいのですか? – Pankaj

関連する問題