2016-08-15 9 views
0

Access 2013フォームに3列の複数列コンボボックスがあります。私がコンボボックス内のアイテムの1つを選択すると、それが設定される値は、第1列の値になります。 VBAを使ってコンボボックスの値を3つの値すべてに設定する方法はありますか?できない場合は、最初の列の値ではなく、3番目の列の値にどのように値を設定できますか?アイテムを選択した後、複数列のコンボボックスの値をすべての列に設定しますか?

これは私のコンボボックスは、次のようになります。

enter image description here

だけではなく "1" を示す:これは私が最初の項目を選択した後、それは次のようになります

enter image description here

ドロップダウンリストのように "1 | 2015 | 1.1"を表示します。

答えて

2

(行ソース内の列を連結する以外は)できません。

項目を選択した後に表示される値は、常に最初に表示される列です。
3列目を表示するには、前の列をwidth = 0に設定するか(必要でないかもしれない)、最初の列に移動します。

コンボボックスのValueは、表示値と異なる場合があります。Bound columnプロパティで制御されています。

他の列にアクセスするには、.Columnプロパティを使用します。例えば。コントロールソース=myComboBox.Column(2)でコンボボックスの後にテキストボックスを追加して、選択した項目の3番目の列を表示することができます。

+0

ありがとうございます。私は、コンボボックスを作成していたクエリの順序を変更してしまったので、クエリから返された最初のフィールドとして表示したい値を入れました。私はあなたの答えを数分で受け入れることができます – Michael

0

この問題を回避するには、次のユーザーフォームのコードウィンドウで、次の

  • 場所、それを完全に隠すためにコンボボックス上のラベル(「Label1をする」と言う)が、そのドロップダウンボタン

  • 場所かもしれませんコード:

    Private Sub ComboBox1_Change() 
        Dim cbIndex As Long 
    
        With Me 
         cbIndex = .ComboBox1.ListIndex 
         If cbIndex = -1 Then 
          .Label1.Caption = "" 
         Else 
          .Label1.Caption = .ComboBox1.List(cbIndex, 0) & "|" & .ComboBox1.List(cbIndex, 1) & "|" & .ComboBox1.List(cbIndex, 2) & "|" 
         End If 
        End With 
    End Sub 
    

ユーザーがすべてのFUNCTを持つことになります。この方法コンボボックスのアイオニティー全体を読むときテキストの要素の1つを選択すると

+0

@マイケル:これを試しましたか? – user3598756

関連する問題