データコンボコントロールとテキストボックスの連動


ヨシノ  2006-01-07 02:40:54  No: 129410

こんばんは、お世話になっております。
データコンボボックスにて選択したデータの同じフィールドのデータを連結してテキストボックスに表示したいと考えております。

具体的に言うとテーブルにはID、メールアドレス、氏名があります。
データコンボボックスで氏名を選択したらテキストボックスにその氏名と同じ列にあるメールアドレスを表示したいのです。

下記の過去ログを読ませていただき色々プロパティ等を変えてみても出来なかったので質問させてください。
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200407/04070117.txt

Private Sub DataCombo1_Change()
    Debug.Print "Change" & Me.DataCombo1.SelectedItem
    
    With Me.Adodc1.Recordset
        '.MoveFirst                             ' ←この辺調整して下さい
        .Move Me.DataCombo1.SelectedItem - 1 ' ←この辺調整して下さい
        Debug.Print .Fields("社員番号")
    End With
End Sub

このまま記述するとadobcコントロールの矢印をクリックすると連動して動くのですが、データコンボボックスの文字をchangeイベントにて変えると
nullの使い方が不正です。と、出てしまいます。
clickイベントにしてやってもみましたがテーブルのデータが変に書き換わってしまうだけでだめでした。

申し訳ありませんがよろしくお願いします。


ヨシノ  2006-01-07 03:08:13  No: 129411

申し訳ありません。開発環境を書くのを忘れていました。
VB6.0+access2003です。

説明不足等あるかもしれませんが、よろしくお願いします。


特攻隊長まるるう  2006-01-07 04:05:53  No: 129412

そのことには気づいてましたが、対応が面倒だったので
>    Debug.Print "Change" & Me.DataCombo1.SelectedItem
のコードを入れています。エラーが起こるときは出力が
違ってたでしょ?

まず、一番単純なサンプルコードを書いてるだけなので、
例外処理は当然、入れてもらわないといけないです。
その為にはコードを理解して、どこでなぜエラーが出てるか
を確認してください。

デバッグすれば、おそらく
>.Move Me.DataCombo1.SelectedItem - 1
の行で止まるはずです。
で、
>Me.DataCombo1.SelectedItem
にカーソルを当てて内容を見るとNullとなってます。
これは、入力された文字がコンボのリストに無いため、
選択されたアイテム(SelectedItem)が無いということ
だと普通に考えれば思いますよね?プロパティを
どうこうして解決するはずがないじゃないですか?
…で、例外処理を追加してください。

…ただ、これをやったあと、リストにある文字列に
なっても SelectedItem が変わらなかったです。
…で、直接入力に対応させるためには変更される
ごとに Recordset  内を検索してやって SelectedItem を
自分で変更してあげないといけないなぁ…ってとこで
やる気を失いました。

まぁ、別のアプローチを考えたほうが良いかもしれません。
全て Recordset  内の検索を自分でやって、対応する
レコードが見つかれば処理実行に変えたらできそう。


ヨシノ  2006-01-07 04:30:23  No: 129413

特攻隊長まるるう様、ご返答ありがとうございます。

おっしゃるとおりの現象で何を追加して良いのかもわからないまま色々調べ回り、途方に暮れていました。
別のアプローチを考えてみます。

単純にデータコンボボックスで氏名を選択したらそれに対応するメールアドレスをテキストボックス表示させるという作業だったので簡単に考えていました。

何とか他の方法でもいいので解決できるようがんばってみます。

また何かありましたお願いします。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加