version 3
ADD RECORD ({aTable}{; }{*})
| 引数 | 型 | 説明 | |
| aTable | テーブル | データ入力に使用するテーブル, または | |
| 省略した場合デフォルトテーブル | |||
| * | スクロールバーを隠す |
説明
ADD RECORDコマンドは、データベースのテーブルaTableまたはaTableが省略された場合デフォルトテーブルに、ユーザが新規レコードを追加できるようにします。
ADD RECORDは新しいレコードを作成、それをカレントプロセスのカレントレコードとし、カレントの入力フォームを表示します。アプリケーションモードにおいて、ユーザが新しいレコードを受け入れると、新しいレコードがカレントセレクションにある唯一のレコードになります。
次の図は、典型的なデータ入力フォームです。
このフォームはこのプロセスの最前面のウインドウに表示されます。ウインドウには、スクロールバーとサイズボックスがあります。オプションの * 引数を指定すると、スクロールバーやサイズボックスのないウインドウを描画します。
ADD RECORDは、ユーザがレコードを受け入れるか取り消すまでフォームを表示します。ユ−ザが複数のレコ−ドを追加する場合は、新しいレコードごとに1回ずつコマンドを実行しなければなりません。
ユーザが保存ボタンをクリック、またはenterキーを押す、またはACCEPTコマンドが実行されると、レコードが保存されます。
ユーザがキャンセルボタンをクリック、またはキャンセルキーコンビネーション (WindowsではCtrl-ピリオド、Mac OSではCommand-ピリオド) を押す、またはCANCELコマンドが実行されると、レコードは保存されません。
ADD RECORDの呼び出し後、システム変数OKにはレコードが受け入れられると1が、キャンセルされると0が設定されます。
Note: キャンセルされた場合でも、レコードはメモリ上に残されたままとなります。カレントレコードポインタが変更される前にSAVE RECORDコマンドを実行すれば、レコードは保存されます。
例題
1. 次の例は、データベースに新しいレコードを追加する際によく使われるループです:
INPUT FORM ([Customers];"Std Input") ` [Customers] ーブルの入力フォームを設定 REPEAT ` ユーザがキャンセルするまでループ ADD RECORD ([Customers];*) ` [Customers] ーブルにレコードを追加 Until (OK=0) ` ユーザがキャンセルするまで
2. 次の例は、顧客データを検索し、その検索結果により、2つのステートメントうちの1つを実行します。顧客が全く見つからない場合、ユーザはADD RECORDコマンドで新しい顧客を追加できます。少なくとも1つの顧客レコードが見つかった場合は、MODIFY RECORDにより最初のレコードが表示され、このレコードを修正できます:
READ WRITE([Customers])
INPUT FORM([Customers];"Input") ` 入力フォームを設定
vlCustNum:=Num(Request ("顧客番号を入力:")) ` 顧客番号を取得
If (OK=1)
QUERY ([Customers];[Customers]CustNo=vlCustNum) ` 顧客を検索
If (Records in selection([Customers])=0) ` 顧客が見つからなければ…
ADD RECORD([Customers]) ` 新規に顧客を追加
Else
If(Not(Locked([Customers])))
MODIFY RECORD([Customers]) ` レコードを更新
UNLOAD RECORD([Customers])
Else
ALERT("レコードは現在使用中です。")
End if
End if
End if
参照
ACCEPT, CANCEL, CREATE RECORD, MODIFY RECORD, SAVE RECORD.
システム変数またはセット
レコードを受け入れるとOKシステム変数が1に設定されます。キャンセルするとOKシステム変数が0に設定されます。OKシステム変数はレコードが受け入れられたかキャンセルされた後に設定されます。