[英]Sorting of a calculated field fails when using report within a form in Access
我有一個報告,其中包含一些代碼,可以在計算所得的列上進行排序,因此,當用戶單擊標簽時,將對報告進行排序,這是以下代碼:
Private Sub Label44_Click()
If Me.OrderBy = "IIf([SumOfCurrentPriceVol]<>0,([SumOfOfferedPriceVolume]-[SumOfCurrentPriceVol])/[SumOfCurrentPriceVol],0) DESC" Then
Me.OrderBy = "IIf([SumOfCurrentPriceVol]<>0,([SumOfOfferedPriceVolume]-[SumOfCurrentPriceVol])/[SumOfCurrentPriceVol],0) ASC"
Else
Me.OrderBy = "IIf([SumOfCurrentPriceVol]<>0,([SumOfOfferedPriceVolume]-[SumOfCurrentPriceVol])/[SumOfCurrentPriceVol],0) DESC"
End If
Me.OrderByOn = True
End Sub
當我自己使用報告時,它可以正常工作。 但是,如果我將報表放入表單中,則會收到以下錯誤消息:
"Run-Time Error '5': Invalid procedure call or argument"
在
Me.OrderByOn = True
我試圖改變Me
來Report
,我也得到了相同的結果。 任何可能失敗的想法?
我能夠重新創建該問題。 您可能不希望將復雜的計算添加到記錄源中。 我用一個簡單的單一字段重新創建了它。 這是我發現的:
(很抱歉,我似乎無法在此處上傳圖片;這很不幸)
檢查報表屬性的[數據]標簽,然后查看Order By On Load
。 可能設置為是。 這意味着您不需要將其打開,因為它已經打開。
但同時, OrderBy
的默認值為Null。 該報告將告訴您,如果OrderBy中存在空值,則OrderByOn = False
,盡管“ Order By On Load
為true!
所以基本上,你需要設置一個默認的OrderBy
的屬性,設置默認OderBy
在Report_Activate()
事件,或更新您的代碼來尋找一個/一周時間空值。
為什么您的給定代碼在報表中起作用而在子報表中不起作用,這是一個謎。 可能是一個錯誤。 通過執行以上三個建議中的任何一個,我都能解決此問題。
哦,別忘了刪除Me.OrderByOn = True
因為這就是問題所在……某種Me.OrderByOn = True
只讀錯誤僅在子報表中觸發。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.