Comparaison d'enregistrements sur Access

Résolu
padsouci Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -  
padsouci Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous, désolé si ce topic est en double, mais après avoir cherché sur le forum assez longtemps, je n'ai rien trouvé.
Mon problème me semblait assez simple au départ:
En simplifiant, j'ai une table dans laquelle se trouve 3 champs, "pièce", "de" et "à". En gros ça donne:

PIECE    DE    A   
45E       0    10
45E       10   15
45E       15   28
55R       42   56
55R       56   72


Je souhaitais faire une requète sélection pour m'assurer que le champ "de" d'un enregistrement est bien égale au champ "à" de l'enregistrement précédent (même si du coup cela va m'indiquer chaque changement de pièce).
Cela fait maintenant une bonne partie de la journée que j'essaye avec notamment la fonction RechDom, mais rien à faire. Cette table est indexée par une clé primaire, j'utilise la version 2003 et je travaille uniquement en SQL pour l'instant.

Est-ce que vous auriez des idées? Parce que là, je sèche.
Merci d'avance.

padsouci
A voir également:

8 réponses

vordano Messages postés 1685 Date d'inscription   Statut Membre Dernière intervention   316
 
bonjour,
quel est le nom de ta clé primaire ?

a vue de nez je dirais ca:
select t1.pk from table as t1 where t1.de not in(select t2.a from table as t2);
normalement ca ressort toutes les clé primaire où la valeur du champ "a" n'as pas d'équivalent dans le champ "de"

après, peut être que ca ne marche pas, je ne fais pas trop de sql ces temps ci
0
padsouci Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

La clé primaire est un champ NumAuto (j'avais pas de champ unique sous la main).
J'essaye ton idée, me faut un peu de temps pour mettre la bonne syntaxe.

Merci en tout cas pour ta réponse.
0
vordano Messages postés 1685 Date d'inscription   Statut Membre Dernière intervention   316
 
le principe (selon moi) c'est de comparer tout les champ "a" avec les champs "de" et de voir lesquels n'ont pas d'égalité
0
padsouci Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
mmmh je pense en fait que cela va être compliqué, vu que ma table contient 20 000 entréées entre 0 et 150 m, avec une précision au cm, donc je pense qu'à peu près toutes les mesures sont représentées. Mais plus je cherche et plus il me semble ne pas y avoir de moyen de se référer à l'enregistrement précédent.

Merci en tout cas, je vais toujours essayer.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vordano Messages postés 1685 Date d'inscription   Statut Membre Dernière intervention   316
 
je suppose que tu fais du vba ?

tu peux lire le tuto suivant:
https://access.developpez.com/faq/?page=SQL#Recordset

en clair tu sauvegarde dans une variable la valeur actuel du champ "a" et tu compare cette variable (dans une boucle) avec la ligne suivante (en mettant a jour la variable a chaque ligne)

voici des morceaux de code qui pourrais t'être utile:
Set db = CurrentDb() 
Set rst = db.OpenRecordset("SELECT tblEmail.Email FROM tblEmail;")
rst.movefirst
rst!Email
rst.movenext
rst.close

le premier initialise la db du fichier access actuel
le second créé un recordset de la requete
et je suppose que tu comprend le reste
0
padsouci Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
Euh non en fait, j'utilises Access genre 2 semaines par an, mais je vais m'initier aux bases du langages VBA ce week-end, car ça fait plusieurs fois que j'en entends parler, et je pense que ça peut vraiment m'aider (quel joli week-end en perspective!).
0
vordano Messages postés 1685 Date d'inscription   Statut Membre Dernière intervention   316
 
ce n'est pas si dur que ca en a l'air, il suffit juste d'avoir de la logique et de savoir faire des recherches sur google et des copier coller (et aussi savoir lire quelques lignes d'anglais, mais pour ca il y as google trad ^^)
0
padsouci Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
Du coup j'ai trouvé une solution, plus artisanale mais efficace:
un simple copier-coller sur Excel, et c'est tout de suite plus pratique!

Je te remercie en tout cas [et accessoirement VBA c'est pas mal quand même, je vais approfondir ;) ]
0