条件として表現するには

解決


message  2007-02-22 02:09:53  No: 25046

たびたび質問させていただいてます。今回はデータベース関連です。
うまい説明文が思い浮かばないので表を作ります。
テーブル(BOOK.db)  フィールド(Code,BookName,BookNo)
Code BookName BookNo
   1      aaa      1
   2      bbb      2
   3      ccc      4
   4      ddd      3

LookupComboBoxでBookNameフィールドの値を選択。選択された値のBookNoを条件として表現したいと思っているのですが、コードにどう書けばいいのか分かりません。

case ・・・・・BookNo of
  1:
  2:
  3:
  4:

・・・の部分をどう表現したらよいか、どなたかお教えください。


Ru  2007-02-22 03:59:35  No: 25047

こういうことでしょうか?
例として Table1 は TTable を使用しています。

case Table1.FieldByName('BookNo').AsInteger of
1:
2:
3:
4:
end;


message  2007-02-22 05:14:04  No: 25048

回答ありがとうございます。

Table1.FieldByName('BookNo').AsInteger 

で自動的にBookNameにあったBookNoを見つけてくれるのですか?


HOta  2007-02-22 08:09:15  No: 25049

Ruさんは、選択したレコードのBookNo項目の値という意味です。この値を検索するのなら、検索するコードを書かないといけません。
例えば、Locateを使うと
  if Table1.Locate('BookNo',2,[]) then
     見つけた場合の処理
  else
     無かった場合の処理;


Ru  2007-02-22 22:41:04  No: 25050

DBLookupComboBoxで選択したBookNameの同レコードのBookNoを取得するなら

TDataSet(DBLookupComboBox1.ListSource.DataSet).FieldByName('BookNo').AsInteger

今実験できる状態にないのでテストできていませんが,違ったらごめんなさい。


Ru  2007-02-22 22:45:26  No: 25051

すいません。TDataSet()はいらないです。


message  2007-02-24 03:53:38  No: 25052

Ruさん、HOtaさん、ありがとうございます。
Table1.FieldByName('BookNo').AsInteger of
で解決できました。


message  2007-02-24 03:55:01  No: 25053

まちがった・・・
case Table1.FieldByName('BookNo').AsInteger of ですね。


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

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






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