我有一个访问数据库,可用来跟踪传入原材料的质量。通常,我收到的原材料是面料。我为此构建的表单具有三层:
1-装运级别信息(采购订单号,装运总卷数,供应商,日期)
2-纸卷级别信息(织物细节,尺寸,质量得分)
3-缺陷级别信息(卷上发现的缺陷,大小,严重性)
一件货可以有很多卷,一卷可以有很多缺陷,因此我的表格有三层。请参阅下图以供参考。
我要完成的是,每次检查员输入PO#时,如果数据库中已经存在该货件,它将提取总卷数,供应商和收货日期,并允许添加更多子记录。如果PO#尚未在数据库中,它将允许一个新条目。
我已经尝试了一些方法,但是我不确定从哪里开始。预先感谢您的帮助!
答案 0 :(得分:1)
几个问题,分为几个部分: 确保满足这些假设。运货表中有一个自动编号的主键列,其标签为类似于运货ID(没有足够的信息来确保我们可以将PO#用作主键)。类似地,Roll表具有RollID,但也添加了相应的ShipmentID作为外键,以形成适当的一对多关系。同样,为Defects表提供一个DefectID主键,并添加相应的RollID作为外键。 如果需要重做表单,请单击相应的表,然后使用表单向导。在数据库工具下,将多个关系中的1添加到关系图中也将很有帮助。
重点是表单的滚动和缺陷部分必须是子表单,以便在更改PO#和RollID时将对其进行过滤。因此,如果您必须重建表单,则从以下步骤开始:制作看起来像表单的缺陷和滚动部分的缺陷并滚动表单。然后将新的缺陷表单拖动到新的卷表单上,将弹出一个向导,以将缺陷子表单添加到您的卷表单中。然后,通过将现在具有瑕疵子表单的卷形式拖动到看起来像您的“运货”部分的“运货表单”上来重复操作。
https://www.youtube.com/watch?v=90eOatOmHZA
我认为,如果您隐藏记录选择器,然后像在此视频中一样添加等效按钮,则会使表单更易于使用:
https://www.youtube.com/watch?v=gL1taUzLQGE
Private Sub txtPOSearch_Change()
Dim strFilter As String
If Me.txtPOSearch.Text <> "" Then
‘ assuming 34 is typed in txtPOSearch then strFilter will equal: “PO# like “34*”
strFilter = "PO# like " & Chr(34) & Me.txtPOSearch.Text & Chr(42) & Chr(34)
Me.Filter = strFilter
Me.FilterOn = True
Else
Me.Filter = ""
Me.FilterOn = False
End If
Me.txtPOSearch.SetFocus
Me.txtPOSearch.SelStart = Len(Me.txtPOSearch.Text)
End Sub
来源:
DCOUNT(“ RollID”,“ Roles”,“ ShipmentID =”&[ShipmentID])