Bonjour
Actuellement je récupère des données issues de requetes depuis l'objet
"Adodc" dans VB et je les affiche dans un "datagrid". Tout fonctionne
correctement sauf quand j'utilise une requete qui fait appelle à une (voir
plus) sous-requete dans Access.
extrait du code
----------
Form1.Adodc4.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=" & Path_BdD & ";Mode=ReadWrite;Persist Security Info=False"
Str_Sql = "SELECT * from regroup_boucle_systeme"
Form1.Adodc4.RecordSource = Str_Sql
Form1.Adodc4.Refresh
compteur = Form1.Adodc4.Recordset.RecordCount
-------------
Mon compteurd'enregistrement "compteur" reste désespérement vide
1) je ne vois aucune sous requete 2) les sous requettes bouffent du cpu et donc du temps ( a chaque enregistrement ca lance la sous-requette), utilises les left join ou right join quand c possible.
1) je ne vois aucune sous requete
2) les sous requettes bouffent du cpu et donc du temps ( a chaque
enregistrement ca lance la sous-requette), utilises les left join ou right
join quand c possible.
1) je ne vois aucune sous requete 2) les sous requettes bouffent du cpu et donc du temps ( a chaque enregistrement ca lance la sous-requette), utilises les left join ou right join quand c possible.
gargouil
> 1) je ne vois aucune sous requete
Effectivement la requete que j'exécute dans la base Access est le le résultat de sous requête.
Précision sur la requête regroup_boucle_systeme :
SELECT Systeme.Num_Doc, voie1_S.TAG_BDD AS loop1, voie2_S.TAG_BDD AS loop2, voie3_S.TAG_BDD AS loop3, voie4_S.TAG_BDD AS loop4, Systeme.CHASS_ARM, Systeme.FBM_SLOT, Systeme.TYPE_FBM FROM (((Systeme LEFT JOIN voie4_S ON Systeme.Num_Doc = voie4_S.Num_Doc) LEFT JOIN voie1_S ON Systeme.Num_Doc = voie1_S.Num_Doc) LEFT JOIN voie2_S ON Systeme.Num_Doc = voie2_S.Num_Doc) LEFT JOIN voie3_S ON Systeme.Num_Doc = voie3_S.Num_Doc GROUP BY Systeme.Num_Doc, voie1_S.TAG_BDD, voie2_S.TAG_BDD, voie3_S.TAG_BDD, voie4_S.TAG_BDD, Systeme.CHASS_ARM, Systeme.FBM_SLOT, Systeme.TYPE_FBM HAVING (((Systeme.Num_Doc) Like "004*"));
Systeme étant une table d'access et voie1_S, voie2_S,voie3_S,voie4_S sont des sous requetes, extrait :
SELECT IIf(Systeme!TAG_BDD="RESERVE_S","RESERVE",Systeme!TAG_BDD) AS TAG_BDD, Systeme.OrdrePage, Systeme.Num_Doc, LI_Complete.A1 FROM Systeme INNER JOIN LI_Complete ON Systeme.TAG_BDD = LI_Complete.G4 WHERE (((Systeme.OrdrePage)=1) AND ((LI_Complete.A1)="S"));
2) les sous requettes bouffent du cpu et donc du temps ( a chaque enregistrement ca lance la sous-requette), utilises les left join ou right join quand c possible.
J'ai vonlontairement structuré les requètes de la sorte, je n'ai pas d'éxigence de rapidité.
> 1) je ne vois aucune sous requete
Effectivement la requete que j'exécute dans la base Access est le le
résultat de sous requête.
Précision sur la requête regroup_boucle_systeme :
SELECT Systeme.Num_Doc, voie1_S.TAG_BDD AS loop1, voie2_S.TAG_BDD AS loop2,
voie3_S.TAG_BDD AS loop3, voie4_S.TAG_BDD AS loop4, Systeme.CHASS_ARM,
Systeme.FBM_SLOT, Systeme.TYPE_FBM
FROM (((Systeme LEFT JOIN voie4_S ON Systeme.Num_Doc = voie4_S.Num_Doc) LEFT
JOIN voie1_S ON Systeme.Num_Doc = voie1_S.Num_Doc) LEFT JOIN voie2_S ON
Systeme.Num_Doc = voie2_S.Num_Doc) LEFT JOIN voie3_S ON Systeme.Num_Doc =
voie3_S.Num_Doc
GROUP BY Systeme.Num_Doc, voie1_S.TAG_BDD, voie2_S.TAG_BDD, voie3_S.TAG_BDD,
voie4_S.TAG_BDD, Systeme.CHASS_ARM, Systeme.FBM_SLOT, Systeme.TYPE_FBM
HAVING (((Systeme.Num_Doc) Like "004*"));
Systeme étant une table d'access
et voie1_S, voie2_S,voie3_S,voie4_S sont des sous requetes, extrait :
SELECT IIf(Systeme!TAG_BDD="RESERVE_S","RESERVE",Systeme!TAG_BDD) AS
TAG_BDD, Systeme.OrdrePage, Systeme.Num_Doc, LI_Complete.A1
FROM Systeme INNER JOIN LI_Complete ON Systeme.TAG_BDD = LI_Complete.G4
WHERE (((Systeme.OrdrePage)=1) AND ((LI_Complete.A1)="S"));
2) les sous requettes bouffent du cpu et donc du temps ( a chaque
enregistrement ca lance la sous-requette), utilises les left join ou right
join quand c possible.
J'ai vonlontairement structuré les requètes de la sorte, je n'ai pas
d'éxigence de rapidité.
Effectivement la requete que j'exécute dans la base Access est le le résultat de sous requête.
Précision sur la requête regroup_boucle_systeme :
SELECT Systeme.Num_Doc, voie1_S.TAG_BDD AS loop1, voie2_S.TAG_BDD AS loop2, voie3_S.TAG_BDD AS loop3, voie4_S.TAG_BDD AS loop4, Systeme.CHASS_ARM, Systeme.FBM_SLOT, Systeme.TYPE_FBM FROM (((Systeme LEFT JOIN voie4_S ON Systeme.Num_Doc = voie4_S.Num_Doc) LEFT JOIN voie1_S ON Systeme.Num_Doc = voie1_S.Num_Doc) LEFT JOIN voie2_S ON Systeme.Num_Doc = voie2_S.Num_Doc) LEFT JOIN voie3_S ON Systeme.Num_Doc = voie3_S.Num_Doc GROUP BY Systeme.Num_Doc, voie1_S.TAG_BDD, voie2_S.TAG_BDD, voie3_S.TAG_BDD, voie4_S.TAG_BDD, Systeme.CHASS_ARM, Systeme.FBM_SLOT, Systeme.TYPE_FBM HAVING (((Systeme.Num_Doc) Like "004*"));
Systeme étant une table d'access et voie1_S, voie2_S,voie3_S,voie4_S sont des sous requetes, extrait :
SELECT IIf(Systeme!TAG_BDD="RESERVE_S","RESERVE",Systeme!TAG_BDD) AS TAG_BDD, Systeme.OrdrePage, Systeme.Num_Doc, LI_Complete.A1 FROM Systeme INNER JOIN LI_Complete ON Systeme.TAG_BDD = LI_Complete.G4 WHERE (((Systeme.OrdrePage)=1) AND ((LI_Complete.A1)="S"));
2) les sous requettes bouffent du cpu et donc du temps ( a chaque enregistrement ca lance la sous-requette), utilises les left join ou right join quand c possible.
J'ai vonlontairement structuré les requètes de la sorte, je n'ai pas d'éxigence de rapidité.
dark poulpo
desolé mais la il est tellement tard que jarrive plus a refleichir, je verais ca plus tard si jai le temps, essaye de separer tes left join au lieu dimbriquer, et reprend tetapes par etapes, (c a dir tu mets une table, tu lances, tu rajoute une, tu lances, etc ....)
et aussi au cas ou, fait un bref descriptif de tes tables , jy verrai plus clair.
-- ----- http://dark.freezee.org/ - Dark Update v1.0 - Dark Emule v0.44b r4 - Dark 3D-X (le desktop 3d pour windows) (----------> v0.7 beta dispo)
desolé mais la il est tellement tard que jarrive plus a refleichir, je
verais ca plus tard si jai le temps,
essaye de separer tes left join au lieu dimbriquer, et reprend tetapes par
etapes, (c a dir tu mets une table, tu lances, tu rajoute une, tu lances,
etc ....)
et aussi au cas ou, fait un bref descriptif de tes tables , jy verrai plus
clair.
--
-----
http://dark.freezee.org/
- Dark Update v1.0
- Dark Emule v0.44b r4
- Dark 3D-X (le desktop 3d pour windows) (----------> v0.7 beta dispo)
desolé mais la il est tellement tard que jarrive plus a refleichir, je verais ca plus tard si jai le temps, essaye de separer tes left join au lieu dimbriquer, et reprend tetapes par etapes, (c a dir tu mets une table, tu lances, tu rajoute une, tu lances, etc ....)
et aussi au cas ou, fait un bref descriptif de tes tables , jy verrai plus clair.
-- ----- http://dark.freezee.org/ - Dark Update v1.0 - Dark Emule v0.44b r4 - Dark 3D-X (le desktop 3d pour windows) (----------> v0.7 beta dispo)
gargouil
Merci pour l'aide Mais j'ai enfin trouvé le problème il se situait dans Access la partie VB fonctionnait correctement
J'ai réécris la requete et les sous requetes d'Access et apparament les liens se sont remis à jour ou un truc dans le genre et depuis je récupère mes enregistrements sous VB
C'est pas la première fois que j'ai dessouscis avec Access et ces requetes et tables liées avec d'autre bases, les liens ne suivent pas toujours.
Merci
Merci pour l'aide
Mais j'ai enfin trouvé le problème
il se situait dans Access
la partie VB fonctionnait correctement
J'ai réécris la requete et les sous requetes d'Access et apparament les
liens se sont remis à jour ou un truc dans le genre et depuis je récupère mes
enregistrements sous VB
C'est pas la première fois que j'ai dessouscis avec Access et ces requetes
et tables liées avec d'autre bases, les liens ne suivent pas toujours.
Merci pour l'aide Mais j'ai enfin trouvé le problème il se situait dans Access la partie VB fonctionnait correctement
J'ai réécris la requete et les sous requetes d'Access et apparament les liens se sont remis à jour ou un truc dans le genre et depuis je récupère mes enregistrements sous VB
C'est pas la première fois que j'ai dessouscis avec Access et ces requetes et tables liées avec d'autre bases, les liens ne suivent pas toujours.