用组合框中的选择填充文本框中的计算字段



提前感谢您的帮助。我对功能不熟悉……

我有一个子表单,包含字段的列表,如类型,数量和单位。我想根据所选的型号计算一下总金额。通过这样做,我尝试使用编码,但遇到了各种错误。

首先,"运行时错误'3078':" Microsoft Jet数据库引擎无法找到输入表/查询'50000'。

我的代码是:
If Me.cmbTOL1 = "Type B" Then
Me.txtC1 = (DMax(Me.txtAmt1, 50000) * 0.055) / Me.txtNoofUnits1
End If

第二,"Runtime Error '2450':" microsoft Access不能找到宏表达式或visual basic代码中引用的form "frmInformation" .

我的代码是:
If Me.cmbTOL1 = "Type M" Then
Me.txtC1 = (DMax(Me.txtAmt1, (2 * [Forms]![frmInformation]![GrossAmt])) * 0.015) / Me.txtNoofUnits1
End If

编辑:

我正试图从frmInformation获得值[GrossAmt]。除了[form]之外,还有别的方法吗?[GrossAmt]检索值?

我真的没有得到DMax()函数…但是我把代码改成了这样…

If Me.cmbTOL1 = "Type B" Then 
   If Me.txtAmt1 > 50000 Then 
   Me.txtC1 = (Me.txtAmt1 * 0.055) / Me.txtNoofUnits1 
   Else 
   Me.txtC1 = (50000 * 0.055) / Me.txtNoofUnits1 
   End If 
End If

从DMin, DMax函数,语法为:

DMax(expr, domain[, criteria])

第二个参数domain应该是"一个字符串表达式,标识构成域的记录集。它可以是表名,也可以是不需要参数的查询的查询名。"

但是你的代码给出了DMax() 参数的数值:

DMax(Me.txtAmt1, 50000)
DMax(Me.txtAmt1, (2 * [Forms]![frmInformation]![GrossAmt]))
我不明白你想要完成什么。但是,如果使用DMax(),则必须将表名或查询名作为参数提供给它。Me.txtAmt1应该是中字段的名称,或者基于字段的表达式。

抱怨Access找不到表单"frmInformation"的错误消息可能是因为表单没有打开(因此没有出现在Forms集合中),名称拼写错误,或者它实际上是包含在另一个表单中的子表单。

在你的问题中你没有解释代码更新会发生什么。告诉我们,当你在"即时"窗口中输入这一行并按时,会发生什么?

? [Forms]![frmInformation]![GrossAmt]

您可以使用Ctrl+g打开立即窗口。当您在"立即"窗口中键入上述行时,窗体frmInformation应该在窗体视图中打开。

您可以在"立即"窗口中检查所有打开的表单的名称,如下所示:

for each f in forms : ? f.Name : next

相关内容

  • 没有找到相关文章

最新更新