此网站的新功能和访问权限。 我正在尝试创建一个数据库来跟踪主日志。需要顺序编号方面的帮助。我目前有以下表格。
PO表
POID - 自动编号(PK)
PODate - 日期/时间
供应商 - 字符串
项目表
ItemID - 自动编号(PK)
POID - Ingeter(FK)
ItemDescription - 字符串
数量 - 整数
MasterLog表
MasterLogID - 自动编号(PK)
ItemID - 整数(FK)
PieceNumber - 整数(1,2,3 ......等)
MFG - 字符串
过程 - 字符串
长度 - 整数
MfgIDNum - 字符串(ABD123XTY-1234)
我正在尝试自动化PieceNumber字段的数据输入。因此,当您输入新的采购订单并向其添加项目时,一旦收到。它会在masterlog表中添加一行,从1号开始到我们有多少件。我们根据我们购买的商品对这些商品进行编号(即第1项,我们购买了100件。所以我将第1项至第1项。)然后我们可以将其他数据添加到表中。只是尝试减少一些数据输入时间并避免在该字段的编号中出现一些错误。
有什么想法吗?
答案 0 :(得分:1)
这样的事情是一种非常简单的方法。您必须拥有一个名为Numbers的预定义表格,其中整数从1开始到您可能拥有的数量很高:
INSERT INTO MasterLog (ItemID, PieceNumber)
SELECT Item.ItemID, Numbers.Number
FROM Item, Numbers
WHERE (Item.ItemID = Forms!Items!ItemID) AND
(Numbers.Number <= Item.Quantity)
ORDER BY Numbers.Number
如果您想逐个添加各个部分,可以默认相关表单上的PieceNumber字段。确保您也默认使用MasterLog.ItemID:
=Nz(DMax("[PieceNumber]","[MasterLog]","[ItemID] = " & Forms!Items!ItemID), 0) + 1
对于VBA解决方案,请尝试以下方法:
Dim db As Database
Dim strSQL As String
Dim frm As Form
Dim i As Integer
Set db = CodeDb()
Set frm = Forms!Items
If frm!Quantity > 0 Then
For i = 1 To frm!Quantity
strSQL = "INSERT INTO MasterLog (ItemID, PieceNumber) " & _
"SELECT " & frm!Item & " AS ItemID, " & _
i & " AS PieceNumber"
db.Execute strSQL, dbFailOnError
Next i
End If
Set db = Nothing
所有这些都假定一个表单显示当前名为Items的项目。