afficher le champ1 des 10 derniers enregistrements

Le
ruiz
bonjour !

une table avec des champs texte : champ1 champ2 et champ3
comment recuperer dans des champs independant ChampInd1, ChampInd2,
ChampInd3 etc.. dans un formulaire:
la valeur du champ1 du dernier enregistrement
la valeur du champ1 de l'avant-dernier enregistrement
la valeur du champ1 de l'avant-avant-dernier enregistrement
etc..sur les 10 derniers enregistrement..

j ai essyé avec une requete qui me renvoit bien par exemple le dernier
enregistrement mais je n arrive pas à affecter le resultat à un champ
independant de mon formulaire.
merci de votre aide.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Raymond [mvp]
Le #6286191
Bonjour.

ta requête est celle-ci:
SELECT TOP 10 col1 FROM champ1 ORDER BY champ_tri DESC;

champ_tri peut être champ1, je ne sais pas, ou la clé primaire ?

tu peux ouvrir cette requête par vba:
Dim Rs As DAO.Recordset
Set Rs = CurrentDb.OpenRecordset("SELECT TOP 10 col1 FROM champ1 ORDER BY
champ_tri DESC;")
If Not Rs.EOF Then
Me.ChampInd1 = Me.Rs(0)
Rs.MoveNext
Me.ChampInd2 = Me.Rs(0)
Rs.MoveNext
'...........
Me.ChampInd10 = Me.Rs(0)
Set Rs = Nothing
End If

c'est un exemple simple qu'il faudrait compléter par les tests d'erreur.

je ne comprend pas trop la philosophie du truc mais peux-tu expliquer ?

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/

Venez découvrir Open XML, le nouveau format de fichier de la suite Office !
http://www.comscamp.com/Tracker/Redirect.ashx?linkidÿ71c7f3-78e8-4371-abaf-b73c259e58db


"ruiz"
| bonjour !
|
| une table avec des champs texte : champ1 champ2 et champ3
| comment recuperer dans des champs independant ChampInd1, ChampInd2,
| ChampInd3 etc.. dans un formulaire:
| la valeur du champ1 du dernier enregistrement
| la valeur du champ1 de l'avant-dernier enregistrement
| la valeur du champ1 de l'avant-avant-dernier enregistrement
| etc..sur les 10 derniers enregistrement..
|
| j ai essyé avec une requete qui me renvoit bien par exemple le dernier
| enregistrement mais je n arrive pas à affecter le resultat à un champ
| independant de mon formulaire.
| merci de votre aide.
|
|
ruiz
Le #6286081
merci de ta réponse.

je vais essayer d etre plus precis..
j ai une table tkdo avec comme champs idkdo, kdo, Qté, datesaisie
j ai une table gagnant avec idkdo, nom, prenom etc..
dans un formulaire,j ai besoin de faire un récap des 10 derniers nouveaux
kdo saisi dans la base et que cette liste se mette a jour automatiquement a
chaque ouverture du formulaire. C'est pour ça que j avais pensé à 10 champs
independant avec comme valeur par defaut du code VB pour la requete.
je pourrais apres mettre devant ces champs, des infos comme la qté gagné et
à quel jour etc..






Bonjour.

ta requête est celle-ci:
SELECT TOP 10 col1 FROM champ1 ORDER BY champ_tri DESC;

champ_tri peut être champ1, je ne sais pas, ou la clé primaire ?

tu peux ouvrir cette requête par vba:
Dim Rs As DAO.Recordset
Set Rs = CurrentDb.OpenRecordset("SELECT TOP 10 col1 FROM champ1 ORDER BY
champ_tri DESC;")
If Not Rs.EOF Then
Me.ChampInd1 = Me.Rs(0)
Rs.MoveNext
Me.ChampInd2 = Me.Rs(0)
Rs.MoveNext
'...........
Me.ChampInd10 = Me.Rs(0)
Set Rs = Nothing
End If

c'est un exemple simple qu'il faudrait compléter par les tests d'erreur.

je ne comprend pas trop la philosophie du truc mais peux-tu expliquer ?

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/

Venez découvrir Open XML, le nouveau format de fichier de la suite Office !
http://www.comscamp.com/Tracker/Redirect.ashx?linkidÿ71c7f3-78e8-4371-abaf-b73c259e58db


"ruiz"
| bonjour !
|
| une table avec des champs texte : champ1 champ2 et champ3
| comment recuperer dans des champs independant ChampInd1, ChampInd2,
| ChampInd3 etc.. dans un formulaire:
| la valeur du champ1 du dernier enregistrement
| la valeur du champ1 de l'avant-dernier enregistrement
| la valeur du champ1 de l'avant-avant-dernier enregistrement
| etc..sur les 10 derniers enregistrement..
|
| j ai essyé avec une requete qui me renvoit bien par exemple le dernier
| enregistrement mais je n arrive pas à affecter le resultat à un champ
| independant de mon formulaire.
| merci de votre aide.
|
|





Raymond [mvp]
Le #6286061
ça devrait aller.
sauf qu'il faut tester l'erreur de fin de fichier s'il y a moins de 10
enregistrements au départ.
il faut bien trier sur la clé primaire (autonum ?) en ordre desc.
tu places ton code dans l'événement Form_Load.
--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
http://officesystem.access.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/

Venez découvrir Open XML, le nouveau format de fichier de la suite Office !
http://www.comscamp.com/Tracker/Redirect.ashx?linkidÿ71c7f3-78e8-4371-abaf-b73c259e58db


"ruiz"
| merci de ta réponse.
|
| je vais essayer d etre plus precis..
| j ai une table tkdo avec comme champs idkdo, kdo, Qté, datesaisie
| j ai une table gagnant avec idkdo, nom, prenom etc..
| dans un formulaire,j ai besoin de faire un récap des 10 derniers nouveaux
| kdo saisi dans la base et que cette liste se mette a jour automatiquement
a
| chaque ouverture du formulaire. C'est pour ça que j avais pensé à 10
champs
| independant avec comme valeur par defaut du code VB pour la requete.
| je pourrais apres mettre devant ces champs, des infos comme la qté gagné
et
| à quel jour etc..
|
|
|
|
|
|
| > Bonjour.
| >
| > ta requête est celle-ci:
| > SELECT TOP 10 col1 FROM champ1 ORDER BY champ_tri DESC;
| >
| > champ_tri peut être champ1, je ne sais pas, ou la clé primaire ?
| >
| > tu peux ouvrir cette requête par vba:
| > Dim Rs As DAO.Recordset
| > Set Rs = CurrentDb.OpenRecordset("SELECT TOP 10 col1 FROM champ1 ORDER
BY
| > champ_tri DESC;")
| > If Not Rs.EOF Then
| > Me.ChampInd1 = Me.Rs(0)
| > Rs.MoveNext
| > Me.ChampInd2 = Me.Rs(0)
| > Rs.MoveNext
| > '...........
| > Me.ChampInd10 = Me.Rs(0)
| > Set Rs = Nothing
| > End If
| >
| > c'est un exemple simple qu'il faudrait compléter par les tests d'erreur.
| >
| > je ne comprend pas trop la philosophie du truc mais peux-tu expliquer ?
| >
| > --
| > @+
| > Raymond Access MVP http://OfficeSystem.Access.free.fr/
| > Pour débuter sur le forum: http://www.mpfa.info/
| >
| > Venez découvrir Open XML, le nouveau format de fichier de la suite
Office !
| >
http://www.comscamp.com/Tracker/Redirect.ashx?linkidÿ71c7f3-78e8-4371-abaf-b73c259e58db
| >
| >
| > "ruiz" | >
| > | bonjour !
| > |
| > | une table avec des champs texte : champ1 champ2 et champ3
| > | comment recuperer dans des champs independant ChampInd1, ChampInd2,
| > | ChampInd3 etc.. dans un formulaire:
| > | la valeur du champ1 du dernier enregistrement
| > | la valeur du champ1 de l'avant-dernier enregistrement
| > | la valeur du champ1 de l'avant-avant-dernier enregistrement
| > | etc..sur les 10 derniers enregistrement..
| > |
| > | j ai essyé avec une requete qui me renvoit bien par exemple le dernier
| > | enregistrement mais je n arrive pas à affecter le resultat à un champ
| > | independant de mon formulaire.
| > | merci de votre aide.
| > |
| > |
| >
| >
| >
ruiz
Le #6286021
ça marche pas..
meme en testant ça:
Dim rs As New ADODB.Recordset
Set rs = CurrentDb.OpenRecordset("SELECT Last(T_kdo.kdo) FROM T_KDO;")
Me.kdo1 = rs

j ai une erreur incompatibilité de type..
j ai aussi changé Dim rs as DAO.Recordset
par Dim rs as New ADODB.Recordset





ça devrait aller.
sauf qu'il faut tester l'erreur de fin de fichier s'il y a moins de 10
enregistrements au départ.
il faut bien trier sur la clé primaire (autonum ?) en ordre desc.
tu places ton code dans l'événement Form_Load.
--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
http://officesystem.access.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/

Venez découvrir Open XML, le nouveau format de fichier de la suite Office !
http://www.comscamp.com/Tracker/Redirect.ashx?linkidÿ71c7f3-78e8-4371-abaf-b73c259e58db


"ruiz"
| merci de ta réponse.
|
| je vais essayer d etre plus precis..
| j ai une table tkdo avec comme champs idkdo, kdo, Qté, datesaisie
| j ai une table gagnant avec idkdo, nom, prenom etc..
| dans un formulaire,j ai besoin de faire un récap des 10 derniers nouveaux
| kdo saisi dans la base et que cette liste se mette a jour automatiquement
a
| chaque ouverture du formulaire. C'est pour ça que j avais pensé à 10
champs
| independant avec comme valeur par defaut du code VB pour la requete.
| je pourrais apres mettre devant ces champs, des infos comme la qté gagné
et
| à quel jour etc..
|
|
|
|
|
|
| > Bonjour.
| >
| > ta requête est celle-ci:
| > SELECT TOP 10 col1 FROM champ1 ORDER BY champ_tri DESC;
| >
| > champ_tri peut être champ1, je ne sais pas, ou la clé primaire ?
| >
| > tu peux ouvrir cette requête par vba:
| > Dim Rs As DAO.Recordset
| > Set Rs = CurrentDb.OpenRecordset("SELECT TOP 10 col1 FROM champ1 ORDER
BY
| > champ_tri DESC;")
| > If Not Rs.EOF Then
| > Me.ChampInd1 = Me.Rs(0)
| > Rs.MoveNext
| > Me.ChampInd2 = Me.Rs(0)
| > Rs.MoveNext
| > '...........
| > Me.ChampInd10 = Me.Rs(0)
| > Set Rs = Nothing
| > End If
| >
| > c'est un exemple simple qu'il faudrait compléter par les tests d'erreur.
| >
| > je ne comprend pas trop la philosophie du truc mais peux-tu expliquer ?
| >
| > --
| > @+
| > Raymond Access MVP http://OfficeSystem.Access.free.fr/
| > Pour débuter sur le forum: http://www.mpfa.info/
| >
| > Venez découvrir Open XML, le nouveau format de fichier de la suite
Office !
| >
http://www.comscamp.com/Tracker/Redirect.ashx?linkidÿ71c7f3-78e8-4371-abaf-b73c259e58db
| >
| >
| > "ruiz" | >
| > | bonjour !
| > |
| > | une table avec des champs texte : champ1 champ2 et champ3
| > | comment recuperer dans des champs independant ChampInd1, ChampInd2,
| > | ChampInd3 etc.. dans un formulaire:
| > | la valeur du champ1 du dernier enregistrement
| > | la valeur du champ1 de l'avant-dernier enregistrement
| > | la valeur du champ1 de l'avant-avant-dernier enregistrement
| > | etc..sur les 10 derniers enregistrement..
| > |
| > | j ai essyé avec une requete qui me renvoit bien par exemple le dernier
| > | enregistrement mais je n arrive pas à affecter le resultat à un champ
| > | independant de mon formulaire.
| > | merci de votre aide.
| > |
| > |
| >
| >
| >





Raymond [mvp]
Le #6286001
commence par le DAO avant ADO, ce sera plus simple. la syntaxe n'est pas la
même.
selon mon exemple ça donne quoi ?
--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
http://officesystem.access.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/

Venez découvrir Open XML, le nouveau format de fichier de la suite Office !
http://www.comscamp.com/Tracker/Redirect.ashx?linkidÿ71c7f3-78e8-4371-abaf-b73c259e58db


"ruiz"
| ça marche pas..
| meme en testant ça:
| Dim rs As New ADODB.Recordset
| Set rs = CurrentDb.OpenRecordset("SELECT Last(T_kdo.kdo) FROM T_KDO;")
| Me.kdo1 = rs
|
| j ai une erreur incompatibilité de type..
| j ai aussi changé Dim rs as DAO.Recordset
| par Dim rs as New ADODB.Recordset
|
ruiz
Le #6285961
avec ça:
Dim Rs As DAO.Recordset
Set Rs = CurrentDb.OpenRecordset("SELECT TOP 3 col1 kdo FROM T_KDO ORDER BY
idkdo DESC;")
If Not Rs.EOF Then
Me.kdo1 = Me.Rs(0)
Rs.MoveNext
Me.kdo2 = Me.Rs(0)
Rs.MoveNext
Me.kdo3 = Me.Rs(0)
Set Rs = Nothing
End If

ça me retourne cette erreur sur la 1ere ligne
erreur de compilation...type defini par l'utilisateur non defini..




commence par le DAO avant ADO, ce sera plus simple. la syntaxe n'est pas la
même.
selon mon exemple ça donne quoi ?
--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
http://officesystem.access.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/

Venez découvrir Open XML, le nouveau format de fichier de la suite Office !
http://www.comscamp.com/Tracker/Redirect.ashx?linkidÿ71c7f3-78e8-4371-abaf-b73c259e58db


"ruiz"
| ça marche pas..
| meme en testant ça:
| Dim rs As New ADODB.Recordset
| Set rs = CurrentDb.OpenRecordset("SELECT Last(T_kdo.kdo) FROM T_KDO;")
| Me.kdo1 = rs
|
| j ai une erreur incompatibilité de type..
| j ai aussi changé Dim rs as DAO.Recordset
| par Dim rs as New ADODB.Recordset
|





Raymond [mvp]
Le #6285941
oh le mauvais !
remplacer Me.Rs(0) par Rs(0) tout simplement.

mille excuses.

pourquoi col1 kdo FROM ? ce doit être kdo FROM , non ? le col1 était pour
moi dans mon exemple pour indiquer le premier champ.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
http://officesystem.access.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/

Venez découvrir Open XML, le nouveau format de fichier de la suite Office !
http://www.comscamp.com/Tracker/Redirect.ashx?linkidÿ71c7f3-78e8-4371-abaf-b73c259e58db


"ruiz"
| avec ça:
| Dim Rs As DAO.Recordset
| Set Rs = CurrentDb.OpenRecordset("SELECT TOP 3 col1 kdo FROM T_KDO ORDER
BY
| idkdo DESC;")
| If Not Rs.EOF Then
| Me.kdo1 = Me.Rs(0)
| Rs.MoveNext
| Me.kdo2 = Me.Rs(0)
| Rs.MoveNext
| Me.kdo3 = Me.Rs(0)
| Set Rs = Nothing
| End If
|
| ça me retourne cette erreur sur la 1ere ligne
| erreur de compilation...type defini par l'utilisateur non defini..
|
|
|
|
| > commence par le DAO avant ADO, ce sera plus simple. la syntaxe n'est pas
la
| > même.
| > selon mon exemple ça donne quoi ?
| > --
| > @+
| > Raymond Access MVP http://OfficeSystem.Access.free.fr/
| > http://officesystem.access.over-blog.com/
| > Pour débuter sur le forum: http://www.mpfa.info/
| >
| > Venez découvrir Open XML, le nouveau format de fichier de la suite
Office !
| >
http://www.comscamp.com/Tracker/Redirect.ashx?linkidÿ71c7f3-78e8-4371-abaf-b73c259e58db
| >
| >
| > "ruiz" | >
| > | ça marche pas..
| > | meme en testant ça:
| > | Dim rs As New ADODB.Recordset
| > | Set rs = CurrentDb.OpenRecordset("SELECT Last(T_kdo.kdo) FROM T_KDO;")
| > | Me.kdo1 = rs
| > |
| > | j ai une erreur incompatibilité de type..
| > | j ai aussi changé Dim rs as DAO.Recordset
| > | par Dim rs as New ADODB.Recordset
| > |
| >
| >
| >
ruiz
Le #6285841
il ne veut rien savoir sur cette ligne :
Dim Rs As DAO.Recordset


oh le mauvais !
remplacer Me.Rs(0) par Rs(0) tout simplement.

mille excuses.

pourquoi col1 kdo FROM ? ce doit être kdo FROM , non ? le col1 était pour
moi dans mon exemple pour indiquer le premier champ.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
http://officesystem.access.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/

Venez découvrir Open XML, le nouveau format de fichier de la suite Office !
http://www.comscamp.com/Tracker/Redirect.ashx?linkidÿ71c7f3-78e8-4371-abaf-b73c259e58db


"ruiz"
| avec ça:
| Dim Rs As DAO.Recordset
| Set Rs = CurrentDb.OpenRecordset("SELECT TOP 3 col1 kdo FROM T_KDO ORDER
BY
| idkdo DESC;")
| If Not Rs.EOF Then
| Me.kdo1 = Me.Rs(0)
| Rs.MoveNext
| Me.kdo2 = Me.Rs(0)
| Rs.MoveNext
| Me.kdo3 = Me.Rs(0)
| Set Rs = Nothing
| End If
|
| ça me retourne cette erreur sur la 1ere ligne
| erreur de compilation...type defini par l'utilisateur non defini..
|
|
|
|
| > commence par le DAO avant ADO, ce sera plus simple. la syntaxe n'est pas
la
| > même.
| > selon mon exemple ça donne quoi ?
| > --
| > @+
| > Raymond Access MVP http://OfficeSystem.Access.free.fr/
| > http://officesystem.access.over-blog.com/
| > Pour débuter sur le forum: http://www.mpfa.info/
| >
| > Venez découvrir Open XML, le nouveau format de fichier de la suite
Office !
| >
http://www.comscamp.com/Tracker/Redirect.ashx?linkidÿ71c7f3-78e8-4371-abaf-b73c259e58db
| >
| >
| > "ruiz" | >
| > | ça marche pas..
| > | meme en testant ça:
| > | Dim rs As New ADODB.Recordset
| > | Set rs = CurrentDb.OpenRecordset("SELECT Last(T_kdo.kdo) FROM T_KDO;")
| > | Me.kdo1 = rs
| > |
| > | j ai une erreur incompatibilité de type..
| > | j ai aussi changé Dim rs as DAO.Recordset
| > | par Dim rs as New ADODB.Recordset
| > |
| >
| >
| >





Raymond [mvp]
Le #6285831
il faut cocher la référence dao

faire alt + F11
outils
référence
cocher la ligne : microsoft dao 3.6 object library
bouton ok
recompiler pour vérifier les erreurs.
tester.


--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
http://officesystem.access.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/

Venez découvrir Open XML, le nouveau format de fichier de la suite Office !
http://www.comscamp.com/Tracker/Redirect.ashx?linkidÿ71c7f3-78e8-4371-abaf-b73c259e58db


"ruiz"
| il ne veut rien savoir sur cette ligne :
| Dim Rs As DAO.Recordset
|
ruiz
Le #6285811
ça marche !
merci Raymond



il faut cocher la référence dao

faire alt + F11
outils
référence
cocher la ligne : microsoft dao 3.6 object library
bouton ok
recompiler pour vérifier les erreurs.
tester.


--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
http://officesystem.access.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/

Venez découvrir Open XML, le nouveau format de fichier de la suite Office !
http://www.comscamp.com/Tracker/Redirect.ashx?linkidÿ71c7f3-78e8-4371-abaf-b73c259e58db


"ruiz"
| il ne veut rien savoir sur cette ligne :
| Dim Rs As DAO.Recordset
|





Publicité
Poster une réponse
Anonyme