Bonjour,
C'est juste pour savoir si c'est possible : la réponse est oui.
Pour ceux que ça intéresse le comment:
A partir d'un formulaire :
CODE
Private Sub cmd_Exemple_Click()
Dim db As Database: Set db = CurrentDb
Dim r As Recordset: Set r = db.OpenRecordset("qry_Exemple") 'Ou la table directement.
Dim i As Long: i = 1
Do While Not r.EOF
r.Edit
r![Champ3] = i
r.Update
i = i + 1
r.MoveNext
Loop
r.Close: Set r = Nothing
db.Close: Set db = Nothing
End Sub
La requête :
CODE
SELECT tbl_Exemple.ID, tbl_Exemple.ChampSubsi,
tbl_Exemple.Champ3
FROM tbl_Exemple
ORDER BY tbl_Exemple.ID;
*******************************************************************
Ou alors la requête :
CODE
SELECT tbl_Exemple.ID, Compteur("tbl_Exemple","ID",[ID]) AS Compte
FROM tbl_Exemple
ORDER BY tbl_Exemple.ID;
Avec la fonction Compteur dans un module :
CODE
Public Function Compteur(strTable As String, strChamp As String, MaVar As Variant) As Long
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset(strTable, dbOpenDynaset)
If Not rs.EOF Then
rs.FindFirst ("[" & strChamp & "] = " & MaVar)
Compteur = rs.AbsolutePosition + 1
End If
rs.Close
Set rs = Nothing
db.Close
Set db = Nothing
End Function
*******************************************************************
Si on veut éviter VBA :
directement dans la requête :
CODE
SELECT tbl_Exemple.ID, (SELECT COUNT( [ID] )
FROM tbl_Exemple AS T1
WHERE ID < tbl_Exemple.ID)+1 AS ClassementSurNum
FROM tbl_Exemple
ORDER BY tbl_Exemple.ID;
Ou alors sur du texte
CODE
SELECT tbl_Exemple.ID, tbl_Exemple.ChampSubsi, (SELECT COUNT(ChampSubsi)
FROM tbl_Exemple AS T1
WHERE ChampSubsi < tbl_Exemple.ChampSubsi)+1 AS ClassementSurTxt
FROM tbl_Exemple
ORDER BY tbl_Exemple.ChampSubsi;
Cordialement.