0
我有两个表,ID表和Mastertable。在身份证表中,我有一个开始数字的级别和活动,让我们说1000.在Mastertable中,我拥有许多与同一活动和级别相关的图形。我必须从ID表值1000开始为它们编号,并将它增加1.完成后,mastertable的最大值必须重新插入ID表。从其他表访问Vba序列号
而且,如果有水平和活性,该ID已被拾起仰视的水平和活性都,如果没有级别届时提及它只能查找活动。
我尝试了很多,但不能成功。
我使用了下面的代码,但它只查找Activity而不查找级别。它也不会返回到id表并更新主表中的最大ID。
Option Compare Database
Option Explicit
Public Function SequenceNew()
Dim strSQL As String
Dim db As Database
Dim rs As DAO.Recordset
Dim a, initNo As Integer
Dim b As Integer
strSQL = "SELECT * FROM MasterTable ORDER BY LevelID"
'Set db = CurrentDb
Set rs = CurrentDb.OpenRecordset(strSQL)
If rs.RecordCount > 0 Then
rs.MoveFirst
Do While Not rs.EOF
rs.Edit
If rs![DrawingTypeName] = "Concrete" And rs![ProjectName] = Forms!frm_Publish!CboProject And rs!IDGiven = "Not Given" Then
a = a + 1
rs!Sequence = DLookup("CONCRETE", "Qry_ID_Selected") + a
ElseIf rs![DrawingTypeName] = "Reinforcement" And rs![ProjectName] = Forms!frm_Publish!CboProject And rs!IDGiven = "Not Given" Then
b = b + 1
rs!Sequence = DLookup("REINFORCEMENT", "Qry_ID_Selected") + b
ElseIf rs![DrawingTypeName] = "Steel structural works" And rs![ProjectName] = Forms!frm_Publish!CboProject And rs!IDGiven = "Not Given" Then
End If
rs.Update
rs.MoveNext
Loop
rs.Close
Set db = Nothing
Else
MsgBox " No records Found"
rs.Close
Set db = Nothing
End If
End Function
应该有一些其他更好的方法来做到这一点。 MasterTable ID Table