2014-04-22 182 views
0

我有一份報告,其中有幾個子報告以及一個子報告的子報告。訪問2007 - 參考來自子子報告的子報告值

與我有關的一個:

rptProgressReport - > rptEmployee(rptProgressReport分) - 根據需要> rptSubEmployeeProject(rptEmployee子)

到目前爲止,一切都在發生。員工按順序排列,子報表提取各種項目細節。除了我需要從一張桌子上花費時間。

tblProject(main table) - > tblProjectHistory(通過projectID-> fldProjectID與tblProject相關的表)。

tblProjectHistory有以下字段。 [historyID],[fldProjectID],[歷史信息],[歷史日期],[花費的時間],[員工]。

我需要爲所有顯示的項目和只要員工匹配且日期在指定日期範圍內的項目執行所有[時間花費]的總和。

指定的日期範圍是通過啓動窗體(frmReportGeneration)的字段txtStartDate和txtEnd日期。

子報告rptSubEmployeeProject有一個文本框(txtTimeSpent),我有以下控制源。

=Sum(DLookUp("[Time Spent]","tblProjectHistory","[Employee]='" & [Reports]![rptEmployee].[txtTempEmployee] & "' AND [History Date] > " & [Forms]![frmReportGeneration].[txtStartDate] & " AND " & [History Date]<" & [Forms]![frmReportGeneration].[txtEndDate] & ")) 

txtTempEmployee的rptEmployee字段正確顯示當前員工以匹配該子報告。

問題是我得到提示上面的代碼的每個值部分 - txtTempEmployee和txtStartDate/txtEndDate,即使我更改報告值爲[報告] [rptProgressReport] [rptEmployee] [txtTempEmployee]

!。

任何想法如何正確地從父報告或第一個子報告拉變量?

謝謝。

+++++更新+++++ 好的更新/關閉此。我最終需要做一些類似於接受答案中提出的建議。我無法將這個想法發佈到工作中 - 但我能夠在vba中設置臨時文件,並在整個報告/子報告中使用它們。

回答

1

不建議通過這個構造「Forms!....」(或「Reports!...」)來引用其他對象。
我對它做了一些不好的體驗。我建議把值到一個變量,並作出 獲取-的Funktion:
模塊中的定義:
形式

Publicg dtStart As Date 
Public gdtEnd As Date 

你,你火分配的開始和結束日期的按鈕報告

gdtStart = Me!txtStartDate 
gdtEnd = Me!txtEndDate 

現在的Get-功能:

Public Function Get_Date_Start() As Date 
    Get_Date_Start = gdtStart 
End Function 

Public Function Get_Date_End() As Date 
    Get_Date_End = gdtEnd 
End Function 

在查詢您現在可以使用這樣的:

... AND [History Date] > " & Get_Date_Start() & " AND " & [History Date] <" & Get_Date_End() 

BTW:不要使用空格中的任何對象名稱:代替[歷史日期]命名History_Date,可避免在代碼括號:-)

+0

謝謝。我很沮喪,最終做出了一個查詢,把所有的信息都拉進了 - 它看起來很醜 - 時尚但似乎正在工作。我指出了你所放的東西的用處。 – Chasester

+0

所以我試圖使用這個,因爲我決定打印PDF能力。雖然我可以在主要報告中設定日期(設置公共職能),但我無法在分報告中使用它。 (它不會讓我得到代碼突出顯示) 如果我直接運行子報告,我得到錯誤「數據類型不匹配」。我已經嘗試在日期欄的兩側放置英鎊符號,但無濟於事。我刪除了引號,並得到未定義函數的錯誤。我也嘗試將公共職能放在子報告的頂部。以下是我的Sub-Report RecordSource。 – Chasester