VBA Problème récupération format Date Recordset

creal69360

XLDnaute Junior
Bonjour,

J'ai crée une Recordset afin de récupérer d'une grosse base des données selon certains critères (saisis dans un userform) que je rajoute à la clause where. Jusque là aucun problème, ma requête fonctionne très bien et me récupère les bonnes données.

J'ai cependant un soucis au niveau des dates, en effet un grand nombre de colonnes contiennent des dates (elles peuvent aussi contenir du texte). Le soucis est que lorque j'exécute ma recordset, les dates sont transformées en integer au format standard donc changer le format avec .numberformat n'a aucun impact (mes données ne sont plus considérées comme des données numériques). Je voudrais donc savoir si il existe une solution pour avoir des dates à la place de nombres. Voici ci-dessous mon code pour exécuter la recordset (Utilisable uniquement sous Excel 2007):


sub recup()

Dim cn, cn1 As ADODB.Connection
Dim rst, rst1 As ADODB.Recordset
Dim texte_SQL As String
Dim where as string



where = where & "[Manager]='" & filtre.zl_manager_projet & "'"

Set cn = New ADODB.Connection

cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & chemin_base & ";Extended Properties=Excel 8.0;"

texte_SQL = "Select * from [" & onglet_source & "$] " & where
Set rst = New ADODB.Recordset


Set rst = cn.Execute(texte_SQL)

ThisWorkbook.Sheets(onglet_dest).Cells.ClearContents

For i = 0 To rst.Fields.Count - 1
ThisWorkbook.Sheets(onglet_dest).Cells(4, i + 1) = rst.Fields(i).Name
Next i

ThisWorkbook.Sheets(onglet_dest).Range("a5").CopyFromRecordset rst

rst.Close
Set rst = Nothing

cn.Close
Set cn = Nothing

end sub
 

Dranreb

XLDnaute Barbatruc
Re : VBA Problème récupération format Date Recordset

Bonjour.
Oui j'ai fait des édits au poste #13 depuis que vous avez récupéré le code. Il ne change plus les valeurs de cellules vides et évite un plantage pour des non vides qui ne pourraient être converties en dates.
 
Dernière édition:

Discussions similaires