おはようございます。
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で質問しましょう!
似たような質問が見つかりました
- SQL Server DBのテーブルの設計ができず困っています。 2 2023/06/29 16:43
- Access(アクセス) Accessにインポートした複数のテーブルを表示させる方法が分かりません。 1 2023/01/30 20:22
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Access(アクセス) Accessの参照フィールドの列がずれてしまいます 1 2023/07/19 15:00
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- その他(Microsoft Office) ワードのマクロについて教えてください。 1 2023/01/21 16:01
- Visual Basic(VBA) ExcelVBA ドロップボックスで月を選択するとそれ以降のデータが残るようにしたい。 3 2022/12/16 14:53
- Oracle sqlのupdate文で質問です。 テーブルBの番号をキーにテーブルAの身長をテーブルBの身長に更新 2 2022/11/02 15:15
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
WORD VBA プログラム修正をお願...
-
AccessからExcelへエクスポート...
-
ExcelVBAについて
-
VBとアクセスでSQL文に変...
-
VB.NET データセットとADOレコ...
-
『列名 '担当者CD' があいま...
-
ACCESS クエリで 昇(または降...
-
VBでコンボボックスとテキスト...
-
CSVファイルのエクスポートでソ...
-
html javascriptにてWeb SQLを...
-
DataGridViewに複数テーブルの...
-
VBAで OLEオブジェクト型のフ...
-
ExcelVBAからAccessMDB内のテー...
-
MDBテーブルへの追加変更を教え...
-
他のMDBのテーブルに追加したい
-
C# OleDbDataAdapter.Fillメソ...
-
.net 複数の主キーを設定する方法
-
Accessで宛名ラベルに同一宛先...
-
ADO&mdbで、リンクテーブルの...
-
ASP.NET GridView 一致した行の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
WORD VBA プログラム修正をお願...
-
VBとアクセスでSQL文に変...
-
Accessで別mdbのテーブルをコピー
-
『列名 '担当者CD' があいま...
-
ExcelVBAからAccessMDB内のテー...
-
他のMDBのテーブルに追加したい
-
手動または分散トランザクショ...
-
SQLを発行とは?クエリの作成と...
-
DataGridViewに複数テーブルの...
-
CSVファイルのエクスポートでソ...
-
AccessからExcelへエクスポート...
-
エクセルのテーブルを解除する...
-
Excel複数シートをaccessへ一括...
-
HTMLのテーブルの行数が多くな...
-
COBOLのINVALID KEYが理解でき...
-
アクセステーブル、リンクとロ...
-
ACCESSのテーブル名をリストに...
-
ACCESS2010 実行時エラー 2766
-
DataGridの中身をDataSetにテー...
-
【ADO】「Execute」を使うと...
おすすめ情報