2

'test'という名前のテーブルがあり、その中に、、、という名前test_idの3つの列があるtest_nameとしtest_ageます。呼び出された取得引数を使用して:al_test_id、ユーザーにIDを挿入し、データベースで対応するIDエントリを検索し、見つかった場合はそれをユーザーに表示するように求めました。ここで、エントリが見つからない場合は、ユーザーが入力したIDを取得引数として使用して新しい行を挿入できるようにします。

どうやってやるの?

4

1 に答える 1

3

したがって、この問題には多くの解決策があります。これが1つです。

ユーザーが検索を開始したときに発生するイベントの場合(ii_TestIDはインスタンス変数であり、他の変数宣言はローカルであり、ユーザーに委ねられていることに注意してください)。

ii_TestID = Integer (sle_SearchTest.Text)
ll_RowCount = dw_Test.Retrieve (ii_TestID)
IF ll_RowCount = 0 THEN dw_Test.InsertRow(0)

UIに新しいテスト結果を追加するためのボタンがないと仮定するので、一度に1つだけ処理します。保存するイベントの場合:

li_ID = dw_Test.GetItemNumber (1, "test_id")
IF IsNull (li_ID) OR li_ID = 0 THEN dw_Test.SetItem (1, "test_id", ii_TestID)
dw_Test.Update()

test_idの設定を最後まで残しておくのはなぜですか?したがって、ウィンドウのCloseQueryイベントで次のようにコーディングできます。

IF dw_Test.ModifiedCount() > 0 or dw_Test.DeletedCount() > 0 THEN
   CHOOSE CASE MessageBox ("Huh?", "Would you like to save your changes before exiting?", Question!, YesNoCancel!)
      CASE 1
         EVENT ue_Save()
      CASE 2
         // do nothing
      CASE 3
         RETURN 1
   END CHOOSE
END IF

InsertRow()の直後にtest_idを変更した場合、ユーザーがまだ何もしていなくても、ModifiedCount()は行を変更済みとしてすぐに登録します。何もしていないときに変更を保存するようにコンピューターに促されることほど迷惑なことはありません。

幸運を、

テリー。

于 2010-06-16T12:22:22.687 に答える