Bonjour à tous,
Ce message fait suite à une problématique précédente qui avait été brillamment résolue par PAIDGE à l'époque.
Le programme consistait à identifier des utilisateurs qui répondaient favorablement à plusieurs conditions avec une relation complexe (l'utilisateur doit avoir cette condition ET cette condition OU cette condition).
Le programme fonctionne parfaitement. Il délivre un fichier txt sous la forme:
---
"USER1";"Condition1:Valeur de condition1;Condition2:Val2;C3:Val3"
"USER2";"C2:Val2;C3:Val3"
------
Le programme est le suivant :
----
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 Public Function BProcessEligibles(pUNAME As String) As Variant ' Ceci est la fonction qui renvoit la liste des zones éligibles pour un client ' La valeur retournée est de cette forme : "SUD:01;NORD:03" Dim strSQL As String, strBProcess As String Dim rstBProcessProbables As DAO.Recordset ' On récupère les zones susceptibles d'être éligibles strSQL = "SELECT DISTINCT BP, Transaction " & _ "FROM AGR_1251_Y_MERGE_finale_star_TMP_2 INNER JOIN FUNCTOBJ_GRC " & _ "ON (AGR_1251_Y_MERGE_finale_star_TMP_2.LOW = FUNCTOBJ_GRC.Value) " & _ "AND (AGR_1251_Y_MERGE_finale_star_TMP_2.FIELD = FUNCTOBJ_GRC.Field) " & _ "AND (AGR_1251_Y_MERGE_finale_star_TMP_2.OBJECT = FUNCTOBJ_GRC.Object) " & _ "WHERE UNAME='" & pUNAME & "';" Set rstBProcessProbables = CurrentDb.OpenRecordset(strSQL) ' Pour chacune de ces zones, While Not rstBProcessProbables.EOF ' On réunit les champs Secteur et éligibilité séparés par ":" strBProcess = rstBProcessProbables(0) & ":" & rstBProcessProbables(1) ' On vérifie si le client est éligible. Si c'est le cas, on concatène les zones séparées par des point-virgules If transaction_elue(pUNAME, strBProcess) Then BProcessEligibles = BProcessEligibles & ";" & strBProcess End If rstBProcessProbables.MoveNext Wend ' On retire le premier point-virgule If Len(BProcessEligibles) <> 0 Then BProcessEligibles = Right(BProcessEligibles, Len(BProcessEligibles) - 1) End Function
Néanmoins, j'ai besoin de faire un lourd travaille de refonte de ce fichier car je dois l'incorporer dans une nouvelle table. Le travail devient vite infernal lorsque que je dépasse la 50aine d'utilisateurs. Idéalement, j'aurai besoin que le fichier d'export txt ressemble à ceci:
"USER1";"Condition1:Valeur de condition1"
"USER1";"Condition2:Val2"
"USER1";"C3:Val3"
"USER2";"C2:Val2"
"USER2";"C3:Val3"
---
Pensez-vous qu'il est possible d'influencer le code du programme pour avoir cette restitution ?
Merci pour votre aide et votre contribution.
dagada75
Partager