アプリ版:「スタンプのみでお礼する」機能のリリースについて

おはようございます。
vb6+MDBの環境下で、コンボボックスについて質問です。
マスタとなるテーブルA(都道府県など)と、一般的(?)なデータを日々貯めていくテーブルBがあり、
Bに、Aのキーとなる値が保存されています。
テーブルデータBの表示・更新画面を作っているのですが、
テーブルAの内容を画面上のコンボボックスに選択項目としてADDして表示するところまでは出来たのですが、以下のことを実現するには、コンボボックスにどういう記述で実現するのかわかりません。
1.テーブルBに持っているAの都道府県コードに該当する項目を、Bのデータ選択時に表示したい。

【テーブルA】
Aのキーコード,都道府県名

【テーブルB】
Bのキーコード,Aのキーコード,住所…

このような場合、イベント時にコンボボックスをどのように処理するようにソースを書けば実現できますか?

A 回答 (2件)

>都道府県コードに該当するものが文字列で


MDB上でのインデックスの設定はフィールドのプロパティでインデックスを「はい(重複あり)」か「はい(重複なし)」にすることによって可能です。

関係ないかもしれませんが、私が良くやることで一番簡単だと思われる方法は、MS Hierarchical FlexGrid を使うものです。

DIM CON AS NEW ADODB.CONNECTION
DIM RST AS NEW ADODB.RECORDSET
strConMDB = "PROVIDER = MICROSOFT.JET.OLEDB.4.0; DATA SOURCE = C:\MDB\MDBFILE.MDB; PERSIST SECURITY INFO = FALSE"
strSQL = "SELECT * FROM TABLEA"
CON.OPEN strConMDB
RST.OPEN STRSQL,CON,ADOPENKEYSET,ADLOCKOPTIMISTIC
SET ME.MSHFLEXGRID1.RECORDSET = RST
RST.CLOSE
CON.CLOSE
のような感じでTABLEAの全レコードをMSHFLEXGRID1に表示させることができます。
strSQL を
"SELECT * FROM TABLEA WHERE PREFECTURECODE = '東京都'"
とかえれば、対象レコードを東京都に限定して表示させることができます。
    • good
    • 0
この回答へのお礼

たびたび回答をつけていただきありがとうございます。

インデックスという単語で認識に差があるようで、またまた文章が下手ですいません。
インデックスは、コンボのアイテムに付与できる数値を言っていました。
このインデックスは数値なので、文字列でデータを持っている都道府県コードと結びつける方法が無いかと模索していました。名前付き配列と近いものをイメージしています。


FLEXGRIDは、使った事がないのですが、後ほど時間が出来た時に試してみます。情報ありがとうございます。

今回は、マスタの数が極端に増える想定をしていないので、テーブル側データに連番等をつけて対応も考えてみます。

お礼日時:2009/09/09 08:30

質問がうまく理解できている自信がないのですが、



コンボボックス上で行が選択(変更)されたときに、
その都道府県名を元にSQLをつくり
(SELECT 都道府県コード FROM テーブルA WHERE 都道府県名 = '" & COMBO1.TEXTMATRIX.... & "'" のような)
adoなどで該当レコードを探してくる。

のようなことですかね。
    • good
    • 0
この回答へのお礼

回答ありがとうございます
質問が変で、すいません。うまく表現できませんでした。

まず、コンボに表示するものが、都道府県テーブル(A)の中身です。
テーブルからデータを取得し、レコードセットをコンボにADDITEMしています。初期表示でコンボに一覧が出る事も確認しました。
次に、テーブルBの1レコードを表示した際に、そのレコードで持っている、都道府県コードの値にコンボの表示を変えたいというのが、お聞きしたかった点です。
今度は、少し伝わりますでしょうか?
インデックスで指定してあげると表示が可能になりそうだというところまでは行ったのですが、都道府県コードに該当するものが文字列で、それをインデックスとして指定できないか悩んでおります。
もし、ご存知でしたら、また回答をお願いします。

お礼日時:2009/09/08 12:36

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