条件として表現するには

解決


message  2007-02-21 17:09:53  No: 25046  IP: 192.*.*.*

たびたび質問させていただいてます。今回はデータベース関連です。
うまい説明文が思い浮かばないので表を作ります。
テーブル(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-21 18:59:35  No: 25047  IP: 192.*.*.*

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

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

編集 削除
message  2007-02-21 20:14:04  No: 25048  IP: 192.*.*.*

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

Table1.FieldByName('BookNo').AsInteger 

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

編集 削除
HOta  2007-02-21 23:09:15  No: 25049  IP: 192.*.*.*

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

編集 削除
Ru  2007-02-22 13:41:04  No: 25050  IP: 192.*.*.*

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

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

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

編集 削除
Ru  2007-02-22 13:45:26  No: 25051  IP: 192.*.*.*

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

編集 削除
message  2007-02-23 18:53:38  No: 25052  IP: 192.*.*.*

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

編集 削除
message  2007-02-23 18:55:01  No: 25053  IP: 192.*.*.*

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

編集 削除