2017-02-20 72 views
0

在MS Access 2016上,我有一個屬性爲「不可見」的按鈕。如何激活按鈕,如果一個值小於零?

我希望按鈕在另一個字段([Balance])中的值小於「0」(零)時保持可見。

例如平衡是-5,00,按鈕(btOpenReport)將顯示可見。 平衡是1.00,按鈕(btOpenReport)是不可見的

此代碼不能正常工作時,按鈕內的所有記錄保持可見,即使該值大於0

Private Sub Form_Current() 
'button invisible, ok 
Me.btOpenReport.Visible = False 
'must evaluate if Balance is less than 0 and put button visible,...not working 
If Me.Balance < 0 Then Me.btOpenReport.Visible = True 
End Sub 

是什麼錯誤?

Here is a db example (Ms Access 2016 Database1)

回答

1

您不能將連接形式上的不同記錄上的按鈕可見性設置爲不同。這根本不可能。

他們實現類似目的的唯一方法是使用文本框和一些聰明的條件格式,給人一個按鈕的印象,可以按或不,或者更好的恕我直言把按鈕放在表頭或頁腳並通過On_current事件啓用/禁用它。

+0

嗨。只有在餘額小於零的情況下,纔可以使用帶有可見標題「打開報告」的文本框?所以我可以點擊這個文本框,就好像它是一個「打開報告」按鈕。對? 現在我添加了一個示例數據庫到我的第一篇文章/問題。 –

+1

如果您將計算字段添加到基本查詢的表單中,請將其稱爲{txtReport:IIf(Balance <0,「Open Report」,「」))}。然後,可以在表單中填充該字段。 在執行您想要運行的代碼之前,在文本框的點擊屬性上只需檢查值是否爲「」,以防有人決定按下該代碼即使它不會「顯示」爲活動狀態。 – Minty

+0

它的工作原理。 用簡單的方式解釋: 1-在查詢(分組)中,我創建了一個計算字段「txtRep」; - 如果「餘額」小於零; 「公開報告」; 「」; -Total:表達式。 2 - 在表單中,如果出現新的「txtRep」; - 在宏中打開我在開頭添加的報告:如果「txtRep」爲空,則取消;否則,「公開報告」宏將繼續。 –

1

你選錯事件。當您更改文本框中的值時,Form_Current不會觸發。請參閱文檔:https://msdn.microsoft.com/en-us/library/office/ff193159.aspx

+1

爲什麼不'Me.btOpenReport.Visible = Me.Balance <0' – Fionnuala

+0

@Fionnuala,謝謝。這是行不通的。該按鈕在所有記錄中都可見。 –

+0

@EliteRaceElephant這是一個基於分組查詢的連續表單。沒有文本框可以填寫或更改。 「平衡」字段是一個總和。 –