プロが教えるわが家の防犯対策術!

ACCESS VBA コンボボックス 初期表示について。質問します。m(__)m
教えてください。 VBAのフォームロードでコンボボックスに初期表示

させたいのですが、初期表示させいたい内容というのが、テーブルにある例えば列名AAA、列名BBBがあるとして
 列名AAAの中で「3」を持っている、列名BBBの名前を初期表示させたいのです。

テーブル名 CCC
AAA...BBB.
...1 ......あ....
...2.......い....
...3.......う....
...4 ......え...

このテーブル「CCC」でいえば3を指定して、「う」をフォームロードでコンボボックスに初期表示させたいのですがどうやればいいのでしょうか?
いまの状態はコンボボックスに「あ・い・う・え」の順番で取っきていて「あ」が初期表示になっています。
コードの書き方がわかりません。教えてください
テーブルCCCはフォームのプロパティのコントロールソースでつなげてあります。

↑という風に質問させていただいて
回答していただいた内容は

//何番目のデータを初期表示したいか決め、FORM LOAD時にその値をLISTINDEXにセットすれば良いのでは?
//即ち
//Private Sub Form_Load()
//Combo1.ListIndex = 2
//End Sub
//のようにプログラムを書けば良いと思います。但し、初期値は”0”なので注意が必要です。

としていただいたのですが、私の質問が説明が足りていなくて改めて質問させていただきます。
テーブルの中身はそのときそのときで入れ替わります。

テーブル名 CCC 
AAA...BBB..........................................AAA..BBB
...1 ......あ....左の並びのときもあれば.......3.......か
...2.......い....右のように並びが変わる.......1.......け 
...3.......う......時があります。....................2.......さ
...4 ......え................................................4.......な

このときに「3」を指定して、3に対応するBBBの行をフォームロードでコンボボックスに初期表示させたいのですがどうやればいいのでしょうか?

A 回答 (2件)

データを値集合ソースにて接続します


SELECT AAA,BBB FROM CCC
コンボボックスの書式の 列数と列幅を
列数 : 2
列幅 : 0,3
# 後ろの3は プロパティ幅に合わせます

FormのLoadイベントに
  dim n as integer
  for n = 0 to コンボ0.ListCount -1
    if コンボ0.ItemData(n) = 3 then
      コンボ0.SetFocus
      コンボ0.ListIndex = n
      Exit for
    end if
  next
といった記述で良いと思います
    • good
    • 1
この回答へのお礼

無事できました 
助かりました。
ありがとうございました。
今後ともよろしくお願い申し上げます

お礼日時:2007/11/19 22:49

ハズしていたら、ゴメンナサイ...


「初期表示」と言われていますが、
「初期」という文言を使うと、「初期値」と読み取られ、
「最初に3が選択された状態にしておきたい」と思われてしまいます。
もしかして、本当の要望は、
「AAAフィールドが3のものだけを、値集合のソースとしたい」ではないですか?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
NO1の方のやり方でできました。 
言葉足らずでご心配、ご迷惑をおかけしました。
無事できました。ありがとうございました。
今後ともよろしくお願い申し上げます。

お礼日時:2007/11/19 22:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング