我有两种形式: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会显示正确的数据。
答案 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过程相关的错误消息,然后我将其删除。