2012-10-11 64 views
3

我正在爲MS Access 2010中的購買數據庫開展非盈利活動,並且遇到了一個我無法使用其他資源解決的問題。將子窗體中的新記錄與父窗體中的記錄關聯起來

我有兩個與此討論相關的表格,一個採購訂單和一個訂單項。每個行項目記錄都有一個採購訂單編號(實際上是允許字母輸入的文本字段)與「強制引用完整性」打開,一個採購單到多個採購項。)爲了編輯採購訂單,我有一個表格,這是我最初使用嚮導創建的,但從那以後已經進行了大量修改。在採購訂單編輯表單中是一個子表單,其中顯示採購行表的數據表視圖,該採購行表由當前在主表單中的採購訂單進行過濾。

最初,當我在子窗體中創建新記錄時,它會自動將鏈接PO字段設置爲當前PO。這樣,新的採購行記錄就與當前的採購訂單相關聯。然而,最近在鏈接字段中創建了沒有值的新記錄,除非手動選擇該列中的採購訂單,否則記錄將在保存時從視圖中過濾掉。

所以問題是,什麼屬性控制如何在這種類型的子窗體中初始化新記錄?是否有另一個可能導致此行爲的問題?

不幸的是我沒有馬上注意到這個問題,所以我不知道它的工作和失敗之間有什麼變化。此外,它似乎是間歇性的,在幾天內工作,而不是其他人(但在一天內不會改變)。我認爲這只是意味着我錯過了另一個變量。

,我嘗試過的一些事情,根據我的研究,詢問這裏之前:

此前,子窗體的「鏈接主字段」屬性設置爲父窗體的「ID」字段。我現在在主窗體中創建了一個文本框,該文本框鏈接到該字段並將其設置爲主字段。說實話,我不明白這會有什麼幫助,但多個如何操作的指南推薦它。

使購買行表中需要鏈接字段。這可以防止記錄消失,但不會更改初始化。

強制兩個字段之間的參照完整性。正如我所說,它現在被強制執行,但最初並非如此。這並沒有引起任何明顯的變化。

在進入子窗體之前手動保存記錄。同樣在退出之前保存子窗體記錄。

非常感謝您的任何建議。

+0

這可以在我的系統上正常工作。你可以開始一個新的簡單的數據庫,看看你是否遇到相同的問題?也許它是數據庫特定的。 – RLH

+0

新數據庫沒有相同的問題。他們工作得很好。我無法找出導致這個人不工作的差異,但不幸的是,我已經花費了太多的開發時間來重新開始工作。 – Ethan48

+0

由於問題僅限於一個數據庫文件,請參閱反編譯是否可以解決該問題。 http://stackoverflow.com/questions/3266542/ms-access-how-to-decompile-and-recompile反編譯可以修復編譯的VBA代碼中的損壞。不過,我並沒有太大的信心可以幫助解決這種情況,因爲我不瞭解在前一天失敗的情況下,應用程序如何能夠正常工作。 – HansUp

回答

0

在子窗體上,確保鏈接子字段和鏈接主字段屬性都設置爲創建關係的數據庫字段。如果父表單綁定到包含創建關係的關鍵字段的記錄源,則不需要指定文本框或任何其他控件來鏈接,只需指定字段的名稱。

1

我知道這篇文章比較老,但是我剛剛遇到了這個問題,並找到了解決方案。

我想你的數據庫是分裂的。當您的Access版本大於您的數據庫的內置版本時,會出現問題。

從您的前端刪除表格,然後重新鏈接到它們。重置您的表格主/子領域,一切都應該正常工作。

希望這可以幫助別人在未來。

+0

我很高興這爲你工作。有趣的是,我的數據庫沒有分裂,但問題最終神祕地消失了。 – Ethan48

相關問題