2015-01-07 236 views
0

我使用的MS Access 2013年我的數據庫有四個相關表格:計算字段

Table A) Numerical_Key_A, {Other Data Items} 
Table B) Numerical_Key_B, "Adjustment Value", {Other Data Items} 
Table C) Numerical_Key_C, {Other Data Items} 
Table D) {Other Data Items}, Link-to-B, Link-to-A, Link-to-C 

但是它的工作原理,方式,是鏈接到C進入的記錄表D始終正好與Numerical_Key_A相距「調整值」。因此,我想在鏈接到鏈接和鏈接到鏈接時自動計算鏈接到鏈接。

據我所知,這將需要表D有一個計算字段,從鏈接的表B中獲取其數據,Access不允許該數據。有沒有另一種方法來做到這一點?如果可能的話,我寧願不使用VBA,但如果它是唯一的方法,我只需要學習如何去做。 (我知道VBA for Excel,但從未在Access中使用它)。

+0

如何查詢? –

+0

我知道如何創建查詢,但我將如何使用查詢來填充字段?或者我誤解我應該如何構建這個? –

+0

是的,你可以創建查詢返回計算數據甚至更好,你可以使用查詢結果來更新表字段。你想計算哪個領域?基於什麼條件? –

回答

0

如果我理解喲好了,所有你需要做的是創建表之間的連接,例如:

SELECT D.Field1, D.Field2, B.[Adjustment Value] 
FROM Table_D AS D INNER JOIN Table_B AS B ON D.Link-To-B = B.Numerical_Key_B 

欲瞭解更多信息,請參見:
Join tables and queries
How to: Perform Joins Using Access SQL

[編輯]

在表D,有一個領域,whi ch我在上面的snippit中標記爲「Link-to-C」。此字段應該與鏈接到一個加TableB.AdjustmentValue

SELECT D.Field1, D.Link-To-C + D.Link-To-A + B.[Adjustment Value] AS CalculatedField 
FROM (Table_D AS D INNER JOIN Table_B AS B ON D.Link-To-B = B.Numerical_Key_B) 
INNER JOIN Table_C AS C ON C.Numerical_Key_C = D.Link-To-C) 
INNER JOIN Table_A AS A ON A.Numerical_Key_A = D.Link-To-A 

注意的值來填充:我沒有機會來測試它。這只是一個想法。

最後,我需要警告您:訪問喜歡() /括號/多個連接時使用。

[EDIT2]根據討論

,下面的查詢將返回計算字段:

SELECT C.MetaLevel, R.LevelAdjustment, C.MetaLevel+ R.LevelAdjustment AS NominalLevel 
FROM tblRank AS R INNER JOIN tblCreatures AS C ON R.ID = C.Rank; 

如果你想在一個tblCreatures更新NominalLevel,使用這樣的查詢:

UPDATE tblCreatures AS C 
INNER JOIN tblRank AS R ON R.ID = C.Rank 
SET C.NominalLevel = (C.MetaLevel+ R.LevelAdjustment); 

NominalLevel已更新。您可以選擇它也...

SELECT C.MetaLevel, R.LevelAdjustment, C.NominalLevel 
FROM tblRank AS R INNER JOIN tblCreatures AS C ON R.ID = C.Rank; 

乾杯,
馬切伊

+0

所以,查詢的作品,它會產生一個很好的三個字段的列表。如何在計算字段中使用它,或者使用該查詢中的數據計算結果實際填充表D中的新字段? –

+0

你想計算什麼領域?基於什麼標準?爲了能夠回答,我需要知道你想要使用的邏輯。 –

+0

在表D中,有一個字段,我在上面的snippit中標記爲「鏈接到C」。此字段應填充Link-to-A的值加上TableB.AdjustmentValue –