Bonjour le forum,

alors là je suis confronté à un problème bien étrange je dois dire, et je ne trouve pas la solution après de nombreux essais.
Je ne sais pas si le problème vient d'Excel/VAB ou de SQL à vrai dire.

J'ai 2 select, sur 2 tables différentes, que j'unis de la façon suivante :

Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
SELECT DISTINCT ((Max(Decompte) Div 7)*0.5) as Recuperable FROM affaires, Calcul_Recup Where Collaborateur <> '' AND Imputation <> '' and Decompte <> '0' and Decompte > '6' and Calcul_Recup.Imputation = affaires.afNumero Group By Collaborateur,Date_Deb UNION ALL Select (Case when Imputation <> 'RC' Then '1' Else '-1' End) As Recuperable from `Récup"

Et ça ne me retourne rien du tout! (là j'ai simplifié le code à la colonne qui pose problème)

Me disant que le problème vient peut être de mon "UNION" (j'ai essayé "UNION" et "UNION ALL"), je crée une vue sur ma base de données MySQL pour faire l'opération, ça marche très bien depuis MySQL Query Brows.

Donc confiant je fais un simple :

Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
SELECT DISTINCT ((Max(Decompte) Div 7)*0.5) as Recuperable FROM affaires, Calcul_Recup Where Collaborateur <> '' AND Imputation <> '' and Decompte <> '0' and Decompte > '6' and Calcul_Recup.Imputation = affaires.afNumero Group By Collaborateur,Date_Deb

Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
Select * from Récup2;

Et là pareil, ça ne me retourne strictement rien.

A noter que si j'essaye simplement :

Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
SELECT DISTINCT ((Max(Decompte) Div 7)*0.5) as Recuperable FROM affaires, Calcul_Recup Where Collaborateur <> '' AND Imputation <> '' and Decompte <> '0' and Decompte > '6' and Calcul_Recup.Imputation = affaires.afNumero Group By Collaborateur,Date_Deb

Je récupère bien des valeurs, et que la commande simplifiée ou cimplète marche très bien directement sur la BDD, donc je penche pour un soucis Excel/VBA.

Alors si quelqu'un a une idée, je suis preneur, car là je sèche.

Merci!

Edit:

J'avais oublié le code de ma macro :

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
Sub Essai()
On Error Resume Next
If Worksheets.Count < 1 Then
Workbooks.Add
Else
End If
Application.DisplayAlerts = False
On Error GoTo 0

Dim cmdSQL2 As String

Set Cn = New ADODB.Connection
Set Rs = New ADODB.Recordset

cmdSQL2 = "Select Recuperable from Récup2;"

Cn.Open "dsn=base"
Rs.Open cmdSQL2, Cn

Range("A5").CopyFromRecordset Rs ' mais j'ai aussi aussi avec des While Not Rs.EOF.....
Rs.Close
Cn.Close
Set Rs = Nothing
Set Cn = Nothing

End Sub