J'ai un tableur excel dans lequel je veut prendre des valeurs pour les afficher dans une DBGrid pour ensuite les envoyer dans une base de données.
Mais j'arrive pas afficher ces valeurs dans ma DBGrid.
J'ai un tableur excel dans lequel je veut prendre des valeurs pour les afficher dans une DBGrid pour ensuite les envoyer dans une base de données.
Mais j'arrive pas afficher ces valeurs dans ma DBGrid.
Peut tu etre un peu plus precis et nous montrer le code qui ne fonctionnerai pas d'après toi ?
Voici mon code qui ne fonctionne pas:
La compilation plante à la dernière ligne mais je ne c'est pas quoi mettre d'autre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 vRange = "B2"; vCell = vWorksheet.OlePropertyGet("Range", vRange); aValue = vCell.OlePropertyGet("Value"); Form1->DBGrid1->Fields[0]->AsVariant = aValue;
Je pense que la propriété Fields n'est pas accécible en écriture, seulement en lecture, d'ou ton problème.
Tu connaitrais pas une méthode permettant l'insertion de données dans la dbgrid à partir d'excel?
Merci d'avance.
Fields est accesible en lecture uniquement.Envoyé par Aide de Builder
Je ne pense pas que tu puisses utiliser un TDBGrid pour afficher des données provenant d'autres choses que d'une BDD.
Alors commment je peut faire pour envoyer mes données excel dans la table de ma base de données?Je ne pense pas que tu puisses utiliser un TDBGrid pour afficher des données provenant d'autres choses que d'une BDD.
Tu peut faire des requêtes SQL
Merci pour l'aide.
Je fais essayer même si j'en est jamais utilisées et que j'y connais rien.
Bonjour,
Pour faire ce que tu cherches, si tu as vraimment des valeurs stockées sur des fiches Excel, perso j'essaierais d'utiliser un TADODataset.
En effet, je l'ai fait pour un test pour moi et effectivement j'ai bien réussi a établir une liaison vers le fichier Excel comme si il s'agissait d'une table de données.
Cela fonctionne tout a fait, et j'affichais les données dans un DBGrid (a part le temps d'ouverture de la connection qui n'est pas très satisfaisant)
Je suis au boulot la, mais de chez moi je pourrais si tu veut t'envoyer qq infos et bouts de code.
@ +
je veut bien que tu m'envoie qq infos et bouts de code.
Merci
Bonsoir,
Voici quelques instructions, en espérant être clair...
Dans le fichier Excel visé, je prépare la 'structure' du fichier(c'est une méthode perso qui vaut ce qu'elle vaut) : je garde la première
ligne de chaque colonne afin de nommer les colonnes comme si il s'agissait de champs d'une table de données.
Ensuite je selectionne toutes les colonnes et renomme ce groupe. Ce nom me sert de nom de table en quelquesorte.
ConnectionString dans l'inspecteur d'object:
Option 'Utiliser la chaine de connection'
bouton 'Construire'
.Une boite de dialogue apparait:
Onglet Fournisseur:
Double click sur 'Microsoft OLE DB Provider for ODBC Drivers
Option 'Utiliser la chaine de connection'
bouton 'Creer'
.une boite de dialogue apparait:
Onglet 'Source de données fichiers'
bouton 'Nouveau'
.une boite de dialogue apparait
double click sur Driver Do Microsoft Excel
clicker sur 'Parcourir'
Dans la fenêtre, pour le 'Type', selectionner 'Tous les fichiers'
Puis dans 'Enregistrer dans', selectionner le repertoire puis le fichier faisant
office de base de données
Clicker sur 'Suivant', 'Terminer', 'Selectionner un classeur'
Dans la petite fenêtre de gauche, selectionner le classeur Excel désiré
Puis 'OK' (par deux fois si je me souviens bien)
CommandText dans l'inspecteur d'object:
Fenêtre du bas -> selectionner les champs a prendre en compte
Fenêtre du haut -> indiquer le nom de table
On obtiens dans la fenêtre de droite qqchose comme :
SELECT 'NomDeChamps1', 'NomDeChamps2'
FROM 'NomDeTable'
Relié un TDBGrid a un TDataSource, celui la devant pointer sur le TADODataset.
Passer la propriété Active du ADODataset a true.
J'espère ne rien oublier. C'est juste une indication en manuel, a savoir que les 'ConnectionString' et autres peuvent - évidemment - être paramétrées par le code.
En espérant t'aider,
@ +
C'est bon ça marche enfin.
Merci
Partager