我有一个关于一些“简单”MS Access vba 的问题。我有一个组合框。选择一个项目时,会更新各种文本框。现在我想在选择一个项目后编辑放在 TextBox 中的文本(因为数据充满了很多空格,所以我想要它们)。
我尝试了“更新前”、“更新后”、“脏”和“更改”事件,但似乎没有一个是正确的。任何人都知道我在找什么?谢谢
两种可能的方式:
(1) 不要只为每个文本框的ControlSource
属性输入字段名称,而是输入一个表达式,例如=Replace([SomeField], " ", "")
。这假定文本框应该是只读的。
(2) 根本不使用数据绑定,而是Value
显式设置每个文本框的属性:
Dim RS As DAO.Recordset
Set RS = CurrentDB.OpenRecordset(SQL)
txtWhatever.Value = Replace(RS!SomeField, " ", "")
txtAnother.Value = Replace(RS!AnotherField, " ", "")
在第二种情况下,使用任何更改的值更新数据源也需要明确处理。
也就是说,如果数据有不必要的空间,那么肯定应该在源头清理它们,而不是在将数据放入 UI 时...?