【问题标题】:Update result of formula in text box更新文本框中公式的结果
【发布时间】:2018-11-30 13:28:10
【问题描述】:

我正在尝试更新我正在构建的表单中的未绑定文本框。

文本框有一个默认值:=DLookUp("[Metadata]![Username]";"[Metadata]")。

当字段username中的值发生变化时;
如何在不关闭整个表单然后再次打开的情况下更新文本框中的此更改?

--

我试图通过在表单中​​添加一个按钮然后在鼠标向上事件尝试并通过 vba 或宏编辑器找到解决方案来做到这一点。

  • 据说可以创建一个宏来关闭然后再次打开表单,但这并不是我真正想要的。

  • VBA:我找到了很多关于 requery 的建议,但我无法让它发挥作用:
    Set UserName = Forms![Update test]!Text10 UserName.Requery

最好使用可以与多个此类文本框一起使用的通用解决方案
(但不是必需的,任何试图指出我正确方向的东西都是受欢迎的)。

【问题讨论】:

  • [元数据]![用户名]字段中的数据是如何更新的?这是绑定表格吗?顺便说一句,您不需要 [元数据]!位在 dlookup 的第一部分。
  • 你需要刷新表单,使用Me.Refresh。
  • @Minty [Metadata]![Username] 是手动更新的表(到目前为止)。所以首先我打开了表单,然后更改了元数据表中的数据,并尝试在表单中更新这些数据。感谢您对 [元数据] 的提醒!部分。
  • @Jeffrey 您的意思是与 Requery 结合使用吗?

标签: ms-access vba ms-access-2010


【解决方案1】:

转到设计视图并选择代表您的表值username的文本框,然后转到事件并选择On Change()事件:

Private Sub username_Change()

  YourTextbox.Value =DLookUp("[Metadata]![Username]";"[Metadata]")

End Sub

【讨论】:

  • 只有在表单上的数据发生变化时才会起作用。我从 OP 那里得到的印象不一定是这种情况。但我可能会误解。
  • 这只会在我尝试对文本框本身进行更改时更新文本框。此外,虽然答案并没有以一般方式解决这个问题(因为解决方案特定于该文本框),但它肯定为我指明了正确的方向。
  • 您可以随时使用其他可能对您的具体情况有所帮助的活动
猜你喜欢
  • 2017-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多