Je cherche à importer le résultat d'une requête SQL (affichée dans une DBGrid) dans Excel.
Ca, pas de problème (je le fais depuis des années).
Le problème, c'est pour empêcher Excel de modifier les données que je lui donne.
Comment remplir le paramètre FieldInfo ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part Excel.Workbooks.OpenText(GetRepTemp + szFichier, xlWindows, 1, xlDelimited, xlDoubleQuote, False, False, True, False, False, False, FieldInfo);
J'ai essayé de la façon suivante :Mais, j'obtiens l'erreur :
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 const xlGeneralFormat = 1; xlTextFormat = 2; xlDMYFormat = 4; var FieldInfo, Excel: Variant; begin FieldInfo := VarArrayCreate([0, QueryAff.FieldCount], varVariant); for i:=0 to Pred(QueryAff.FieldCount) do begin if QueryAff.Fields[i].DataType = ftString then FieldInfo[i] := VarArrayOf([(i + 1), xlTextFormat]) else if QueryAff.Fields[i].DataType = ftDateTime then FieldInfo[i] := VarArrayOf([(i + 1), xlDMYFormat]) else FieldInfo[i] := VarArrayOf([(i + 1), xlGeneralFormat]); end;Je suis allé voir la msdn (http://msdn.microsoft.com/en-us/libr....opentext.aspx), mais je n'ai pas trouvé ce qui ne va pas.Le type ne correspond pas
Une idée ?
![]()
Partager