Salut à toutes et à tous,
J'ai une table TCS contenant tous les conteneurs de marchandises passant par un port sans terminal à conteneur.
Voici un exemple de cette table:
+-----+--------------+-------+-----+------------+------------+--------------+
|RéfTC|Num_TC........|Type_TC|Plein|Localisation|DernierMvt..|DateDernierMvt|
+-----+--------------+-------+-----+------------+------------+--------------+
|1....|MSCU-200789/9.|20'DV..|x....|............|Débarquement|30/06/2006....|
+-----+--------------+-------+-----+------------+------------+--------------+
|.....|..............|.......|.....|............|............|..............|
+-----+--------------+-------+-----+------------+------------+--------------+
...
Si un TC est présent sur l'air d'entreposage du port (la où sont entreposés les conteneurs), dans le champ Localisation, on mentionne l'endroit où se trouve le conteneur. Exemple: TP Wuillemin. Si le conteneur a été enlevé par le client, Client est mentionné dans le champ Localisation. S'il vient d'être débarqué d'un navire, Localisation est vide.
Cette table est liée à une autre table contenant les historiques des mouvements sur chaque TC.
Dans un formulaire (faisant office d'un tableau de bord), j'ai créé deux listes: la première affiche TOUS les conteneurs passés par le port, la seconde affiche les conteneurs encore présent sur un air d'entreposage donné.
A chaque fois que je clique sur un élément d'une liste ou de l'autre, l'historique des mouvements du conteneur sélectionné est affichée.
Tout marche à merveille jusque là.
J'ai synchronisé ces deux listes: lorsque je clique sur un élément dans la première liste, si cet élément se trouve dans la deuxième liste, il sera aussi sélectionné et inversement lorsque je clique sur un élément dans la deuxième liste, si cet élément se trouve dans la première liste, il sera aussi sélectionné.
Si l'élément ne se trouve dans la liste, il ne sélectionne rien.
Voici le code me permettant de synchroniser les deux listes: (la première liste contenant tous les conteneurs est nommé TOUTTC et la seconde est nommés TPTC
Ce code répond à mes besoins. Mais je veux un plus: si l'élément n'a pas été trouvé, avant d'enlever la sélection à l'aide de
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 Private Sub TOUTTC_Click() Dim i As Long, trouvé As Boolean trouvé = False For i = 0 To Me.TPTC.ListCount - 1 If Me.TPTC.Column(0, i) = Me.TOUTTC Then Me.TPTC = Me.TPTC.Column(0, i) trouvé = True Exit For End If Next If trouvé = False Then Me.TPTC = 0 'ne rien sélectionner si introuvable End If 'Le code qui affiche l'historique en fonction du conteneur sélectionné dans TOUTTC 'se place ici ... End Sub Private Sub TPTC_Click() Dim i As Long, trouvé As Boolean hita = False For i = 0 To Me.TOUTTC.ListCount - 1 If Me.TOUTTC.Column(0, i) = Me.TPTC Then Me.TOUTTC = Me.TOUTTC.Column(0, i) trouvé = True Exit For End If Next If trouvé = False Then Me.TOUTTC = 0 'ne rien sélectionner si introuvable End If 'Le code qui affiche l'historique en fonction du conteneur sélectionné dans TPTC 'se place ici ... End Sub
je veux qu'il sélectionne (se positionne) sur le premier élément de la liste avant d'enlever la sélection.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Me.TOUTTC=0 ou Me.TPTC=0
J'ai procédé comme suit mais cela n'a rien donné:
Il ne se positionne pas au premier élément de la liste mais enlève la sélection.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Me.TOUTTC=Me.TOUTC.Column(0,0) 'pour sélectionner le premier élément Me.TOUTTC=0 'Pour enlever la sélection
Est-ce que c'est mon raisonnement qui est glauque ou y a-t-il une autre approche plus ... propre?
Merci pour votre aide.
Partager