Position recordset Access

Résolu/Fermé
santi - 23 juin 2008 à 08:48
 santi - 23 juin 2008 à 09:50
Bonjour,
Je cherche à recuperer dans une variables la position d'un recordset précis. J'ai sélectionné une liste de données qui sont trié par ordre croissant, et je souhaiterai connaitre la position de l'enregistrement ayant le numéro N_D.
J'ai pour cela effectuer le code. Mais il me dit que la proprété AbsolutePosition n'est pas utilisé correctement. Pouvez vous m'aider s'il vous plait

N_D = Forms![Form1]![Texte02]
a = Forms![Form1]![Texte03]
Ma = Forms![Form1]![Texte04]

Set db = CurrentDb
sql = "SELECT N FROM Table1 WHERE A=" & Chr(34) & a & Chr(34) & " AND M=" & Chr(34) & Ma & Chr(34) & "Order by Asc"
db.Execute (sql)
Set rs = db.OpenRecordset(sql)

rs.MoveFirst
rs.Fields(N) = "& N_D "
rs.AbsolutePosition
Pos = rs.Fields(N)
rs.MoveNext
rs.Close


Merci
A voir également:

1 réponse

blux Messages postés 26539 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 20 décembre 2024 3 318
23 juin 2008 à 09:16
Salut,

tu n'auras jamais le résultat escompté avec ce code : ton db.execute ne sert à rien. De plus, un recordset est un ensemble d'enregistrements, sa 'position' est donc quelque chose qui n'existe pas...

Si tu veux savoir où se trouve la ligne qui t'intéresse, il faut déclarer ton rs, le parcourir et tester le contenu de ce qui t'intéresse en incrémentant un compteur.

Un exemple, avec une table 'Villes' contenant 'Ville' comme colonne :
Dim Rs As DAO.Recordset
Dim StrSql As String
Dim Nb As Integer
StrSql = "select * from villes order by ville"
Set Rs = CurrentDb.OpenRecordset(StrSql, dbOpenSnapshot)
Rs.MoveFirst
Nb = 1
While Not Rs.EOF
    If Rs.Fields("Ville") = "Venise" Then
        MsgBox "trouvée en position " & Nb
        GoTo Fin:
    End If
    Rs.MoveNext
    Nb = Nb + 1
Wend
MsgBox "Ville non trouvée", vbCritical
Fin:
--

A+ Blux           
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0
merci je vais tester cela
0
santi > santi
23 juin 2008 à 09:50
Merci Blux ça marche
0