Доколкото знам, не можете да препращате към повече от една таблица или заявка в обобщена функция на домейн. Както казва grazird, как са свързани тези таблици? Да кажем, че е на tblMain ID, можете да създадете заявка, наречена, да речем, qryMainOffice, SQL (SQL View, Query Design window) ще изглежда нещо като:
SELECT [tblMain].[Revenue],[tblMain]![Quarter],[tblMain]![Region],
[tblOffice]![Location]
FROM tblMain
INNER JOIN tblOffice
ON tblMain.ID = tblOffice.MainID
Тогава DSum ще бъде (премахнете прекъсването на реда):
=NZ(DSum("[Revenue]","qryMainOffice",
"[Quarter]=3 AND [Region]='NorthEast' AND [Location]='NewYork'"),"Not found")
Можете също така да използвате набор от записи или заявка във VBA, за да върнете стойността.
РЕДАКТИРАНЕ на КОМЕНТАР
За да използвате горното във VBA, трябва или да добавите параметри, или да използвате низ:
''Reference: Microsoft DAO 3.x Object Library
Dim rs As DAO.Recordset
Dim db As Database
Dim strSQL as String
Set db= CurrentDB
strSQL = "SELECT Sum(t.[Revenue]) As TotalNY" _
& "FROM tblMain t " _
& "INNER JOIN tblOffice o " _
& "ON t.ID = o.MainID " _
& "WHERE t.[Quarter]=3 AND t.[Region]='NorthEast' " _
& "AND o.[Location]='NewYork' " _
'' I have use aliases for simplicity, t-tblMain, o-tblOffice
'' If you wish to reference a control, use the value, like so:
'' & " AND [Location]='" & Me.txtCity & "'"
'' Dates should be formated to year, month, day
'' For joins, see http://www.devshed.com/c/a/MySQL/Understanding-SQL-Joins/
Set rs = db.OpenRecordset strSQL
If Not rs.EOF Then
Me.txtAnswer = rs!TotNY
Else
Me.txtAnswer = "N/A"
End If
Можете също да използвате различни заявки, за да върнете няколко резултата, които могат да бъдат показани със списъчно поле или подформуляр:
strSQL = "SELECT TOP 5 o.[Location]," _
& "Sum(t.[Revenue]) AS TotRevenue" _
& "FROM tblMain t " _
& "INNER JOIN tblOffice o " _
& "ON t.ID = o.MainID " _
& "WHERE t.[Quarter]=3 AND t.[Region]='NorthEast' " _
& "GROUP BY o.[Location]"
Горното ще върне приходи за тримесечие 3 за всички местоположения в Североизточен регион. Ако искате най-високите стойности на всяка група, вие разглеждате по-сложна заявка, която ще оставя за сега.
person
Fionnuala
schedule
29.07.2009