Voilà je suis archi débutant en vbnet. Et je patine assez sérieusement sur mon problème. J'aurais grandement besoin d'aide pour m'aider à orienter mes recherches (mots clés pour recherche google, propositions etc).
Je vous présente mon problème.
Le contexte fonctionnel
Je travaille sur une base de données. J’ai une information que je dois déduire à partir des infos que je possède dans la base.
En gros j’ai un agent qui peut avoir plusieurs UV. Une formation est composée d’UV.
J’ai deux tables : une table Agent avec les UV possédées par agent. Et une table formation avec les UV nécessaires pour valider une formation. La structure des données de cette table est la suivante.
Ex :
COL1 COL2
Formation 1 UV1
Formation 1 UV2
Formation 1 UV3
Formation 1 UV4
Ce qui signifie que pour avoir la Formation1 je dois avoir les UV 1/2/3/4.
Problème : je dois renseigner les formations détenues par agent alors que je n’ai dans ma base de données que les UV par agents.
J’ai une table où j’ai pour chaque agent les UV détenues. J’ai donc dans cette table autant de ligne que d’UV détenu pour un agent.
EX :
COL1 COL2
Agent 1 UV1
Agent 1 UV2
Agent 1 UV3
Agent 1 UV4
Agent 1 UV5
Agent 1 UV6
Agent 2 UV30
Agent 2 UV41
Etc …
Ma problématique :
Je dois « balayer » pour chaque agent de la table, ses UV détenues. Afin de déterminer si toutes les UV d’une formation sont détenues auquel cas j’insère une ligne dans une autre table avec l’agent et la formation détenue.
Ex
COL1 COL2
Agent 1 Formation1
Agent 2 Formation2
Agent 2 Formation3
…
Mon algo
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 For Each Agent -- je balaye chaque agent de la table agent Agent =i For each Referentiel_Formation pour chaque agent je teste chaque formation NB_UV_DETENUE=Je compte le nombre duv pour la formation testée que lagent possède NB_UV_NECESSAIRE=Je compte le nombre duv necessaire pour valider une formation IF NB_UV_DETENUE=NB_UV_NECESSAIRE THEN INSERT INTO TABLE3 VALUEs (agent, code_formation); ELSE '' END IF End For End For
Mon code :
J'ai trop peu de connaissance en VBNET pour terminer ce code....
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 '### cette requête permet d'extraire chaque agent. permet de balayer les '###agents dim sSql as string = "select cle_pers from dbo.HISTO group by cle_pers order by cle_pers" '### cette requête permet d'extraire toutes les formations. permet de balayer chaque formation possible dim sSql2 as string = "select code_formation from formation group by code_formation order by code_formation" dim DT as DataTable = GLOBAL.RecupDatas("ODS",OBJ.Environnement(),sSql) dim DT2 as DataTable = GLOBAL.RecupDatas("ODS",OBJ.Environnement(),sSql2) FOR i as integer =0 to DT.rows.count - 1 FOR j as integer =0 to DT2.rows.count - 1 NEXT NEXT
A l'aide !Qu'en pensez vous ? Pourriez vous me corriger la syntaxe pour les deux FOR NEXT imbriqué ? Comment récupérer le code_agent et le code_formation ? et l'introduire dans une requête dynamique ?
merci
Partager