Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[VBA] Problème avec une requête

3 réponses
Avatar
HD
Bonjour,

J'espère ne pas être trop HS... mais je n'ai pas trouvé de NewsGroup où
parler de celà...

Sur Excel, j'ai une macro qui se connecte à une base de donnée...

Req = "SELECT DISTINCT dossiers.NomDossier, dossiers.* " & Chr(10) & _
"FROM dossiers, Missions WHERE Dossiers.Noeg = Missions.Noreg"
Req = Req & " AND ((Missions.Code = 'T' OR Missions.Code = 'R') OR
Dossiers.Type = 'P')"

Mon problème est que dans le cas où j'aurais un dossier dont le Type est 'P'
celui ci ne ressort pas... alors que j'ai bien des dossiers 'P' dans ma
table dossiers... Par contre, ces dossiers de Type 'P' ne se trouvent pas
dans la table Missions... d'où le fait que la jointure entre Dossiers et
Missions doit, de fait, exclure les dossiers qui n'y apparaissent pas...

Merci d'avance pour votre aide
--
@+
HD

3 réponses

Avatar
3stone
Salut,

HD wrote:
Bonjour,

J'espère ne pas être trop HS... mais je n'ai pas trouvé de NewsGroup
où parler de celà...

Sur Excel, j'ai une macro qui se connecte à une base de donnée...

Req = "SELECT DISTINCT dossiers.NomDossier, dossiers.* " & Chr(10) & _
"FROM dossiers, Missions WHERE Dossiers.Noeg = Missions.Noreg"
Req = Req & " AND ((Missions.Code = 'T' OR Missions.Code = 'R') OR
Dossiers.Type = 'P')"

Mon problème est que dans le cas où j'aurais un dossier dont le Type
est 'P' celui ci ne ressort pas... alors que j'ai bien des dossiers
'P' dans ma table dossiers... Par contre, ces dossiers de Type 'P' ne
se trouvent pas dans la table Missions... d'où le fait que la
jointure entre Dossiers et Missions doit, de fait, exclure les
dossiers qui n'y apparaissent pas...

Merci d'avance pour votre aide



Je ne vois pas bien ce que fait le Chr(10) ?

et les dossiers, ils s'appelent réellement "T" et "P" ?
ou ce n'est que la première lettres ?

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
Gloops
HD a écrit, le 15/10/2010 16:20 :
Bonjour,

J'espère ne pas être trop HS... mais je n'ai pas trouvé de NewsGr oup où
parler de celà...

Sur Excel, j'ai une macro qui se connecte à une base de donnée...

Req = "SELECT DISTINCT dossiers.NomDossier, dossiers.* "& Chr(10)& _
"FROM dossiers, Missions WHERE Dossiers.Noeg = Missions.Nore g"
Req = Req& " AND ((Missions.Code = 'T' OR Missions.Code = 'R') O R
Dossiers.Type = 'P')"

Mon problème est que dans le cas où j'aurais un dossier dont le Typ e est 'P'
celui ci ne ressort pas... alors que j'ai bien des dossiers 'P' dans ma
table dossiers... Par contre, ces dossiers de Type 'P' ne se trouvent p as
dans la table Missions... d'où le fait que la jointure entre Dossiers et
Missions doit, de fait, exclure les dossiers qui n'y apparaissent pas.. .

Merci d'avance pour votre aide



Bonjour,

Quand j'ai eu un problème de ce type il y a peu il s'est avéré que
j'avais commis une erreur de parenthèses, il faut dire qu'il y en avait
quatre niveaux imbriqués. Mais là, à première vue, elles m'ont l' air
très bien ces parenthèses.

Je ne suis pas très à l'aise avec la lecture de données dans deux t ables
en les séparant juste par une virgule, donc je ne saurais pas dire ce
que ça doit donner. Est-ce qu'en utilisant un JOIN en bonne et due form e
on ne serait pas susceptible d'obtenir quelque chose de mieux maîtrisé ?

En faisant ça dans l'éditeur de requêtes d'Access on peut ensuite f aire
un clic droit sur la relation entre les tables et préciser quelle table
apparaît intégralement.
Avatar
Gloops
Bonjour

3stone a écrit, le 15/10/2010 23:32 :
Je ne vois pas bien ce que fait le Chr(10) ?



Je n'aurais pas eu l'idée de pointer ceci, mais il faut vérifier si
Access ne serait pas allergique à ce genre de caractère en dehors d'u n
champ.

A l'intérieur, en revanche, aucun souci.

Quand j'ai inséré dernièrement en dernier champ d'une requête Row Source
d'un formulaire :

strSQL = strSQL + "'" + vbCfLf + "_______________________________"
strSQL = strSQL + vbCrLf + "Initialized in Forum_Current "
strSQL = strSQL + vbCfLf + "_______________________________" + vbCrLf
strSQL = strSQL + "' As Comment FROM tabCentre" ...

C'est quelque chose qui ne fait rien pour Access, dans la mesure où
jamais personne ne va avoir l'idée saugrenue d'utiliser le champ Commen t
dans un état ou sur un formulaire, mais qui peut faire beaucoup pour mo n
successeur, pour éviter qu'il s'arrache les cheveux en modifiant quinze
fois d'affilée la même requête et en ne retrouvant jamais sa
modification lorsqu'il retourne voir la requête.

Toutefois j'ai dû bien faire attention où je mettais les sauts de
lignes, si ils étaient en dehors du champ je n'obtenais pas le résult at
attendu, si je me rappelle bien je me faisais jeter pour caractère inva lide.

Et le fait est que la requête écrite avec des noms de tables juste
séparés par des virgules laisse entendre que vraisemblablement on n'a
pas utilisé l'éditeur de requêtes d'Access, qui aurait protesté p our le
chr(10).