Bonjour
alors voila :
J'ai une table qui s'appelle "AP" qui ressence tout les automates de mon client, et un autre, "Standards" qui recense touts les standards de programmation de ce même client. Entre les 2, il y a une Table "StandardsInstalles" qui fait le lien, pour savoir quel standard est installé dans quel AP, en se liant sur les n°identifiants de "AP" et "Standards" ("AP" et "Standards" sont du coté 1 de la relation avec "StandardsInstalles")
Jusque là tout va bien
J'ai un formulaire "VueAP" qui me permet de voir les info d'un AP à la fois, qui contient un sous-formulaire qui va chercher dans une requête les données qui correspondent aux standards installées (en allant taper dans des tables derrière "Standards"). La requête fonctionne bien.
La où ça se complique, c'est quand je veux ajouter un standard à un AP (soit un nouveau champ dans "StandardsInstalles")
Pour ça, j'ai un listbox dans mon formulaire principale qui liste les standards, et un bouton à coté qui contient le code
Ca marche bien, sauf pour (c'est dans le titre) récupérer le n° d'identifiant de l'AP. J'utilise la méthode GetRows avec Me.CurrentRecord, et je vais piocher dans le résultat de la méthode
Et là, ça me retourne (ligne 24 du code) le n° d'Id de 143 ligne en dessous de celui que j'attends.
J'ai tendance à penser que ça ne viens pas du code, car j'ai recopié cette technique d'une autre partie de la base fonctionnant de la même manière, après, je suis pas expert en BDD
Si vous avez des pistes pour corriger ça, où même une autre solutions, je suis preneur
Merci d'avance
Merci d'avoir lu ce roman. Je serai en dédicace à la Fnac St. Lazare demain vendredi 32 Juillet rayon CD black métal
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 Private Sub BtnInsertStd_Click() Dim dbBCV As Database Dim rctStdAP As Recordset Dim rctAPs As Recordset Dim vAPData As Variant Dim vIdAP As Variant Dim lActiveData As Long 'Récupération du n° d'AP lActiveData = Me.CurrentRecord 'Test d'un std bien sélectionné If Not IsNumeric(LstBxStandards.Value) Then Exit Sub 'Ajout du standard au projet 'définition de la base et ouverture des tables Set dbBCV = CurrentDb Set rctStdAP = dbBCV.OpenRecordset("StandardsInstalles", dbOpenTable) Set rctAPs = dbBCV.OpenRecordset("AP", dbOpenTable) 'récupération de l'Id AP vAPData = rctAPs.GetRows(lActiveData) vIdAP = vAPData(iAPChampIdAP, lActiveData - 1) 'Ajout du std dans l'AP With rctStdAP .AddNew .Fields(iStdAPChampIdAP).Value = vIdAP .Fields(iStdAPChampIdStd).Value = LstBxStandards.Value .Update End With 'fermeture tables et base rctStdAP.Close Set rctStdAP = Nothing rctAPs.Close Set rctAPs = Nothing dbBCV.Close Set dbBCV = Nothing 'actualisations des données du formulaire Me.Requery Me.Refresh End Sub
Partager