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
|
.....
Sql = "SELECT * FROM MyRequete" ' je détremine une requête sql qui pointe sur ta requête Acces.
Dim Cm As object 'Pour utiliser une requête parametrés il faut utiliser l'oblet Command!
Dim cn As as object 'Pour ce connecter à un base de données Access il faut utiliser l'objet Connection!
set Cn=createObject("ADODB.Connection")
set Cm=createobject("Adodb.Command")
GenereCSTRING = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\rdurupt\Documents\Données1.accdb;" 'Je defini un chêne de texte qui contient les information de ma connection.
cn.Open GenereCSTRING 'J'ouvre ma connection.
Cm.CommandText = Sql 'je passe ma requête à mon objet command
Cm.ActiveConnection = cn 'j'affecte ma connection à ma commande
Const adDate = 7
'c'est avec l'objet Parameter que je vais renseinger les parmetres de ma requête Access.
'Cellule où est stokcé la date cdate(format(ThisWorkbook.Sheets("MaFeuilleConfig").range("A1").value,"yyyy-mm-dd"))
set Debut=createobject("ADODB.Parameter")
Debut.Name = "debut" : Debut.Type = adDate: Debut.Value =cdate(format(ThisWorkbook.Sheets("MaFeuilleConfig").range("A1").value,"yyyy-mm-dd")) : Cm.Parameters.Append Debut
set Fin=createobject("ADODB.Parameter") 'c'est avec l'objet Parameter que je vais resenger les parmetres de ma requête Access.
Fin.Name = "Fin" : Fin.Type = adDate: Fin.Value =cdate(format(ThisWorkbook.Sheets("MaFeuilleConfig").range("B1").value,"yyyy-mm-dd")) : Cm.Parameters.Append Fin
set rs=cm.execute 'on recupere le résultat de la requête.
with ThisWorkbook.Sheets("MaFeuilleResultat")
for i=0 to rs.Fields.count-1 'On place le nom des champs sur la ligne 1 de ma feuille Excel
.range("C1").Offset(0,i)=rs(i).name
next
.range("C2").CopyFromRecordset rs 'la on copie le résultat de la requête!
end With |
Partager