2013-10-27 27 views
1

我不記得我的生活如何使用Access VBA獲取報表中特定控件的值。使用VBA獲取報告中特定控件的值?

我的報告有多行(它包含一個查詢結果的表)。我希望能夠雙擊一行中的字段並打開包含第二​​個查詢結果的單獨表單。這些結果應基於WHERE子句,其中包含最初雙擊的字段的文本。

如果我使用Me.ControlName.Value,我的第二個報告正在使用第一個報告中的每個記錄。我如何告訴它只使用雙擊的記錄?

回答

1

使用WhereCondition選項DoCmd.OpenReport根據第一個報告中的雙擊字段篩選第二個報告的記錄集。

下面的例子是在2007年的訪問報告文本框中水果與樣品數據庫文件的試驗時,有它創建一個WhereCondition字符串基於文本框的值,然後調用雙擊事件過程OpenReport與該字符串...

Private Sub Fruit_DblClick(Cancel As Integer) 
    Dim strWhere As String 
    strWhere = "[Fruit]='" & Me.Fruit.Value & "'" 
    Debug.Print strWhere 
    DoCmd.OpenReport ReportName:="rptLabel", _ 
     View:=acViewPreview, WhereCondition:=strWhere 
End Sub 
+0

這仍然循環瀏覽報告中的每個記錄,而不僅僅是點擊的記錄。只有點擊的記錄顯示在調試消息中,但它試圖輸出每個記錄的第二個報告,而不僅僅是單擊一個記錄。 – ClairelyClaire

+0

就好像WHERE子句沒有被包含在內。我已經驗證它是正確的(如果我在查詢中手動使用它,WHERE子句工作正常)。 – ClairelyClaire

+0

我不知道它爲什麼失敗。我在Access 2007中使用表單測試了這些代碼。向表單模塊的聲明部分添加Option Explicit,然後從VB編輯器的主菜單運行Debug-> Compile。你有編譯錯誤嗎? – HansUp