2015-10-27 14 views
0

我有幾個問題與Access(我不是一個總新手,但我離專家幾英里遠)。Miscrosoft訪問表和數據輸入問題

我沒有在一段時間內使用Access,並決定爲我的室內裝飾業務建立一個數據庫。

我製作了一張客戶表,這樣每次我在表單上輸入新的客戶詳細信息時,都會將數據存儲在客戶表中。

然後我做了一個報價表,我滾動瀏覽記錄,直到它拉起相關的客戶詳細信息。

,這裏是問題所在......

我再想獲得採取從包含客戶信息的箱子的細節,也從報價的細節,並將其存儲在一個表,讓我再有一張表格,其中包含所有客戶詳細信息和報價詳細信息,以便我可以打印報表(報價單)。

我很茫然,因爲如何將整個事情聯繫在一起,並使其按預期工作。

回答

0

這將導致「非標準化」,並在DB 101中教授。非標準化不好。很壞。

你想要做的是在Customer表中創建一個名爲CustomerID的字段。該字段應該是一個自動編號字段,也應該是您的主鍵。

在您的報價表中,創建一個名爲QuotationsID的字段。這也應該是自動編號/主鍵。在此表中,您將CustomerID存儲在一個字段中,並且只有與客戶有關的CustomerID。這樣,您可以更改Customers表中的任何信息,而不會影響其他數據集。

然後,您將加入查詢中的這些表。您應該永遠不會將其存儲在一個單獨的表中,因爲您的客戶一旦更改了他的電話號碼或任何其他信息,您的數據就會脫節。你可以建立一個這樣的查詢:

SELECT CInfo.*, Quot.* 
FROM tblCustomers CInfo 
LEFT JOIN tblQuotations Quot 
ON tblCustomers.CustomerID = tblQuotations.CustomerID 

這應該給你與每個客戶的每一個報價。然後,您可以篩選基於客戶ID,如果你只是想看到的數據與特定客戶通過添加一個WHERE子句上面的查詢:

SELECT CInfo.*, Quot.* 
FROM tblCustomers CInfo 
LEFT JOIN tblQuotations Quot 
ON tblCustomers.CustomerID = tblQuotations.CustomerID 
WHERE CInfo.CustomerID = "12345" 
+0

當我運行它說的第一個查詢「語法錯誤在連接操作」並突出顯示tblCustomers –

+0

這是您的客戶名稱表嗎? –

+0

該表被稱爲客戶是 –