1

MSAccess2007を使用しています。

データベース内にテーブルがあります。懸念される3つのフィールドは次のとおりです。

フィールド1=日付ロケーションオープン(日付)

フィールド2=終了した日付場所(日付)

フィールド3=ステータス(テキスト)

次の最善の方法についてのガイダンスが必要です。

フォーム入力レベルでは、ユーザーが日付の場所のオープンフィールドに日付を入力するとすぐに、[ステータス]フィールドが変更され、そのフィールドに「アクティブ」というテキストが表示されます。

ユーザーが[日付の場所]の[閉じた]フィールドに日付を入力するとすぐに、[ステータス]フィールドが[アクティブ]から[非アクティブ]に変わります。

これは、テーブルに追加されたレコードごとに発生します。

フォームを作成する前にルールまたは式を配置することを期待して、テーブルレベルでさまざまな検証ルールを試してみました。それはうまくいきませんでした。フォームレベルであると思います。おそらく答えは次のようになります。

MsAccess1フィールドが別のフィールドのデータをトリガーします

または、2つの文字列「アクティブ」と「非アクティブ」を宣言するコードの生成を確認してから、IF Date Location open has Date値を使用して、「Active」文字列をフィールドに追加する必要があります。

または、私は明白で、コンボボックスのように単純なものを見落としていますか?

4

1 に答える 1

1

「開封日」テキストボックスの更新後イベントを使用して、「ステータス」テキストボックスの値を設定します。そのテキストボックスの名前が「txtStatus」の場合、単純な割り当てステートメントは次のようになります。

Me.txtStatus = "Active"

ただし、最初に「終了日」がNullであることを確認することをお勧めします。そうしないと、ユーザーが後で「開いた日付」の値を変更した場合に、「非アクティブ」レコードが再び「アクティブ」に設定されます。

また、「オープン日」にNullを許可するかどうか、および既存の値をNullに変更した場合にどうなるかを検討してください。

同様に、「終了日」テキストボックスの更新後イベントを使用して、の値を調整しますtxtStatus。ただし、そこでのロジックは、更新イベント後の「オープン日」のロジックとは異なる可能性があります。

于 2012-10-13T04:44:55.973 に答える