我有这些表:
我已经根据 tblOrders 制作了一个表格,用户可以在其中输入“日期”和“客户”。
然后我根据 tblOrderDetails 制作了一个子表单,用户在其中输入:为每个订单行输入“产品”和“数量”。
现在,我需要在“数量”旁边显示每个“价格”,这取决于订单行的“产品”,“客户”和“日期”,如 tblPriceList 所示。
另外,当我在表格中更改客户或日期时,我需要这些“价格”值在表格以及 tblOrderDetails 表中自动更新。
我设法创建了一个连接这3个表的查询,但是由于关系复杂,我无法以该形式创建新的记录集。 我还尝试通过在 tblOrderDetails 子窗体中创建一个带有Dlookup的文本框来从每个订单行的 tblPricelist 获取正确的“价格”。但是后来我找不到从 tblOrderDetails 的'Price'字段中存储此值的方法。
有什么办法解决这个问题?也许数据库设计有变化?
答案 0 :(得分:0)
大概是在创建新的订单明细时,用户首先选择一个产品(从下拉列表中选择),并且“数量”可能默认为1。
在产品更新的AfterUpdate事件中(使用VBA)o
Price = DLookup("Price","tblPriceList","Product = " & Me.Product & _
" AND Client = " & Parent.Client & _
" AND Date() Between [From Date] and [To Date]")
我假设“客户ID”出现在父窗体的某个名为“客户”的控件中。还要将相同的功能放在“数量”的AfterUpdate中,那么您就可以了。
无需对订单明细使用复杂的查询,只需将子表单基于表格,并使用“主/子”关系对其进行控制即可。
您是否不愿意使用VBA?