さて、私は許容できる解決策を見つけることができました!
まず第一に、MS Access では、テーブルにイベント ドリブン データ マクロを使用する場合、 Autonumberフィールドの値が完全に挿入されて DB に保存されるまで、その値を直接参照することはできないようです (これは、他のフィールド タイプの場合)。パラメータとして渡されると、常にNULL VALUEが返されます。
そうは言っても、カスタム VBA 関数を使用して、Autonumber フィールドのCURRENT SEED NUMBERを引き続き参照できます( HansUp for This Postに感謝します)。
Public Function NEXTAUTONUM(ByVal pTable As String, ByVal pColumn as String) As Long
Dim CAT As Object
Set CAT = CreateObject("ADOX.Catalog")
Set CAT.ActiveConnection = CurrentProject.Connection
NEXTAUTONUM = CAT.Tables(pTable).Columns(pColumn).Properties("Seed")
Set CAT = Nothing
End Function
NEXTAUTONUM は、Access が次に [ID] フィールドに設定する Autonumber 値を返します。これは、HASH FUNCTION が入力パラメーターとして必要とするものです。これで、Before Change イベントでデータ マクロを作成できます。これは次のようになります。
If [IsInsert] = True Then
Set Field
Name Hashed ID
Value = HASHFUNCTION ( NEXTAUTONUM ( "Serials","ID" ) - 1 )
End If
さらに、NEXTAUTONUM 関数によって返された値から 1 を減算します。これは、次に作成される行ではなく、現在作業中の行の [ID] Autonumber 値が必要だからです。
これが誰かを助けることを願っています!