次の方法で共有

フォームのコンボボックスの更新後イベントにおいてListIndex値が変更されてしまう。

Anonymous
2012-12-06T04:35:18+00:00

いつもお世話になっております。

コンボボックスの更新後イベントにおいて、ListIndexプロパティに設定される値が処理中に変更されてしまうケースがあるのですが、

該当事象に関するアナウンスやListIndexを用いずにその時点で参照されている選択項目を取得する方法はありませんでしょうか。

■発生事象

 フォームのコンボボックスの更新後イベント中で、フォームのリフレッシュや他のコンボボックスの値集合ソースを変更するとListIndexの値が変化する。

■コンボ0設定内容

 値集合ソース:「あ;1;い;2;い;3;う;4」

 連結列:「2」

■コンボ0更新後イベント

 Private Sub コンボ0_AfterUpdate()

  [テキスト0].Value = [コンボ0].ListIndex

  Me.Refresh

  '[コンボ1].RowSource = "a;1"

  '※他のコンボボックスのRowSorceを変更する場合も同様

  [テキスト1].Value = [コンボ0].ListIndex

 End Sub

■テキスト0,テキスト1,コンボ1設定

 初期値で配置

■実行結果

画面上でコンボボックスより「い;3」を選択した場合テキストボックスに表示される値は下記の通り。

テキスト0:「2」

テキスト1:「1」 ←1列目に重複データが存在する場合、重複データの先頭値がListIndexとなってしまう。

なお上記事象はAccess2002では発生しておりませんでした。

Microsoft 365 と Office | アクセス | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2012-12-06T08:54:26+00:00

こんばんは、ずっちです。

コンボボックスの列数が多いのであれば、

テキスト0.Value = コンボ0.Column(1)

って書き方もで取得する方法もありますよ。

添字はゼロスタートなので、今回の例では「1」を指定すると数字を取得できます。

この回答は役に立ちましたか?

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2012-12-06T05:48:54+00:00

こんにちは、ずっちです。

同様のものを作ってみると、たしかにおっしゃるようになりますね。

ところで、コンボボックスの連結列2の値を使うのでは問題があるんでしょうか。

テキスト0.Value = コンボ0.Value

Me.Refresh

テキスト1.Value = コンボ0.Value

こう書いてやると問題なく表示できました。

コンボの値を使うのがよくないのならば話は別ですけど、

直しも少ないですし、これで代用してみてはいかがでしょうか。

この回答は役に立ちましたか?

0 件のコメント コメントはありません

2 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2012-12-06T09:29:08+00:00

    ずっちさん

    コンボボックスの値の取得方法ありがとうございました。

    対応方法検討させていただきます。

    場合によっては値取得前にコンボ0.Value = コンボ0.Valueの様に

    自分自身を一旦代入する方法もありかもしれないと思いました。

    ご教示ありがとうございました。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2012-12-06T08:08:08+00:00

    ずっちさん

    お世話になっております。

    実際使用している部分では、コンボボックスの列がもう少し多く、非表示となっている列の値を取得する処理で問題がでていたのですが、ご指摘のValue値を用いて該当項目を特定することで対応できそうです。

    確認中 ListIndexの動作につきまして別途疑問点が出たのですが、内容がことなりますので別途ご質問をあげさせていただきます。

    ご回答ありがとうございました。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません