Bonjour,
J'utilise Access 2007 pour MS Visual Studio Express 2017 sous Windows pour faire un programme personnel en VB NET
pour mon épouse (opticienne) Après 20 ans sous VB 5, je découvre (enfin) le multitable.
Je donne ici un exemple (simplifié, pour ma question) qui fonctionne (avec le vendeur, sans le livreur) me limitant autant que possible au SQL :
Le but de cette requête (deux tables) est de dresser la liste des visites d'un client.
L'enregistrement d'une visite comprend, entre autres, la référence du vendeur (qui vend les lunettes) et celle du livreur
(qui livre les lunettes au magasin lorsque le client revient les chercher)
La table Visites comprend les paramètres d'une visite, et la table Users ceux d'un utilisateur du programme (Vendeur ou livreur)
' 1) Exemple qui fonctionne, qui ne cherche que le vendeur (pas le livreur)
2) Exemple qui NE fonctionne PAS, qui cherche le vendeur ET le livreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Dim sql As String = "" sql &= "SELECT v.*, u.Initiales AS Vendeur " sql &= "FROM Visites v, Users u " sql &= "WHERE Client_num = " & Client_num & " " sql &= "AND u.Initiales IN(" sql &= " SELECT u.Initiales" sql &= " FROM Users u" sql &= " WHERE u.User_num = v.CréationEnrgt_User_num" sql &= " )"
QUESTION : dans Visites se trouvent les deux utilisateurs à rechercher (mêmes champs) Mais comment les distinguer dans la sql ?
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 Dim sql As String = "" sql &= "SELECT v.*, u.Initiales AS Vendeur , u.Initiales AS Livreur " sql &= "FROM Visites v, Users u " sql &= "WHERE Client_num = " & Client_num & " " sql &= "AND u.Initiales IN(" sql &= " SELECT u.Initiales" sql &= " FROM Users u" sql &= " WHERE u.User_num = v.CréationEnrgt_User_num" sql &= " )" sql &= "AND u.Initiales IN(" sql &= " SELECT u.Initiales" sql &= " FROM Users u" sql &= " WHERE u.User_num = v.Livr_User_num" sql &= " )"
Bonjour si quelqu'un est assez calé pour le savoir, mais merci d'avance.
Partager