2013-01-09 88 views
2

我剛剛開始使用MS Access 2010並進行以下設置。 3個excel文件:masterlist.x(其中包含我銷售的所有產品),vender1.x(其中包含來自vender1的所有產品,我只銷售其中一些產品),以及vender2.x(同樣包含來自vender2的所有產品,我只銷售其中的一些產品)。以下是一個示例數據集合:MS Access,Excel,SQL和新表格

masterlist.x 
ID  NAME  PRICE 
23  bananas .50 
33  apples .75 
35  nuts  .87 
38  raisins .25 

vender1.x 
ID  NAME  PRICE 
23  bananas .50 
25  pears .88 

vender2.x 
ID  NAME  PRICE 
33  apples .75 
35  nuts  .87 
38  raisins .25 
49  kiwis .88 

供應商列表會定期更新新項目的銷售和新價格。例如,vender1將香蕉的價格提高到0.75美元,我的masterlist.x需要更新以反映這一點。

我現在在哪裏:我知道如何將3個Excel圖表導入到Access中。從那裏開始,我一直在研究是否需要建立關係,創建宏或SQL查詢來實現我的目標。不一定尋找解決方案,但要指向正確的方向將是偉大的!

此外,一旦更新masterlist.x表,我將使用哪些功能查看哪些訂單項受到影響?

更新:發現了SQL /加盟/並具備以下條件:

SELECT * FROM master 
LEFT JOIN vender1 
ON master.ID = vender1.ID 
where master.PRICE <> vender1.PRICE; 

這給我的輸出(對於上述方案)

ID  NAME  PRICE ID  NAME  PRICE 
23  bananas .50  23  bananas .75 

什麼功能將改爲給我:

masterlist.x 
ID  NAME  PRICE 
23  bananas .75 
33  apples .75 
35  nuts  .87 
38  raisins .25 
+1

您需要發表問題。請參閱頁面頂部的FAQ鏈接。 – Hogan

+0

感謝您的反饋意見: 1.問題是:如何通過MS Access將vender1.x和vender2.x中的新價格更新爲masterlist.x? SQL?宏?還有別的嗎?任何您可以發送給我的研究起點? 2.不,賣家1和賣家2對每個不相交的產品都有唯一的ID。 – user1964238

+0

有一個'供應商表'和'產品表'然後你的主表是不是更好?而不是爲每個供應商提供一個對象...... :)你也可以更容易地引用完整性。如果你有改變設計的自由,那麼我就會這麼做... – bonCodigo

回答

0

這是一個向上的問題,因爲你要求設計的想法。我並不喜歡你當前的表格模式。以下查詢是在SQL Server 2008中構建的,這是我可以在sqlfiddle到MS Access SQL中獲得的最接近的語法。

請看看:

建議表設計:

vendor表:

VID  VNAME 
1  smp farms 
2  coles 
3  cold str 
4  Anvil NSW 

product表:

PID  VID  PNAME  PPRICE 
203  2  bananas  0.5 
205  2  pears  0.88 
301  3  bananas  0.78 
303  3  apples  0.75 
305  3  nuts  0.87 
308  3  raisins  0.25 
409  4  kiwis  0.88 

masterlist

ID PID  MPRICE 
1 203  0.5 
2 303  0.75 
3 305  0.87 
4 308  0.25 

連接查詢可以輕鬆更新您的masterlist現在。例如:

當供應商更新他們爲您提供的水果價格時。或者當他們停止供應該產品時。您可以使用where子句將條件添加到查詢中。

查詢:

SELECT m.id, p.vid, p.pname, p.pprice 
FROM masterlist m 
LEFT JOIN product p ON p.pid = m.pid 
; 

結果:

ID VID  PNAME  PPRICE 
1 2 bananas  0.5 
2 3 apples  0.75 
3 3 nuts  0.87 
4 3 raisins  0.25 

請評論。如果有任何疑問,很樂意幫助你。

+0

謝謝!我採納了您的建議,並將所有供應商表格合併到一張表格中。從那裏我使用了SQL語句: 'SELECT master.id,master.name,allproducts.price FROM master LEFT JOIN allproducts ON master.ID = allproducts.ID;' 感謝大家的幫助。不知道從哪裏開始,現在看到SQL是要走的路。 – user1964238