OVH Cloud OVH Cloud

deplacement dans un recordset

9 réponses
Avatar
pierref
Bonjour,

je ne maitrise pas encore tres bien les recordset.
j'aimerais savoir s' il est possible de se positionner sur
un enregistrement specifique du recordset sans devoir
faire systematiquement movenext.

ex : si je veux aller sur l'enr 4 puis le 2, puis-je faire
autrement que :

record.movefirst

while i<4
record.movenext
next i

'puis

record.movefirst
record.movenext

etc...



merci d'avance et a+

9 réponses

Avatar
Pierre CFI [mvp]
bonjour
tu de déplaces pour trouver une valeur spécifique ?

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"pierref" a écrit dans le message de news: 31ac01c3fd17$66549440$
Bonjour,

je ne maitrise pas encore tres bien les recordset.
j'aimerais savoir s' il est possible de se positionner sur
un enregistrement specifique du recordset sans devoir
faire systematiquement movenext.

ex : si je veux aller sur l'enr 4 puis le 2, puis-je faire
autrement que :

record.movefirst

while i<4
record.movenext
next i

'puis

record.movefirst
record.movenext

etc...



merci d'avance et a+





Avatar
pierref
en fait pas vraiment.

je determine par des calculs dans quel enregistrement de
mon recordset je vais ecrire.
le pb c'est que ca peux passer de l'enr 6 au 3 puis au
9... y'a pas d'ordre logique.
du coup j'aimerais eviter de boucler avec des movenext
pour me positionner...

ya pas un truc du genre monrecordset.index(i) qui
marcherai ?

a+



-----Message d'origine-----
bonjour
tu de déplaces pour trouver une valeur spécifique ?

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"pierref" a écrit
dans le message de news: 31ac01c3fd17$66549440

$
Bonjour,

je ne maitrise pas encore tres bien les recordset.
j'aimerais savoir s' il est possible de se positionner
sur


un enregistrement specifique du recordset sans devoir
faire systematiquement movenext.

ex : si je veux aller sur l'enr 4 puis le 2, puis-je
faire


autrement que :

record.movefirst

while i<4
record.movenext
next i

'puis

record.movefirst
record.movenext

etc...



merci d'avance et a+






.




Avatar
Pierre CFI [mvp]
.../..
avec Move, mais il faut bien gérer
Sub bouge()
Dim bd As Database
Dim enr As Recordset
Set bd = CurrentDb
Set enr = bd.OpenRecordset("client")

enr.Move 2
Debug.Print enr(0)
enr.Close
Set bd = Nothing
End Sub


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"pierref" a écrit dans le message de news: 30b801c3fd1b$593bc720$
en fait pas vraiment.

je determine par des calculs dans quel enregistrement de
mon recordset je vais ecrire.
le pb c'est que ca peux passer de l'enr 6 au 3 puis au
9... y'a pas d'ordre logique.
du coup j'aimerais eviter de boucler avec des movenext
pour me positionner...

ya pas un truc du genre monrecordset.index(i) qui
marcherai ?

a+



-----Message d'origine-----
bonjour
tu de déplaces pour trouver une valeur spécifique ?

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"pierref" a écrit
dans le message de news: 31ac01c3fd17$66549440

$
Bonjour,

je ne maitrise pas encore tres bien les recordset.
j'aimerais savoir s' il est possible de se positionner
sur


un enregistrement specifique du recordset sans devoir
faire systematiquement movenext.

ex : si je veux aller sur l'enr 4 puis le 2, puis-je
faire


autrement que :

record.movefirst

while i<4
record.movenext
next i

'puis

record.movefirst
record.movenext

etc...



merci d'avance et a+






.




Avatar
pierref
ok je vois...

mais par ex pour passer de l'enr 4 a l'enr 2 puis 6
est ce que ca marche si je fais ce qui suit ?

enr.movefirst
enr.Move 4
enr!champ =...

enr.movefirst
enr.move 2
enr!champ =...

enr.movefirst
enr.move 6
enr!champ =...

