Pb de lecture d'une base access

MMaker13 Messages postés 6 Date d'inscription dimanche 2 novembre 2003 Statut Membre Dernière intervention 10 mai 2006 - 10 mai 2006 à 17:22
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 10 mai 2006 à 17:44
Bonjour,

J'ai un problème de lecture des données access. Je fais un boucle de lecture avec pour chaque i, les données de la ligne access associée, mais il arrive souvent après manipulation de la table que les données des lignes soient mélangé par rapport aux i.

cmdado.CommandText = "select * from Parametres2"
tb.Requery
countRec = tb.RecordCount-1
ReDim Indicateur(countRec)
On Error Resume Next
tb.MoveFirst



For m = 0 To countRec

Indicateur(m).Name = tb![Indicateur]
Indicateur(m).Plot(1) = tb![Plot1]
Indicateur(m).Plot(2) = tb![Plot2]
Indicateur(m).Plot(3) = tb![Plot3]
tb.MoveNext
Next

D'autre part, j'utilise une importation de données en temps réel, à chaque interval les données sont ajouté à la fin de la base access...néanmoins, régulièrement au bout de quelques temps, les données sont ajouté au debut de la table. Je pense que ces deux problèmes sont liés, il doit y avoir une indexation sous access que je ne maitrise pas...

Merci pour votre aide et vos suggestions.

1 réponse

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
10 mai 2006 à 17:44
Salut
Les écritures dans une DB ne garantissent pas l'ordre d'insertion.
Les lectures non plus, les données arrivent comme elles arrivent.
Il faudrait ajouter un clause dans ta requète :
"select * from Parametres2 Order By LeChampQuiQualifieL'ordre"
Apparemment, dans tes champs, je ne vois pas de n° d'identification des données permettant de garantir l'ordre de celles-ci.
Une méthode simple consiste à ajouter un champ en n° auto qui s'incrémente à chaque insertion.
Dans la méthode d'insertion des données en DB, ne pas spécifier les n° auto-incrémentaux : C'est la DB qui s'en charge -- Ta requète d'insertion ne changera donc pas.
Par contre, à la lecture, tu pourras utiliser ce champ comme sélection du "Order By"

Tu peux aussi utiliser un champ date/time, mais les manipulations de date ne sont pas simples sous Access (problème de date FR et US).

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accro
0
Rejoignez-nous