Je suis en train de développer une macro Excel permettant de lire certaines données dans une base de données Access.
Je dois retrouver dans cette base de donnée des numéros d'affaires et récupérer le temps passé dessus.
Lorsque je rentre le numéro d'affaire en dur dans la macro, cela fonctionne bien. Cependant, je souhaiterais que l'utilisateur puisse modifier ce numéro d'affaire (dans une case de Excel) et retrouver le temps passé dessus. Mais je n'arrives pas à développer ma macro de façon à ce qu'elle compare une case avec la requête SQL.
Voici ma macro :
Sub Attache()
ChDir ActiveWorkbook.Path
sqlChaine = "SELECT * FROM Tâches"
RepAppli = ActiveWorkbook.Path
ChaineConn = "ODBC;DSN=MS Access Database;DBQ=" & RepAppli & "\NomFichier.mdb"
ActiveSheet.QueryTables.Add(Connection:=ChaineConn, Destination:=Range("A1"), Sql:=sqlChaine).Refresh
End Sub
Sub sup()
Sheets(1).Range("A1:C1000").Delete Shift:=xlShiftToLeft
End Sub
Sub LitAccess()
NumAff = Range("A1")
Dim bd As Database
Dim rs As Recordset
repertoire = ThisWorkbook.Path & "\"
Set bd = OpenDatabase(repertoire & "NomFichier.mdb")
Set rs = bd.OpenRecordset("Select * From Tâches Where (NAffaire = NumAff) ")
i = 2
j = 0
Do While Not rs.EOF
j = j + rs!Temps
Cells(i, 1) = rs!NAffaire
Cells(i, 2) = rs!Nom
Cells(i, 3) = rs!Date
Cells(i, 5) = rs!Temps
Cells(i, 6) = j
rs.MoveNext
i = i + 1
Loop
rs.Close
End Sub