Access データベースにカスタム主キーを作成したいと考えています。
データベースはマルチユーザーになるため、複数のユーザーが同じテーブルに新しいレコードを追加しようとしている場合でも、各キーが一意であることを保証する方法が必要です。
カスタムの主キーを作成する必要があるのは、データベースが、私が制御できない別の外部システムに入る監査証跡から始まるためです。
ただし、この別のシステムでは、12 文字の長さのユーザー定義フィールドを 1 つ使用して、選択したデータを渡すことができます。
そのユーザー定義フィールドを使用して、後で推定できるさまざまな略語を持つ 12 文字のコードを記録したいと思います (たとえば、最初の 2 文字は組織の部門に関連し、次の 3 文字は製品に関連するなど)。 ..)
私がこれまでに読んだことによると、Access のカスタム キーは地雷原のようです。
ただし、私の目的のためには、Access の autonumber フィールドを組み合わせて、基本的に必要な主キーを構築するのに少なくとも妥協が見られます。
これが私が考えていたことです:
後で推定したいコードの部分は、ユーザーが作成できます。たとえば、部門が人事部の場合、最初の 2 文字は常に「HR」になります。
次に、「HR」エントリが入力された同じテーブルのフィールドに対してアクセスのオートナンバーを実行させたとしましょう...同じテーブルで2を自動的に連結する3番目のフィールドを取得できますか(クエリではありません)。 .? つまり、このように:
| Department | AutoNumber | CustomPrimaryKey |
| HR | 1 | HR1 |
それが VBA のあるイベントで実行できるものであれば、それは素晴らしいことです (コードを見せてください! :))
2番目の部分は、カスタム主キーの「一意の番号」部分が99999から00001の間、つまり次のように同じ5文字のスペースを占めることを保証するために、自動番号を先行ゼロと連結できるかどうかです。
| Department | AutoNumber | CustomPrimaryKey |
| HR | 1 | HR00001 |
| HR | 2 | HR00002 |
100,000 を超えるエントリが必要になる可能性はほとんどありません。
これが可能で安全であることを願っています!