如何为制造模板修改“罗斯文”模板中的“采购订单”?

时间:2019-05-06 14:08:23

标签: ms-access access-vba ms-access-2016

我完全了解Northwind是一个学习模板,但是在较新版本的Access中,它看起来功能更完善,并且可以满足我的业务需求。我基本上拥有自己购买的数据库功能(``订购单''),但是想要将这个系统的复印件几乎反映在销售中(当我们制造时),即当客户订购我们的一种产品时增加销售。

总结问题,我们按订单生产产品;因此,当客户订购商品时,我们没有库存,数据库将显示错误消息。因此,在下达新订单时,我们需要按产品类型区分我们正在购买的(由已经实施的“购买订单”系统运行并由其实施)要购买或要由我们制造的项目。

产品类型已经是产品表中的一个字段。

我们尝试修改“购买订单”中使用的VBA代码。我们使用了一个不太可行的解决方案;即从“采购订单”,“采购订单状态”和“采购订单详细信息”下面复制每个表格,表格,报表,查询,并调整每个名称,以代表“工作订单”并确保代码引用正确重命名为Table / Form等。但是我无法检查它是否有效,因为这会导致“购买订单”和“订单”中的问题,这应该是与错误无关的函数:

“编译错误:检测到歧义名称。GetListPrice” “编译错误:未定义子或函数”

这是完全未修改的,据我们所知应该已经在“工作订单”部分制定之前进行了工作。

Option Compare Database
Option Explicit

Sub InitParentState()
    On Error Resume Next
    Dim frmParent As [Form_Purchase Order Details]
    Set frmParent = Me.Parent
    frmParent.InitFormState
End Sub

Private Sub Form_AfterInsert()
    InitParentState
End Sub

Private Sub Form_BeforeUpdate(Cancel As Integer)
    If IsNull(Me![Unit Cost]) Then
        MsgBoxOKOnly NeedUnitCost
        Cancel = True
    End If
End Sub

Private Sub Product_ID_AfterUpdate()
    ' We interpret this as user wanting to delete purchase item
    ' Suggested Enhancement: Prevent user from deleting items that have been posted to inventory
    If IsNull(Me![Product ID]) Then
        RemoveCurrentLineItem
    Else
        Me![Unit Cost] = GetStandardCost(Me![Product ID])

        ' Suggested Enhancement: Combine same product iine items
    End If
End Sub

Private Sub Quantity_AfterUpdate()
    If Me![Quantity] = 0 Then
        RemoveCurrentLineItem
    End If
End Sub

Private Sub Quantity_BeforeUpdate(Cancel As Integer)
    If Me![Posted To Inventory] Or Not IsNull(Me![Date Received]) Then
        MsgBoxOKOnly CannotModifyPurchaseQuantity
        Cancel = True
    End If
End Sub

Private Sub Unit_Cost_BeforeUpdate(Cancel As Integer)
    If Me![Posted To Inventory] Or Not IsNull(Me![Date Received]) Then
        MsgBoxOKOnly CannotModifyPurchasePrice
        Cancel = True
    End If
End Sub

Private Function RemoveCurrentLineItem() As Boolean
    RemoveCurrentLineItem = eh.TryToRunCommand(acCmdDeleteRecord)
End Function

以上是“采购订单明细的采购子表单”中的代码,我们实际上需要具有“工作订单明细子表单”的复本。如前所述,我们尝试修改此代码以确保其引用正确的字段以适用于工单(即,将[Form_Purchase Order Details]更改为[Form_Work Order Details]等),但这间接地干扰了“ Purchase Orders”和“ Orders” ”,尽管这些字段均未更改,但仍会产生上述错误消息。“ GetListPrice”出现在上面代码的副本中,而没有其他任何更改,则会检测到“歧义名称”。

Northwind附带了很多这些功能,但是看起来功能如此完善,我们希望可以为此目的简单地对其进行修改。如果有人比我们更熟悉此软件,我们也很乐意在论坛之外获得一些帮助。已经进行了大量工作(许多流程已经在工作),但是到此为止,我们已经完全陷入僵局。

0 个答案:

没有答案