OVH Cloud OVH Cloud

Probleme d'incrementation

2 réponses
Avatar
c.barbier
J'ai un probleme d'incrementation de la variable rst_art. En fait,
j'ai une table dbo_article_copie dans laquelle je souhaite lire les
enregistrements les uns a la suite des autres.
Ma table dbo_article_copie est de la suivante :
Code_Article AchetPlan
102 OUT
300 ELE
450 DOC
600 BOBI
800 PIF

Lorsque je realise l'execution, le parcours de la table est fait de
la maniere suivante :
102
450
800
300
600

Et moi, je voudrais le parcours suivant :
102
300
450
600
800

Pouvez vous me dire ce qu'il faut que je change pour avoir le
parcours que je souhaite ?
Le code est le suivant:
Function Principale()
Dim db_art As DAO.Database
Dim rst_art As DAO.Recordset

Dim db_mvt As DAO.Database
Dim rst_mvt As DAO.Recordset

Dim code_article As String
Dim article As String
Dim annee As Integer
Dim annee_souhaitee As Integer
Dim mois As Integer
Dim mois_souhaite As Integer

annee_souhaitee = Saisie_Annee_Souhaitee()
mois_souhaite = Saisie_Mois_Souhaite()
Set db_art = CurrentDb()
Set rst_art = db_art.OpenRecordset("dbo_Article_copie")

While Not rst_art.EOF 'tant que l'on n'a pas atteint la fin de la table
If rst_art![AchetPlan] <> "OUT" Then
code_article = rst_art![Code] 'lecture du code article de la
table dbo-article
'Debug.Print code_article
'Debug.Print rst_art![AchetPlan] 'affichage du champ
description1 de la table dbo_article
Set db_mvt = CurrentDb()
Set rst_mvt = db_mvt.OpenRecordset("dbo_mouvement_copie")

While Not rst_mvt.EOF
article = rst_mvt![article] 'lecture du code article dans
la table des mouvements
annee = Year(rst_mvt![Date])
mois = Month(rst_mvt![Date])
If ((code_article = article) And (annee = annee_souhaitee))
Then
Debug.Print code_article
Debug.Print annee
Debug.Print rst_mvt![mouvement]
End If
rst_mvt.MoveNext 'passage au mouvement suivant
Wend

rst_mvt.Close 'fermeture de l'objet recordset
Set rst_mvt = Nothing 'liberation d'une variable objet
Set db_mvt = Nothing 'liberation d'une variable objet

End If
rst_art.MoveNext 'passer a l'element suivant
Wend

rst_art.Close 'fermeture de l'objet recordset
Set rst_art = Nothing 'liberation d'une variable objet
Set db_art = Nothing ' liberation d'une variable objet

End Function

Merci beaucoup,

2 réponses

Avatar
Raymond [mvp]
Bonjour.

Au lieu d'utiliser ta table directement, utilise une requête.
exemple:
Set rst_art = db_art.OpenRecordset("SELECT * FROM dbo_article_copie ORDER
BY Nomduchampatrier;")

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


a écrit dans le message de news:

J'ai un probleme d'incrementation de la variable rst_art. En fait,
j'ai une table dbo_article_copie dans laquelle je souhaite lire les
enregistrements les uns a la suite des autres.
Ma table dbo_article_copie est de la suivante :
Code_Article AchetPlan
102 OUT
300 ELE
450 DOC
600 BOBI
800 PIF


Avatar
c.barbier
C'est parfait, maintenant il lit bien la table dans l'ordre
merci beaucoup