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
Partager