Déplacer une fiche dans une liste

cs_lou17 Messages postés 9 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 13 décembre 2010 - 13 déc. 2010 à 10:43
cs_lou17 Messages postés 9 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 13 décembre 2010 - 13 déc. 2010 à 11:03
Bonjour,
dans une base de données access, le champ n° d'une table devrait pouvoir être renuméroté...
par ex décider que le n° 10 devienne le n°5 et bien sur tout renuméroter en fonction (l'ancien 5 devient 6, le 6 7, etc)
j'ai imaginé un code qui traque le doublon formé, et renumérote à partir de là
mais cela ne fonctionne que 2 fois de suite, à la troisième des doublons se forment...
voici le code
Public Function N°Double()
Dim RsGlobal As New ADODB.Recordset
Dim RsFiltre As New ADODB.Recordset
RsGlobal.Open "table", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
Do Until RsGlobal.EOF
RsFiltre.Open "table", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
RsFiltre.Filter = "[N°table]=" & RsGlobal("N°table")
If RsFiltre.RecordCount > 1 Then
N°Double = RsFiltre("N°table")
Exit Do
End If
RsGlobal.MoveNext
RsFiltre.Close
Set RsFiltre = Nothing
Loop
RsGlobal.Close
Set RsGlobal = Nothing
End Function

et le 2eme

Public Function TABLE()
Dim test As Integer
test = N°Double
Dim i
Dim rs As New ADODB.Recordset
i = 0
rs.CursorLocation = adUseClient
rs.Open "table", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rs.Sort = "[N°table]ASC"
Do Until rs.EOF
If rs("N°table") > test - 1 Then
i = i + 1
rs("N°table") = test + i
rs.Update
End If
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
End Function

1 réponse

cs_lou17 Messages postés 9 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 13 décembre 2010
13 déc. 2010 à 11:03
le mulot a été trop vite...
pouvez vous me dire où mon raisonnement pêche ?
merci de vos idées
Lou
0
Rejoignez-nous