-1

为什么这段代码没有运行。我想为带有 number 的药物返回aMininimum (MIN_STOCK)Maximum (Stock MAX_STOCK1)a 。>quantityQTY_IHND1(COMM_NUM)

If DCount(QTY_IHND1, "Stores_Table") = 0 Then
    QTY_IHND1 = 0

ElseIf DCount(QTY_IHND1, "Stores_Table") > 1 Then
     QTY_IHND1 = DLast("QTY_IHND1", "Stores_Table", "COMM_NUM = [COMM_NUM]") _
          + ((SubStoresTable.Form!QTY_RECVD) - (SubStoresTable.Form!QTY_ISSUE))
Else
     QTY_IHND1 = 0
End If

Forms!Pharmacytally.Controls("QTY_IHND1").Value = QTY_IHND1
MAX_STOCK1 = DMin("QTY_IHND1", "Stores_Table", "COMM_NUM" = [COMM_NUM])
Forms!Pharmacytally.Controls("MAX_STOCK1").Value = MAX_STOCK1
MIN_STOCK1 = DMin("QTY_IHND1", "Stores_Table", "COMM_NUM" = [COMM_NUM])
Forms!Pharmacytally.Controls("MIN_STOCK1").Value = MIN_STOCK1
4

1 回答 1

0

我不知道您标题中的子表单部分在哪里出现了您的问题。这里有一篇来自 MVP 站点的文章。

你在错误的地方有平等。

 MAX_STOCK1 = DMin("QTY_IHND1", "Stores_Table", "COMM_NUM =" & [COMM_NUM])

COMM_NUM 必须是数字,否则需要引号。

整个代码部分不好,可能需要返工。例如:

DCount(QTY_IHND1, "Stores_Table")

这似乎是对 stores 表是否完全为空的一个相当奇怪的检查,而且 QTY_IHND1 没有被引用。

DLast("QTY_IHND1", "Stores_Table", "COMM_NUM = [COMM_NUM]"

Comm_Num 始终等于自身。

此外,你有这么多的查找,你会更好的记录集。

然后是整个最后一件事。Last 是一种非常糟糕的获取值的方法,除了在单用户系统中,即使那样你也应该考虑它可能不会保持单用户。

无需引用控件属性即可获取控件:

Forms!Pharmacytally.Controls("QTY_IHND1")

控件成为表单的属性:

Forms!Pharmacytally.QTY_IHND1

或者

Forms!Pharmacytally!QTY_IHND1

或者,如果代码在 Pharmacytally 表单上运行,

Me.QTY_IHND1

这将使您能够利用智能感知。

编辑重新评论

从主窗体和名为 MySubformControl 的子窗体控件工作

 MyQty = Me.MySubformControl.Form.QTY_RECVD

重要的是要注意 MySubformControl 是子表单控件的名称,而不是包含的表单。

于 2012-12-20T09:54:08.083 回答