Bonjour à tous,
Encore une fois je viens vous demander de l'aide !
Cette fois-ci je bloque sur le formulaire de mise à jour de mes données. je joins le formulaire (je n'ai laissé que quelques données, confidentialité oblige)
Quand je clique sur le numéro dans la liste de gauche, ça me sélectionne automatiquement les données correspondantes à ce numéro dans les différentes listes de droite. J'ai choisi des listes car cela évite à l'utilisateur de tout retaper et ça évite en même temps les erreurs de frappe.
Ce que je voudrais c'est qu'une fois le numéro sélectionné je puisse changer les données en cliquant sur une autre ligne dans les différentes listes (pour info ce sont les listes multiples étendues). Actuellement, j'arrive à ajouter de nouvelles lignes, A CONDITION de ne pas resélectionner les lignes déjà attribuées au numéro, sinon j'ai une erreur de doublon. J'ai tout essayé, supprimer les lignes attribuées au numéro si elles ne sont pas sélectionnées, vérifier avant de mettre à jour si la ligne sélectionnée n'est pas déjà dans le recordset, etc.
Je vous mets le code actuel qui me permet juste d'ajouter des lignes:
Je n'utilise ici que le oRst1Old mais peut-être que le oRst1 peut être utile c'est pourquoi je l'ai mis ici. La table LSNPartsLink contient deux clés primaires, une identifie la ligne de la liste et l'autre (SAPNumber) correspond au numéro de la liste de gauche.
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 Set oRst1 = oDb.OpenRecordset("LSNPartsLink", [dbOpenDynaset], [dbSeeChanges], [dbOptimistic]) Set oRst1Old = oDb.OpenRecordset("Select * from LSNPartsLink where LSN_PartID = '" & Me.txtSAPNumber & "'", [dbOpenDynaset], [dbSeeChanges], [dbOptimistic]) With Me.ListPartsData For i = 0 To ListPartsData.ListCount - 1 If Me.ListPartsData.Column(0, [i]) = oRst1Old![LSN_ID] Then If ListPartsData.Selected(i) = False Then oRst1Old.Delete Else End If ElseIf ListPartsData.Selected(i) = True And Not Me.ListPartsData.Column(0, [i]) = oRst1Old![LSN_ID] Then oRst1Old.AddNew 'j'ai aussi essayé avec .Edit ça ne change rien oRst1Old("LSN_PartID") = Me.txtSAPNumber oRst1Old("LSN_ID") = Me.ListPartsData.Column(0, [i]) oRst1Old.Update ' c'est ici que j'ai l'erreur de doublon End If Next i End With
Voilà j'espère que vous pourrez m'aider ! Merci d'avance !
Partager