etc..

(dailleurs si je fais movefirst, il faut ptet que je fasse
move 3 pour atteindre l'enr 4.. non ?)

merci ++

-----Message d'origine-----
..../..
avec Move, mais il faut bien gérer
Sub bouge()
Dim bd As Database
Dim enr As Recordset
Set bd = CurrentDb
Set enr = bd.OpenRecordset("client")

enr.Move 2
Debug.Print enr(0)
enr.Close
Set bd = Nothing
End Sub


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"pierref" a écrit
dans le message de news: 30b801c3fd1b$593bc720

$
en fait pas vraiment.

je determine par des calculs dans quel enregistrement de
mon recordset je vais ecrire.
le pb c'est que ca peux passer de l'enr 6 au 3 puis au
9... y'a pas d'ordre logique.
du coup j'aimerais eviter de boucler avec des movenext
pour me positionner...

ya pas un truc du genre monrecordset.index(i) qui
marcherai ?

a+



-----Message d'origine-----
bonjour
tu de déplaces pour trouver une valeur spécifique ?

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"pierref" a écrit
dans le message de news: 31ac01c3fd17$66549440

$
Bonjour,

je ne maitrise pas encore tres bien les recordset.
j'aimerais savoir s' il est possible de se positionner
sur


un enregistrement specifique du recordset sans devoir
faire systematiquement movenext.

ex : si je veux aller sur l'enr 4 puis le 2, puis-je
faire


autrement que :

record.movefirst

while i<4
record.movenext
next i

'puis

record.movefirst
record.movenext

etc...



merci d'avance et a+






.




.





Avatar
pierref
ok je vois...

mais par ex pour passer de l'enr 4 a l'enr 2 puis 6
est ce que ca marche si je fais ce qui suit ?

enr.movefirst
enr.Move 4
enr!champ =...

enr.movefirst
enr.move 2
enr!champ =...

enr.movefirst
enr.move 6
enr!champ =...

etc..

(dailleurs si je fais movefirst, il faut ptet que je fasse
move 3 pour atteindre l'enr 4.. non ?)

merci ++

-----Message d'origine-----
..../..
avec Move, mais il faut bien gérer
Sub bouge()
Dim bd As Database
Dim enr As Recordset
Set bd = CurrentDb
Set enr = bd.OpenRecordset("client")

enr.Move 2
Debug.Print enr(0)
enr.Close
Set bd = Nothing
End Sub


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"pierref" a écrit
dans le message de news: 30b801c3fd1b$593bc720

$
en fait pas vraiment.

je determine par des calculs dans quel enregistrement de
mon recordset je vais ecrire.
le pb c'est que ca peux passer de l'enr 6 au 3 puis au
9... y'a pas d'ordre logique.
du coup j'aimerais eviter de boucler avec des movenext
pour me positionner...

ya pas un truc du genre monrecordset.index(i) qui
marcherai ?

a+



-----Message d'origine-----
bonjour
tu de déplaces pour trouver une valeur spécifique ?

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"pierref" a écrit
dans le message de news: 31ac01c3fd17$66549440

$
Bonjour,

je ne maitrise pas encore tres bien les recordset.
j'aimerais savoir s' il est possible de se positionner
sur


un enregistrement specifique du recordset sans devoir
faire systematiquement movenext.

ex : si je veux aller sur l'enr 4 puis le 2, puis-je
faire


autrement que :

record.movefirst

while i<4
record.movenext
next i

'puis

record.movefirst
record.movenext

etc...



merci d'avance et a+






.




.





Avatar
pierref
ok je vois...

mais par ex pour passer de l'enr 4 a l'enr 2 puis 6
est ce que ca marche si je fais ce qui suit ?

enr.movefirst
enr.Move 4
enr!champ =...

enr.movefirst
enr.move 2
enr!champ =...

enr.movefirst
enr.move 6
enr!champ =...

etc..

(dailleurs si je fais movefirst, il faut ptet que je fasse
move 3 pour atteindre l'enr 4.. non ?)

merci ++

-----Message d'origine-----
..../..
avec Move, mais il faut bien gérer
Sub bouge()
Dim bd As Database
Dim enr As Recordset
Set bd = CurrentDb
Set enr = bd.OpenRecordset("client")

enr.Move 2
Debug.Print enr(0)
enr.Close
Set bd = Nothing
End Sub


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"pierref" a écrit
dans le message de news: 30b801c3fd1b$593bc720

$
en fait pas vraiment.

je determine par des calculs dans quel enregistrement de
mon recordset je vais ecrire.
le pb c'est que ca peux passer de l'enr 6 au 3 puis au
9... y'a pas d'ordre logique.
du coup j'aimerais eviter de boucler avec des movenext
pour me positionner...

ya pas un truc du genre monrecordset.index(i) qui
marcherai ?

a+



-----Message d'origine-----
bonjour
tu de déplaces pour trouver une valeur spécifique ?

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"pierref" a écrit
dans le message de news: 31ac01c3fd17$66549440

$
Bonjour,

je ne maitrise pas encore tres bien les recordset.
j'aimerais savoir s' il est possible de se positionner
sur


un enregistrement specifique du recordset sans devoir
faire systematiquement movenext.

ex : si je veux aller sur l'enr 4 puis le 2, puis-je
faire


autrement que :

record.movefirst

while i<4
record.movenext
next i

'puis

record.movefirst
record.movenext

etc...



merci d'avance et a+






.




.





Avatar
pierref
ok je vois...

mais par ex pour passer de l'enr 4 a l'enr 2 puis 6
est ce que ca marche si je fais ce qui suit ?

enr.movefirst
enr.Move 4
enr!champ =...

enr.movefirst
enr.move 2
enr!champ =...

enr.movefirst
enr.move 6
enr!champ =...

etc..

(dailleurs si je fais movefirst, il faut ptet que je fasse
move 3 pour atteindre l'enr 4.. non ?)

merci ++



-----Message d'origine-----
..../..
avec Move, mais il faut bien gérer
Sub bouge()
Dim bd As Database
Dim enr As Recordset
Set bd = CurrentDb
Set enr = bd.OpenRecordset("client")

enr.Move 2
Debug.Print enr(0)
enr.Close
Set bd = Nothing
End Sub


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"pierref" a écrit
dans le message de news: 30b801c3fd1b$593bc720

$
en fait pas vraiment.

je determine par des calculs dans quel enregistrement de
mon recordset je vais ecrire.
le pb c'est que ca peux passer de l'enr 6 au 3 puis au
9... y'a pas d'ordre logique.
du coup j'aimerais eviter de boucler avec des movenext
pour me positionner...

ya pas un truc du genre monrecordset.index(i) qui
marcherai ?

a+



-----Message d'origine-----
bonjour
tu de déplaces pour trouver une valeur spécifique ?

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"pierref" a écrit
dans le message de news: 31ac01c3fd17$66549440

$
Bonjour,

je ne maitrise pas encore tres bien les recordset.
j'aimerais savoir s' il est possible de se positionner
sur


un enregistrement specifique du recordset sans devoir
faire systematiquement movenext.

ex : si je veux aller sur l'enr 4 puis le 2, puis-je
faire


autrement que :

record.movefirst

while i<4
record.movenext
next i

'puis

record.movefirst
record.movenext

etc...



merci d'avance et a+






.




.





Avatar
Pierre CFI [mvp]
../...
par défaut tu es sur 1
enr.move 6 ligne 6
enr.move -2 ligne 4
mais si tu fais
enr.move 6
enr("champ") = "ttttt"
enr.update
enr.move - 2

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"pierref" a écrit dans le message de news: 30ff01c3fd20$eef3ed10$

ok je vois...

mais par ex pour passer de l'enr 4 a l'enr 2 puis 6
est ce que ca marche si je fais ce qui suit ?

enr.movefirst
enr.Move 4
enr!champ =...

enr.movefirst
enr.move 2
enr!champ =...

enr.movefirst
enr.move 6
enr!champ =...

etc..

(dailleurs si je fais movefirst, il faut ptet que je fasse
move 3 pour atteindre l'enr 4.. non ?)

merci ++

-----Message d'origine-----
..../..
avec Move, mais il faut bien gérer
Sub bouge()
Dim bd As Database
Dim enr As Recordset
Set bd = CurrentDb
Set enr = bd.OpenRecordset("client")

enr.Move 2
Debug.Print enr(0)
enr.Close
Set bd = Nothing
End Sub


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"pierref" a écrit
dans le message de news: 30b801c3fd1b$593bc720

$
en fait pas vraiment.

je determine par des calculs dans quel enregistrement de
mon recordset je vais ecrire.
le pb c'est que ca peux passer de l'enr 6 au 3 puis au
9... y'a pas d'ordre logique.
du coup j'aimerais eviter de boucler avec des movenext
pour me positionner...

ya pas un truc du genre monrecordset.index(i) qui
marcherai ?

a+



-----Message d'origine-----
bonjour
tu de déplaces pour trouver une valeur spécifique ?

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"pierref" a écrit
dans le message de news: 31ac01c3fd17$66549440

$
Bonjour,

je ne maitrise pas encore tres bien les recordset.
j'aimerais savoir s' il est possible de se positionner
sur


un enregistrement specifique du recordset sans devoir
faire systematiquement movenext.

ex : si je veux aller sur l'enr 4 puis le 2, puis-je
faire


autrement que :

record.movefirst

while i<4
record.movenext
next i

'puis

record.movefirst
record.movenext

etc...



merci d'avance et a+






.




.





Avatar
pierref
ok j'ai bien compris le truc
merci pour le coup de pouce

a+

-----Message d'origine-----
.../...
par défaut tu es sur 1
enr.move 6 ligne 6
enr.move -2 ligne 4
mais si tu fais
enr.move 6
enr("champ") = "ttttt"
enr.update
enr.move - 2

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"pierref" a écrit
dans le message de news: 30ff01c3fd20$eef3ed10

$

ok je vois...

mais par ex pour passer de l'enr 4 a l'enr 2 puis 6
est ce que ca marche si je fais ce qui suit ?

enr.movefirst
enr.Move 4
enr!champ =...

enr.movefirst
enr.move 2
enr!champ =...

enr.movefirst
enr.move 6
enr!champ =...

etc..

(dailleurs si je fais movefirst, il faut ptet que je fasse
move 3 pour atteindre l'enr 4.. non ?)

merci ++

-----Message d'origine-----
..../..
avec Move, mais il faut bien gérer
Sub bouge()
Dim bd As Database
Dim enr As Recordset
Set bd = CurrentDb
Set enr = bd.OpenRecordset("client")

enr.Move 2
Debug.Print enr(0)
enr.Close
Set bd = Nothing
End Sub


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"pierref" a écrit
dans le message de news: 30b801c3fd1b$593bc720

$
en fait pas vraiment.

je determine par des calculs dans quel enregistrement de
mon recordset je vais ecrire.
le pb c'est que ca peux passer de l'enr 6 au 3 puis au
9... y'a pas d'ordre logique.
du coup j'aimerais eviter de boucler avec des movenext
pour me positionner...

ya pas un truc du genre monrecordset.index(i) qui
marcherai ?

a+



-----Message d'origine-----
bonjour
tu de déplaces pour trouver une valeur spécifique ?

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"pierref" a écrit
dans le message de news: 31ac01c3fd17$66549440

$
Bonjour,

je ne maitrise pas encore tres bien les recordset.
j'aimerais savoir s' il est possible de se positionner
sur


un enregistrement specifique du recordset sans devoir
faire systematiquement movenext.

ex : si je veux aller sur l'enr 4 puis le 2, puis-je
faire


autrement que :

record.movefirst

while i<4
record.movenext
next i

'puis

record.movefirst
record.movenext

etc...



merci d'avance et a+






.




.




.