为什么此代码没有运行。我想为Mininimum (MIN_STOCK)
的药物返回Maximum (Stock MAX_STOCK1)
和>quantity
以及QTY_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
答案 0 :(得分:0)
我不知道标题中的子表单部分会出现在您的问题中。 MVP网站here中有一篇文章。
你在错误的地方等于。
MAX_STOCK1 = DMin("QTY_IHND1", "Stores_Table", "COMM_NUM =" & [COMM_NUM])
COMM_NUM必须是数字,否则您需要引号。
整个代码部分不好,可以做返工。例如:
DCount(QTY_IHND1, "Stores_Table")
这似乎是一个相当奇怪的检查商店表是否完全为空,同样,QTY_IHND1没有被引用。
DLast("QTY_IHND1", "Stores_Table", "COMM_NUM = [COMM_NUM]"
Comm_Num始终与自己相等。
此外,您有很多查找,使用记录集会更好。
然后是最后一件事。除了在单个用户系统中,最后一个获取值的方法非常糟糕,即便如此,您应该考虑它可能不是单个用户。
无需引用控件属性来获取控件:
Forms!Pharmacytally.Controls("QTY_IHND1")
控件成为表单的属性:
Forms!Pharmacytally.QTY_IHND1
或者
Forms!Pharmacytally!QTY_IHND1
或者如果代码在Pharmacytally表单上运行,
Me.QTY_IHND1
这将允许您利用intellisense。
编辑重新评论
使用主窗体和名为MySubformControl的子窗体控件
MyQty = Me.MySubformControl.Form.QTY_RECVD
重要的是要注意MySubformControl是子窗体控件的名称,而不是包含的窗体。