簡體   English   中英

更改 Access 報告中選定記錄的顏色

[英]Change the color of a selected record in an Access REPORT

我的訪問報告有一個帶有記錄 ID 的文本框,它看起來像一個帶有點擊事件的按鈕,用於轉到該特定記錄的表單。 這很好用,但是當我返回報告時,我看不到點擊了哪條記錄。 我只想暫時更改被點擊的記錄,直到選擇另一條記錄。

我希望在報告而不是表單上使用它的原因是因為我希望用戶能夠快速以打印所需的格式校對閱讀,並在必要時進行更改或檢查詳細信息,然后在全部更新后更新報告校對和更新在最終印刷之前完成。 但是由於屏幕上有許多記錄,當您從表單返回時,很容易忘記您正在檢查的記錄。

我試過了:

Private Sub btn_txt_GoToTransaction_Click()
  Dim vColor
  vColor = RGB(51, 204, 51) 'green
  Me.btn_txt_GoToTransaction.BackColor = vColor
  DoCmd.OpenForm "Account_frm", acNormal, , "[TransactionID]=" & Me.TransactionID
End Sub

但這不起作用,因為每個按鈕都會變色,而不僅僅是選定的記錄。

有什么建議么? 謝謝。

這是一個很好的問題,因為在訪問報告中突出顯示行或項目有很多好處。 但首先,讓我們討論一下快速答案:

快速回答:
為了突出顯示報表中的一行或一條數據,我們需要使用“FormatConditions”屬性。 這與 MS Access 設計界面中的條件格式相同,但我們將在運行中以編程方式對其進行更改。 您不能使用按鈕或標簽來執行此操作 - 它必須是具有唯一數據的文本框,例如您的 TransactionID。

第 1 步)我建議您在報告中添加一個從左到右延伸的文本框,將背景顏色和前景色設置為白色,將控制源設置為 TransactionID,並將名稱設置為 TransactionID。 然后右鍵單擊此文本框並選擇位置 > 發送到后面。 如果報表上的其他文本框和標簽具有透明背景,則此方法效果最佳。

步驟 2)添加此代碼:

Private Sub HightlightRow(intRowID As Integer)
    With Me.TransactionID.FormatConditions
        .Delete
        With .Add(acFieldValue, acEqual, intRowID)
            .BackColor = vbGreen
            .ForeColor = vbGreen
        End With
    End With
End Sub

步驟 3)還要更改您的按鈕代碼以調用此子例程,如下所示:

Private Sub btn_txt_GoToTransaction_Click()
  HightlightRow Me.TransactionID.Value
  DoCmd.OpenForm "Account_frm", acNormal, , "[TransactionID]=" & Me.TransactionID
End Sub

好的,這是快速回答,但如果您想了解更多信息,請繼續閱讀。

我喜歡設置它,因此如果用戶單擊行中的任何位置,它將彈出一個模式,其中包含有關該行的更多詳細信息。 此外,用戶無法對報表視圖中的數據進行任何更改,因此我使用彈出模式來允許更改。 為了實現這一點,我還做了幾件事:

首先,我們需要將代碼添加到該行中每個控件的 OnClick 事件中。 當然,每個 OnClick 事件都可以簡單地使用該子程序HightlightRow Me.TransactionID.Value

其次,如果用戶單擊文本框,文本框將獲得焦點並隱藏突出顯示。 因此,我喜歡把重點放在別的事情上。 在您的情況下,您可以通過將此行添加到 HighlightRow 子例程的末尾來設置按鈕的焦點: btn_txt_GoToTransaction.SetFocus
在我的例子中,我沒有使用按鈕,所以我設置了一個帶有= " "的小文本框(只是等號和引號中的空格)作為控制源。 然后我把這個小文本框放在最右邊。 在 HighlightRow 子例程中,我將焦點設置到此文本框。


您可能還需要一個按鈕或刪除突出顯示的方法。 為此,只需讓代碼運行以下行:

Me.TransactionID.FormatConditions.Delete

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM