表单上的文本框必须从另一个表单中获取数据

时间:2016-02-07 20:40:28

标签: vba ms-access access-vba

我有两种形式:frmReceipts和frmDiffs。 frmReceipts有一个未绑定的控件,显示该函数的结果:

Public Function RecDiffs() As Double

RecDiffs = Forms!frmDiffs.Text17

End Function

目前Text17的值为54.00但是当frmReceipts打开时,它在控件Text41上显示值0.00。我可以通过单击运行的命令按钮来纠正此问题    Me.Form.Refresh

如果“刷新”在“加载”,“打开”或“激活”上运行,则

刷新不起作用(即Text17继续显示0.00)。它似乎只能通过单击命令按钮来工作。理想情况下,我希望只在表单打开时在Text17中显示正确的值。此外,如果我将frmReceipts置于设计模式然后返回到窗体视图,则Text17会显示正确的数据。

3 个答案:

答案 0 :(得分:1)

使用

.Requery

而不是刷新。

答案 1 :(得分:0)

将frmReceipts中未绑定控件的Control Source定义为

Control Source: =[Forms]![Form2]![Text0]

它会显示正确的值。

您还可以将控件定义为

enabled: false
locked: True

我检查了您的代码(MS Access 2013)并且运行良好,但如果Text17包含字符串,则您的函数可能会出现转换问题。

答案 2 :(得分:0)

偶然发现答案:frmDiffs按'ClientName'对记录进行排序。删除该程序完全解决了这个问题。这可能是因为目前只有一条记录。思科建议我上传数据库。我在上传之前删除了某些数据。这导致了与OrderBy过程相关的错误消息,然后我将其删除。