Bonjour,

Je début en VBA, alors soyez indulgent

je n'arrive pas à insérer une variable (DateDevis) dans ma requete 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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
Sub importDonnees_DAO()
 
    ' EFFACER FEUILLE
    Feuil2.Range("A1:K999").Clear
 
    ' CONSTRUCTION DE LA REQUETE
    Dim Db As DAO.Database
    Dim Rs As DAO.Recordset
    Dim strSQL As String
 
    Dim DateDevis As String
'    DateDevis = Feuil1.Range("B1").Value
    DateDevis = "01/12/2007"
 
    Set Db = DAO.OpenDatabase(ActiveWorkbook.Path & "\Database.mdb", False, False)
 
   strSQL = "SELECT s3.[L1], s3.[L2], s3.[L3], s3.[Unité],s3.[Désignation], 
s3.[Libellé technique], s1.[Date], s1.[Prix total]/s1.[Quantité] AS PU 
FROM [Achats] s1 LEFT JOIN [Articles] s3 ON s1.[ID_article]=s3.[ID] WHERE 
(Date=(SELECT MAX(s2.Date) FROM [Achats] s2 WHERE s1.ID_article=s2.ID_article AND s2.Date<=#" & DateDevis & "#)) 
ORDER BY Code L1 ASC"
 
    Set Rs = Db.OpenRecordset(strSQL, DAO.dbOpenSnapshot)
 
    ' RECUPERATION DES ENTETES
    Dim i As Integer
    Dim Cellule As Range
 
    Set Cellule = Range("a1")
    For i = 0 To Rs.Fields.Count - 1
        Cellule = Rs.Fields(i).Name
        Set Cellule = Cellule(1, 2)
    Next i
 
    ' AFFICHAGE DES RESULTATS
    Feuil2.Range("A2").CopyFromRecordset Rs
 
    Db.Close
End Sub
Normalement, cette variable fait référence à une cellule qui a comme nom d'étiquette "DATE_DEVIS" ; comment faire pour que cette variable soit reliée à cette cellule ?

Merci pour votre aide.