0

Access フォーム/Access データベースを Access フォーム/SQL データベースに移行しています。

アクセスで行われている検証を模倣する際に問題があります。

ユーザーが新しいレコードを入力し、必須フィールドをスキップしてアクセスで保存しようとすると、一部のフィールドが必須であることを示すメッセージ ボックスが表示されます (検証ルール)。

私にとっての問題は、同じシナリオで、欠落しているフィールドについてSQL例外が発生することです..検証ルールが設定されていますが。最初にそのフィールドに移動してから、そこからの脱出または保存を試みない限り、検証ルールは機能しません。ただし、たとえば、1) 新しいレコードを開始する 2) 最初のフィールドに何かを入力する 3) 下矢印を押してレコードを保存する場合は機能しません

行全体で検証を行うにはどうすればよいですか (コードの記述に頼らずに優先)

次のスクリーンショットに例を示します。表示されている最後の列には値が必要ですが、そこにある検証は、特にそのフィールドに移動して何か間違ったことを入力しない限り、強制されません。ご覧のとおり、最後の 2 つのレコードは検証なしで保存されています。

ここに画像の説明を入力

4

1 に答える 1

1

Access と SQL Server の違いを理解する必要があります。

  • Access は、単一ユーザーが統合したデータベース/ユーザー インターフェイスです。使いやすく、プログラミングも簡単です。
  • SQL Server は、Windows フォーム プロジェクト、Web サイト、または (あなたの場合は) Access など、ユーザー インターフェイスを提供するために他のものに依存する強力なマルチユーザー データベースのみです。そのプログラマーとそのユーザーは、非常に異なるスキルセットを持つ別の人であり、前者は後者から保護する必要があると予想されます.

1 層ソリューションから 3 層ソリューションになりました。層は、ユーザー インターフェイス層 (アクセス) - ビジネス ロジック層 (アクセス/SQL Server?) - データ層 (SQL Server) です。データの検証は、情報の各部分について、これらのレイヤーのそれぞれで行う必要があります。

多層アプリケーションについて読むことをお勧めします。

特定の問題に関して-選択が「切り抜き」と「シード」の間のみである場合、これはテキストフィールドを使用するのではなく、新しいテーブルへの外部キー関係によって制御する必要があります。UI はこれを使用して、無効なデータが入るのを防ぐコンボ ボックスの選択を生成することができ、FK 関係はそれが発生したとしてもそれを拒否します。ビジネス ロジックの変更 (たとえば、「苗木」の許可) は、FK テーブルにレコードを追加するだけで対応できます。

于 2013-07-08T05:08:07.513 に答える