Ich habe zwei Tabellen, ID-Tabelle und Mastertable. In ID-Tabelle habe ich Level und Aktivität, die eine Startnummer gegeben wird, lassen Sie uns 1000 sagen. In Mastertable habe ich viele Zeichnungen mit der gleichen Aktivität und Ebene zugeordnet. Ich muss ihnen eine Nummerierung geben, beginnend mit dem ID-Tabellenwert 1000 und inkrementiere sie um 1. Nach dem Beenden muss der Maximalwert vom Mastertable in die ID-Tabelle eingefügt werden.Zugriff Vba Sequence ID von anderen Tabelle
Wenn Level und Activity vorhanden sind, muss die ID ausgewählt werden, um nach Level und Aktivität zu suchen. Wenn kein Level angegeben wird, muss sie nur nach Aktivität suchen.
Ich habe viel versucht, konnte aber nicht erfolgreich sein.
Ich habe den Code unten verwendet, aber es sieht nur Aktivität und nicht Ebene. Es geht auch nicht zurück zur ID-Tabelle und aktualisiert die maximale ID von der Master-Tabelle.
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
Es sollte einen anderen besseren Weg geben, es zu tun. ID Table