0

子テーブルにレコードを追加するフォームを作成しました。ただし、他の人が二次キーを編集できるようにしたくはありません。親の主キーのリストまたはそれらの線に沿ったものからのみ選択してください。どうすればそれができますか?

テーブル:

CREATE TABLE CHAMPIONS (CNAME VARCHAR2(15) NOT NULL, PRICELEVEL NUMBER(1) NOT NULL, ROLE VARCHAR2(10) NOT NULL, HPLEVEL NUMBER(2) NOT NULL, ATKLEVEL NUMBER(2) NOT NULL, MAGICLEVEL NUMBER(2) NOT NULL, DIFFLEVEL NUMBER(2) NOT NULL); 

CREATE TABLE SKINS (SNAME VARCHAR2(20) NOT NULL, CNAME VARCHAR2(15) NOT NULL, PRICELEVEL NUMBER(1) NOT NULL); 

ALTER TABLE Champions ADD CONSTRAINT pk_Champions PRIMARY KEY (CNAME);

ALTER TABLE Skins ADD CONSTRAINT fk_Skins FOREIGN KEY (CNAME) REFERENCES champions(CNAME);
4

2 に答える 2

0

情報が少なすぎて答えられませんが、試してみることができます。

LOV詳細テーブルにsを作成し、それを親テーブルの主キーから駆動することができます。また、LOVをリンクするテキスト項目も、 sと同じクエリでトリガーをLOV設定する必要があります。を使用する代わりにユーザーが入力した場合、入力を検証し、無効な入力の場合はアラートを出し、正しい値が入力された場合は正しいマスター主キーをフェッチできます。WHEN-VALIDATE-ITEMLOVRECORD GROUPLOV

以下は、LOVボタンのあるデータブロックがどのように見えるかです-

ここに画像の説明を入力してください

以下は、データブロック内のSTOREアイテムのトリガーです-

ここに画像の説明を入力してください

クエリのマスターテーブルを考慮して、トリガーのクエリと同様にRGをコーディングできます。

于 2012-11-30T22:20:09.590 に答える
0

この機能を取得する最も簡単な方法は、champions.cnameに基づいてLOVを作成し、それをアイテムフォーム列skins.cnameに添付することです(LOV:sの作成に慣れていない場合は、フォームのヘルプを参照してください)。次に、アイテムskins.cnameのアイテムプロパティ「リストから検証」を「はい」に設定します。これにより、入力されたすべての値が既存のcname値に対して検証されます。

于 2012-12-03T06:32:19.153 に答える