おはようございます。
vb6+MDBの環境下で、コンボボックスについて質問です。
マスタとなるテーブルA(都道府県など)と、一般的(?)なデータを日々貯めていくテーブルBがあり、
Bに、Aのキーとなる値が保存されています。
テーブルデータBの表示・更新画面を作っているのですが、
テーブルAの内容を画面上のコンボボックスに選択項目としてADDして表示するところまでは出来たのですが、以下のことを実現するには、コンボボックスにどういう記述で実現するのかわかりません。
1.テーブルBに持っているAの都道府県コードに該当する項目を、Bのデータ選択時に表示したい。
【テーブルA】
Aのキーコード,都道府県名
【テーブルB】
Bのキーコード,Aのキーコード,住所…
このような場合、イベント時にコンボボックスをどのように処理するようにソースを書けば実現できますか?
No.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 = '東京都'"
とかえれば、対象レコードを東京都に限定して表示させることができます。
たびたび回答をつけていただきありがとうございます。
インデックスという単語で認識に差があるようで、またまた文章が下手ですいません。
インデックスは、コンボのアイテムに付与できる数値を言っていました。
このインデックスは数値なので、文字列でデータを持っている都道府県コードと結びつける方法が無いかと模索していました。名前付き配列と近いものをイメージしています。
FLEXGRIDは、使った事がないのですが、後ほど時間が出来た時に試してみます。情報ありがとうございます。
今回は、マスタの数が極端に増える想定をしていないので、テーブル側データに連番等をつけて対応も考えてみます。
No.1
- 回答日時:
質問がうまく理解できている自信がないのですが、
コンボボックス上で行が選択(変更)されたときに、
その都道府県名を元にSQLをつくり
(SELECT 都道府県コード FROM テーブルA WHERE 都道府県名 = '" & COMBO1.TEXTMATRIX.... & "'" のような)
adoなどで該当レコードを探してくる。
のようなことですかね。
回答ありがとうございます
質問が変で、すいません。うまく表現できませんでした。
まず、コンボに表示するものが、都道府県テーブル(A)の中身です。
テーブルからデータを取得し、レコードセットをコンボにADDITEMしています。初期表示でコンボに一覧が出る事も確認しました。
次に、テーブルBの1レコードを表示した際に、そのレコードで持っている、都道府県コードの値にコンボの表示を変えたいというのが、お聞きしたかった点です。
今度は、少し伝わりますでしょうか?
インデックスで指定してあげると表示が可能になりそうだというところまでは行ったのですが、都道府県コードに該当するものが文字列で、それをインデックスとして指定できないか悩んでおります。
もし、ご存知でしたら、また回答をお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessで別mdbのテーブルをコピー
-
手動または分散トランザクショ...
-
HTMLのテーブルの行数が多くな...
-
VB.NETでのAccessテーブルリンク
-
『列名 '担当者CD' があいま...
-
ACCESS2010 実行時エラー 2766
-
ExcelVBAからAccessMDB内のテー...
-
[C#] DataGridViewでコンボボッ...
-
★クリスタルレポートの元になる...
-
他のMDBのテーブルに追加したい
-
エクセルのテーブルを解除する...
-
AccessからExcelへエクスポート...
-
Access2007でアプリケーション...
-
MDBテーブルへの追加変更を教え...
-
ACCESSで項目の一部を取り出し...
-
SQL文で在庫推移を得る。
-
【ADO】「Execute」を使うと...
-
asp.net mvcを利用する場合の複...
-
ヘルプのSQLが動きません
-
SQLを発行とは?クエリの作成と...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
『列名 '担当者CD' があいま...
-
SQLを発行とは?クエリの作成と...
-
VBとアクセスでSQL文に変...
-
Accessで別mdbのテーブルをコピー
-
手動または分散トランザクショ...
-
エクセルのテーブルを解除する...
-
CSVファイルのエクスポートでソ...
-
AccessからExcelへエクスポート...
-
HTMLのテーブルの行数が多くな...
-
ACCESS2010 実行時エラー 2766
-
ExcelVBAからAccessMDB内のテー...
-
Excel複数シートをaccessへ一括...
-
DataGridViewに複数テーブルの...
-
他のMDBのテーブルに追加したい
-
ワークテーブルの作成について
-
★クリスタルレポートの元になる...
-
COBOLのINVALID KEYが理解でき...
-
VBでコンボボックスとテキスト...
-
VB.NETでのAccessテーブルリンク
-
Accessのフォームでリス...
おすすめ情報