たびたび質問させていただいてます。今回はデータベース関連です。
うまい説明文が思い浮かばないので表を作ります。
テーブル(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:
・・・の部分をどう表現したらよいか、どなたかお教えください。
こういうことでしょうか?
例として Table1 は TTable を使用しています。
case Table1.FieldByName('BookNo').AsInteger of
1:
2:
3:
4:
end;
回答ありがとうございます。
Table1.FieldByName('BookNo').AsInteger
で自動的にBookNameにあったBookNoを見つけてくれるのですか?
Ruさんは、選択したレコードのBookNo項目の値という意味です。この値を検索するのなら、検索するコードを書かないといけません。
例えば、Locateを使うと
if Table1.Locate('BookNo',2,[]) then
見つけた場合の処理
else
無かった場合の処理;
DBLookupComboBoxで選択したBookNameの同レコードのBookNoを取得するなら
TDataSet(DBLookupComboBox1.ListSource.DataSet).FieldByName('BookNo').AsInteger
今実験できる状態にないのでテストできていませんが,違ったらごめんなさい。
すいません。TDataSet()はいらないです。
Ruさん、HOtaさん、ありがとうございます。
Table1.FieldByName('BookNo').AsInteger of
で解決できました。
まちがった・・・
case Table1.FieldByName('BookNo').AsInteger of ですね。
ツイート | ![]() |