Bonjour,
je travaille actuellement sur un petit projet Access 2007 mais débute en VBA...
Mon problème se situe au niveau suivant :
J'ai 3 tables liées : une représentant des "projets", une table "modules" liée à projet et enfin une table "roue" liée à "module".
En gros un projet est constitué de plusieurs modules eux même regroupant chacun plusieurs roues.
J'ai deux formulaire : un présentant les projets sous forme de liste (type tableau excel) et un autre détaillant chaque projet (formulaire détails_projets contenant un sous formulaire module et un sous-sous formulaire "roue" )
Dans le 1° formulaire j'ai la colonne N° (qui représente la clé primaire de type NuméroAuto de la table projets)
et ce que je veux faire c'est quand je clique sur le numero, le deuxième formulaire s'ouvre sur l'enregistrement correspondant
J'ai donc écris ces quelques lignes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Private Sub N°_Click() Dim i As Variant DoCmd.OpenForm "Saisie_projet" //Ouvre le formulaire i = N° If i<>0 then DoCmd.GoToRecord , , acGoTo, i //ouvre l'enregistrement i Else DoCmd.GoToRecord , , acNewRec //ouvre le formulaire vide dans le cas où je clickerais sur (Nouv.) End If End Sub
Seulement ce à quoi je n'avais pas pensé...ce que je puisse avoir des trous dans ma numérotation et ce qu'il se passe ....c'est que je me retrouve avec le N° 7 correspondant à l'enregistrement 6...
et donc je n'ouvre pas le bon projet.
Je pensais à créer une fonction avec compteur parcourant la table et comparant le N° sur lequel j'ai cliqué avec le N° de chaque ligne. Le compteur me donnerais donc l'enregistrement correspondant (mon i dans mon programme) mais c'est quand même assez lourd si je me retrouve avec 1000 projets....
Donc je voulais savoir si quelqu'un n'aurait pas une solution plus pratique et efficace à me proposer
Merci d'avance
Partager