Ms-Access
根據 Access 2016 中另一個外鍵的條目填充一個外鍵
使用者通過表格輸入證書。我希望 CertCounty 根據選擇的 TownshipID 進行填充。我嘗試了以下數據宏:
但是,它給了我這個錯誤:
我很確定我對 Value 的表達是不正確的,因為它是在黑暗中刺傷的,我幾乎沒有信心它是正確的。我也對其他解決方案持開放態度,例如 VBA,只是不確定該怎麼做,因為我仍在學習如何使用數據庫,尤其是 Access。
只是因為
$$ TownshipID $$已填充(即不為空)並且因為在兩個表之間定義了關係,這些事實並不意味著該表$$ Townships $$是開放的並且定位在任何特定的記錄上。您必須專門指示 Access 打開表並查找相關記錄。您可以使用LookupRecord操作在更改前數據宏中執行此操作。
Look Up a Record In: [Townships] Where Condition: Townships.ID = Certificates.TownshipID
在該操作的組內是放置 SetField 操作的位置。
其他評論:
數據宏最適合驗證數據。它們也可以像您一樣保持表格同步,但這些情況應該很少見,特別是如果您的表格已正確規範化。
看來 Certificates.TownshipID 是可選的,可以為空。我假設這意味著當沒有鄉鎮時,可以獨立指定縣為證書。正確的?如果是這樣,您的技術可能是合理的。否則,沒有必要將縣與證書一起儲存,因為它始終可以通過鄉關係檢索。
由於您已經有一個輸入證書數據的表單,您還可以將相關程式碼放在表單的模組中,例如在 TownshipID_AfterUpdate() 事件處理程序(或類似方法)中以檢索和更新縣資訊。