我有两种形式: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 会显示正确的数据。
使用
.Requery
而不是刷新。
在 frmReceipts 中定义未绑定控件的控件源
等于Control Source: =[Forms]![Form2]![Text0]
它将显示正确的值。
还可以将控件定义为
enabled: false
locked: True
我检查了您的代码(MS Access 2013),它运行良好,但如果 Text17 包含字符串,则函数中可能会出现转换问题。
偶然发现了答案:frmDiffs按"ClientName"对记录进行排序。删除该过程完全解决了问题。这可能是由于目前只有一条记录造成的。思科建议我上传数据库。我在上传之前删除了某些数据。这导致了与 OrderBy 过程相关的错误消息,然后我将其删除。