[Access 2003] Clef primaire inexacte

Fermé
Fulong Messages postés 1 Date d'inscription mercredi 19 août 2009 Statut Membre Dernière intervention 19 août 2009 - 19 août 2009 à 18:34
Jean_Jacques Messages postés 1040 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 1 août 2014 - 20 août 2009 à 16:06
Bonjour,

Je travaille actuellement sur une base de données terminologique, qui est presque finie. Malgré mes maigres connaissances en Access j'ai réussi, en grande partie grâce à ce forum, à obtenir un résultat qui me satisfait, mais il me reste encore un dernier problème à régler et je n'ai pu trouver aucun forum traitant d'un problème similaire ...

Ma base comprend un formulaire Sources ("frm_Sources") basé sur une table ("tbl_Sources") qui contient des informations sur les documents de référence utilisés pour remplir la partie glossaire.

En commençant à remplir les sources, j'ai décidé d'ajouter un petit module de recherche au formulaire permettant d'afficher les résultats dans une liste de résultat (appelée "lst_resultat"). J'aimerais maintenant arriver à me rendre à l'enregistrement choisi en double-cliquant sur la ligne de la liste qui lui correspond. J'ai donc crée une commande :

Private Sub lst_resultat_DblClick(Cancel As Integer)
DoCmd.GoToRecord , , acGoTo, Me.lst_resultat
End Sub

Problème cependant. La clef primaire de ma table ("N°") a définie les numéros par incrémentation de 1 en 1. Malheureusement, après avoir supprimé des entrées dans la table, le champ "N°" de la table ne correspond plus au numéro des enregistrements du point de vue du formulaire.

Par exemple, pour le tout premier enregistrement de la table, [N°] = 4 , donc si je double-clique dessus dans la liste, j'affiche l'enregistrement qui correspond à la quatrième ligne de la table, mais pas l'enregistrement dont le champ N° est égal à 4...

J'ai bien essayé un :
DoCmd.GoToRecord , , acGoTo, " N° = " & Me.lst_resultat

... en vain.

Pardonnez-moi de ne pas pouvoir être plus concis, j'espère que ça vous paraîtra assez clair et que certains d'entre vous pourront me filer un coup de main.

Merci d'avance!
A voir également:

1 réponse

Jean_Jacques Messages postés 1040 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 1 août 2014 112
19 août 2009 à 19:04
Fulong,

Voici un brouillon ACCESS à télécharger qui traite plus ou moins de votre problématique ...

1/En activant le formulaire F_commandes et en vous positionnant (ce n'est qu'un exemple) sur l'enregistrement N° 8, vous actionnez le bouton "Ouvrir" et les enregistrements enregistrements 1; 7; 8. C'est à dire les 3 occurrences qui
ont "Client 1" pour argument sont listés. Ainsi de suite ...

En l'adaptant à votre contexte, je présume qu'il pourra vous rendre service.

http://www.cijoint.fr/cjlink.php?file=cj200908/cijSkH3fFz.zip

Cordialement
0
Jean_Jacques,

J'ai utilisé la méthode OpenForm de votre tutoriel et ça marche parfaitement!

Merci infiniment!
0
Jean_Jacques Messages postés 1040 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 1 août 2014 112 > Fulong
20 août 2009 à 16:06
Bonjour Fulong,

Vous me voyez ravi de notre petit succès.
Pour mémoire, j'ai créé le petit tuto comme suit :

1 / Affichage du formulaire en mode création
2 / La boîte à outils
3 / Clic Gauche sur l'outil nommé "Bouton de commande"
4 / Nouveau Clic sur le formulaire pour y déposer le bouton ...
5 / Suivre les instructions en pas à pas de l'assistant qui s'affiche, etc

Autre chose : Il est toujours possible et facile de renuméroter une clé primaire en partant de un. Mais alors attention aux liens ...

Bonne fin de journée
0