Bonjour à tous,
J'aimerais numéroter les enregistrements d'une table dans un champ NumLigne selon d'autres champs de ma table. Pourriez-vous m'aider à écrire le code permettant de faire cela ?
Pour info, je l'ai écrit en VBA Access mais je n'ai aucune idée pour l'écrire en PL/SQL...

Merci beaucoup,

MarieO

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
"Ma table d'origine:"
CHAMP1, CHAMP2, CHAMP3, NUMLIGNE
1, 1, A, null
1, 1, A, null
1, 1, B, null
1, 2, A, null
2, 1, A, null
 
"Ce que j'aimerais avoir après mise à jour des données"
CHAMP1, CHAMP2, CHAMP3, NUMLIGNE
1, 1, A, 1
1, 1, A, 2
1, 1, B, 1
1, 2, A, 1
2, 1, A, 1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
Public Sub UpdateNumLigne
    Dim rsCompte as Dao.recordset
    Dim rsTable as Dao.recordset
    Dim i as long
 
    Set rsCompte = Currentdb.openrecordset ("SELECT Champ1, Champ2, Champ3, count(*) as Compte FROM tatable GROUP BY Champ1, Champ2, Champ3")
    Set rsTable  = currentdb.openrecordset ("SELECT * FROM tatable")
 
    While not rsCompte.EOF
        for i=1 to rsCompte.fields("Compte")
            rsTable.findfirst "Champ1=" &rsCompte.fields("Champ1") &" AND Champ2=" &rsCompte.fields("Champ2") &" AND Champ3='" &rsCompte.fields("Champ3") &"' AND Numligne is null"
            rsTable.edit
            rsTable!NumLigne = i
            rsTable.update
       next i
       rsCompte.movenext
   Wend
   rsCompte.close
   rsTable.close
End Sub