コンボボックスに表示させた以外のデータ項目をファイルに書き込むには?

解決


みゆみゆ  2002-11-25 21:05:48  No: 105513

初めて質問します。
商品マスタ=商品コード(文字または数字10桁)・商品名(文字40桁)・・・
顧客情報ファイル=顧客コード・商品コード・・・・
という二つのファイルを使って顧客情報の入力画面があります。
商品名をコンボボックスで表示・選択しますが、ファイルに書き込む時は商品コードで書き込みたいのです。商品コードは文字も入るし、桁数もまちまちです。
その場合、どのようにすればコンボボックスで選択された商品名から商品コードをもってくることができますでしょうか。
よろしくお願いします。


みゆみゆ  2002-11-25 21:06:46  No: 105514

追加記述です。
ただいま、VB6.0で開発してます。


YuO  2002-11-25 21:50:03  No: 105515

コンボボックスの並び順通りに商品コードを配列に保持しておいて,
コンボボックスのListIndexプロパティを利用して商品コードを取り出す,
というのではどうでしょう。


みゆみゆ  2002-11-25 22:36:31  No: 105516

お答えありがとうございます。
その「商品コードを配列に保持する」やり方を教えていただけますでしょうか。


とろ  2002-11-25 23:55:15  No: 105517

今は次のような感じで(おおざっぱで、すごい省略してますが)
コンボに商品名をセットしていると思います。
combo1.clear
set rs = openrecordset("select * from 商品マスタ")
do while rs.eof = false
    combo1.additem rs.fields("商品名").value
    rs.movenext
loop

これを
dim s商品コード()
combo1.clear
set rs = db.openrecordset("select * from 商品マスタ")
redim s商品コード(rs.recordcount - 1)
do while rs.eof = false
    combo1.additem rs.fields("商品名").value
    s商品コード(i) = rs.fields("商品コード").value
    rs.movenext
loop
のような感じにして、
コンボで選択されている商品名の商品コードを知りたい場合は
s商品コード(combo1.listindex) という感じです。


とろ  2002-11-25 23:56:20  No: 105518

上の書き込みで、 i が定義されていませんが、
やりたいことは分かって頂けたと思います。


みゆみゆ  2002-11-26 00:16:56  No: 105519

とろさん、すみません。
iの定義はなんですか?
まだ1ヶ月くらいの初心者で、初歩的なこともよくわからなくてすみません。
教えてください。


とろ  2002-11-26 01:04:56  No: 105520

今はどのようにコンボボックスに
商品名をセットしているのですか?

i が分からない程の初心者ならば、
コンボボックスにも商品名を
セットできなさそうですが...


みゆみゆ  2002-11-26 02:00:18  No: 105521

現在、コンボボックスのセットは下記の通りやっています。
Form1.combo_name.Clear
my_sql = "SELECT LSS1_CD,LSS1_NM FROM LSS1_MST"
Set rs = DB.OpenRecordset(my_sql,dbOpenSnapshot)
Do Until rs.EOF
   Form1.combo_name.AddItem rs.Fields("LSS1_NM")
   rs.MoveNext
Loop

先程、教えていただいた方法で、

i=0 を Do Until の上で定義し、i=i+1 を Loop  の前に入れてみましたところ、

    <  実行時エラー'9':インデックスが有効範囲にありません。>

となってしまったので質問させていただきました。
いかかでしょうか?


とろ  2002-11-26 02:40:24  No: 105522

ReDim Preserve sXXX(i)
sXXX(i) = 商品コード

のように、配列に商品コードをセットする前に
配列のサイズを変更しましょう。


みゆみゆ  2002-11-26 06:18:52  No: 105523

何度もお答えありがとうございます。
配列を作成するところはうまくいきましたが、
別のプロシージャで商品コードを見るときに、
       w_code = wk(Form1.combo_name.listindex)     'wkは配列 
のところで  
      <  実行時エラー'9':インデックスが有効範囲にありません。>
というエラーが発生します。
その原因はなんでしょうか?


YuO  2002-11-26 07:34:29  No: 105524

原因を探すのがデバッグという作業です。
UBound(wk)やLBound(wk), Form1.combo_name.ListIndexといった値を調べてみましたか?


みゆみゆ  2002-11-26 07:59:33  No: 105525

いろいろやってみましたが、出来ませんでしたので、一旦解決とさせていただきます。勉強不足を痛感します。SOHOですので、聞く人もなく、書物だけだとなかなか難しいです。自分でじっくりやってみます。ありがとうございました。


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

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






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