msアクセスフロントエンドを備えたSQLサーバーデータベースがあります。
特定のテーブルに順番にデータを強制的に入力したい。
たとえば、id = 1 が追加された後にのみ id = 2 を入力でき、2 と 1 が追加された後にのみ id = 3 を追加できます。
これを強制する最良の方法は何ですか? アクセス フロントエンドに制限を追加する必要がありますか、それとも SQL テーブルにトリガーなどを追加する必要がありますか?
msアクセスフロントエンドを備えたSQLサーバーデータベースがあります。
特定のテーブルに順番にデータを強制的に入力したい。
たとえば、id = 1 が追加された後にのみ id = 2 を入力でき、2 と 1 が追加された後にのみ id = 3 を追加できます。
これを強制する最良の方法は何ですか? アクセス フロントエンドに制限を追加する必要がありますか、それとも SQL テーブルにトリガーなどを追加する必要がありますか?
私は@Vamsi Pamulaに同意します、あなたはそれを行うことができます. ただし、探していることだけを実行したい場合は、次のようにします。
まず、ユーザーが新しいレコードを入力しようとすると、ここでは 10 と仮定して新しい ID を追跡します。そして、最初にデータベースで Max id をクエリしてから、次のように入力します。
YourTable から isnull(Max(id),0) を選択します
上記のクエリが 8 を返したとします。したがって、10 は許可されません。今すぐチェックしてください:
if (ReturnedValuefromAboveQry + 1 = NEWID) then
msgbox "Allowed."
else
msgbox "Not Allowed."
End If
そうする場合は、その ID を主キーとして保持し、プロパティをidentity
(自動インクリメント) に設定します。その値を挿入する必要はありません。残りの列を挿入すると、その ID は自動的に 1、2 などとして保存されます。