Automatisch volgnummer in tabel toekennen

Status
Niet open voor verdere reacties.

makra

Gebruiker
Lid geworden
13 apr 2010
Berichten
10
Hoi,

Ik heb een database met 2 tabellen. De eerste tabel is een ordertabel en de 2e is een artikeltabel. De tabellen zijn gekoppeld met elkaar dmv een orderreferentie.

Nu wil ik in de artikeltabel een volgnummer toekennen per orderreferentie. Het volgnummer moet alleen in een tekstveld (wie verzint het! Kan er ook niets aan doen) worden geplaatst.

Het moet er als volgt uit komen te zien Bekijk bijlage vb volgnummer.xlsx. Hoe kan ik dat volgnummer automatisch toekennen?

Alvast bedankt!
 
Welk nummer wil je automatiseren? De kolom Volgnummer is niet uniek, en je Artikelnummers hebben geen vaste structuur. Ik snap eerlijk gezegd niet waarom je een volgnummer in de tabel Artikelen wilt hebben; ik neem toch aan dat het veld Artikelnummer de sleutel is?
 
De tabelllen worden allebei ingelezen in een ordersysteem. Deze heeft echter een volgnummer van de artikelregel per order nodig. Doordat het om een volgnummer per van de artikelregel per order gaat zit hier geen sleutel op.

Ik wil dus per order aan de bijbehorende artikelregels een volgnummer automatisch toekennen die bij elke order weer op 001 begint.
 
In het "order" formulier , kan je na de keuze van de referentie de volgende code uitvoeren.
Waarschijnlijk kan het wat simpeler maar wellicht helpt dit je vooruit.
Jan
Code:
Private Sub referentie_AfterUpdate()
Dim rs As New ADODB.Recordset
Dim h, sql
sql = " SELECT orders.referentie, * FROM orders WHERE (((orders.referentie)='" & Me.referentie & "'));"
 rs.Open sql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
 h = Nz(rs.RecordCount, 0)
 Me.volgnummer = h + 1
 Me.Refresh
End Sub
 
Of zo:

Code:
Private Sub REFNR_AfterUpdate()
Dim strSQL As String
Dim iMax As Long

strSQL = "SELECT Max([VOLGNR]) AS Expr1 FROM Blad1 WHERE REFNR='" & Me.REFNR & "' GROUP BY REFNR"
With CurrentDb.OpenRecordset(strSQL)
    If .RecordCount > 0 Then
        iMax = CLng(.Fields(0).Value) + 1
    Else
        iMax = 1
    End If
    .Close
End With
    Me.VOLGNR = Right("000" & CStr(iMax), 3)
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan