Bonjour,

Je ne connais pas beaucoup le VB et je tente désespérément de faire une fonction me permettant de relier deux tables SQL qui ne proviennent pas de la même base de donné, avec une interface VB6.

J'ouvre une permière connexion pour ma table 'Status' qui provient de la base de donnée 'Commande' et une deuxième connexion pour ma table 'produits' qui provient de la base de donnée 'SuiviProd'.
L'inner join doit être sur le no de commande mais la je me bute a un problème car dans la table commande le 'IdMecInov' est '002-1234.1) et dans la table Produits le 'Commande' est (002-1234).

1- Mon premier problème est que je ne suis pas capable de créer mon Select sur les deux tables . J'ai l'erreur que 'Invalid Object Name Produits' Produits est le nom de ma table de la BD Suiviprod

2- Mon deuxième prob est que je dois faire l'inner join avec un Left$(....,9)


Voici ma fonction :

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
30
31
32
33
34
35
strfiltre = ""
 
If TxTClient <> "" And Not IsNull(TxTClient) Then
   strfiltre = "nomcli = '" & Replace(TxTClient, "'", "''") & "'"
Else
   strfiltre = "NomCli <> 'Test' AND IDCli <> '0' AND IdCli <> '9999999'  "
End If
 
If ComboLiv <> "" And Not IsNull(ComboLiv) Then
    If strfiltre <> "" Then
       strfiltre = strfiltre & " AND "
    End If
    If ComboLiv = "Livré" Then
       ComboLiv = 1
    End If
    If ComboLiv = "Non Livré" Then
       ComboLiv = 0
    End If
    strfiltre = strfiltre & "Expedier =  '" & ComboLiv & "'"
End If
If TxtDateFrom <> "" And Not IsNull(TxtDateFrom) Then
    If strfiltre <> "" Then
        strfiltre = strfiltre & " AND "
    End If
        strfiltre = strfiltre & "date01 between '" + Format(TxtDateFrom, "yyyy/mm/dd") + "' and '" + Format(txtDateTo, "yyyy/mm/dd") + "'"
End If
 
If strfiltre <> "" Then
   strfiltre = "WHERE " & strfiltre
End If
 
CnxPro.Open "Provider=SQLOLEDB;Server=mecinov;uid=Production;pwd=Production;database=suiviprod"
DBSuiviProdSQL.Open "SELECT Commande,Expedier FROM produits , CnxPro, adOpenStatic, adLockReadOnly"
 
DBCommandesSQL.Open "SELECT Status.NomCli,Status.idMecinov,Status.Date01,Produits.Commande FROM status inner join Produits on Status.idMecinov = Produits.Commande " & strfiltre, CnxCom, adOpenStatic, adLockReadOnly
Note : la connexion pour la table commande est définie dans une fonction public

Merci de m'aider