我有2个表,称之为PO和PO_LI。 PO中有一个名为PO#的列,它是主键,与PO_LI中的PO#列有1对多的关系(1在PO中)。在PO_LI中,其他列是Line#,Description和LineAmount。
如何为每个新的PO#重置数字1?
这可以在使用自动编号时完成吗?
这可以在ms-access gui中完成还是需要VBA代码?
答案 0 :(得分:1)
您无法手动编辑自动编号字段或更改其起始值。您最好的选择是使用VBA获取最大行数并增加它,如果您使用新的PO,则从1开始。您可以将此VBA放入PO字段的AfterUpdate事件中。 / p>
你可以这样做:
Dim db as Database
Dim rec as Recordset
Dim rec2 as Recordset
Dim MyVal as Integer
Set db = CurrentDB
Set rec = db.OpenRecordset("Select LineNum from MyTable where PO = '" & Me.txtPO & "' group by PO")
'If there are no records returned, start at 1. Otherwise, increment.
If rec.EOF = true then
MyVal = 1
else
Set rec = db.OpenRecordset("Select Max(LineNum) from MyTable where PO = '" & Me.txtPO & "'")
MyVal = rec(0) + 1
endif
MyVal现在是您要写入LineNum的号码。当然,您需要更改变量,这些变量实际上是您表单和表格中的变量,但您应该明白这一点。