ADO ET EXCEL COMME BASE DE DONNÉES

pierrefo Messages postés 54 Date d'inscription mardi 22 juin 2004 Statut Membre Dernière intervention 29 décembre 2008 - 22 déc. 2008 à 10:08
lord948 Messages postés 34 Date d'inscription jeudi 17 janvier 2008 Statut Membre Dernière intervention 19 mai 2009 - 18 janv. 2009 à 12:48
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/48753-ado-et-excel-comme-base-de-donnees

lord948 Messages postés 34 Date d'inscription jeudi 17 janvier 2008 Statut Membre Dernière intervention 19 mai 2009
18 janv. 2009 à 12:48
trop de variable inutile
offlake Messages postés 190 Date d'inscription mercredi 3 septembre 2008 Statut Membre Dernière intervention 17 janvier 2009
23 déc. 2008 à 09:37
Bon COde!
BY OFFLAKE
yvessimon Messages postés 637 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 9 janvier 2017
23 déc. 2008 à 09:08
voici un site qui donne une explication

http://support.microsoft.com/kb/257819
yvessimon Messages postés 637 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 9 janvier 2017
22 déc. 2008 à 13:33
Bonjour,

La table doit être sans cellule vide.

De plus lors de la suppression d'un enregistrement le message suivant apparaît :
---------------------------
Notification d'une exception du débogueur
---------------------------
Le projet Project1.exe a provoqué une classe d'exception EOleException avec le message
'[Microsoft][Pilote ODBC Excel]
La suppression de données dans une table attachée n'est pas gérée par le pilote ISAM'.

Processus stoppé.
Utilisez Pas-à-pas ou Exécuter pour continuer.
---------------------------

Il est possible d'ajouter un enregistrement mais pas d'en supprimer !.

Merci pour l'aide j'ai avancé.

Reste à trouver une explication.
Salutations
pierrefo Messages postés 54 Date d'inscription mardi 22 juin 2004 Statut Membre Dernière intervention 29 décembre 2008
22 déc. 2008 à 11:54
Re,

Petite info complémentaire:
Pour que les cellules qui contiennent des nombres soient interprétées en tant que texte il faut, dans Excel, qu'elles soient entrées sous la forme: '-128

Cordialement
Pierre
pierrefo Messages postés 54 Date d'inscription mardi 22 juin 2004 Statut Membre Dernière intervention 29 décembre 2008
22 déc. 2008 à 11:40
Bonjour,
En effet j'ai le même problème pour les autres colonnes.
En fait l'interface ADO test sur les premières lignes le type de données, sans tenir compte de la définition dans excel.
Voici un essai:
Dans ta colonne Etendue j'ai, dans le fichier Excel, mis des caractères alpha dans les 20 premières lignes. Dans le DBGrid je peux alors saisir du texte. Par contre les cellules laissées avec des valeurs numériques sont vides dans le DBGrid.

Salutations
yvessimon Messages postés 637 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 9 janvier 2017
22 déc. 2008 à 11:17
Bonjour,

Effectivement en ajoutant la colonne nom =texte je peux la modifier à volonté.
Par contre les autres colonnes restent en numérique bien que déclarées en texte !!

Je ne comprends pas pourquoi il y a cette différence ?
est-ce la même chose pour les autres colonnes ?

Salutations
pierrefo Messages postés 54 Date d'inscription mardi 22 juin 2004 Statut Membre Dernière intervention 29 décembre 2008
22 déc. 2008 à 10:59
Re,
Avec tes sources et sans aucune modification, j'ai ajouté dans le fichier excel une colonne, nom = Texte, entre serie et Etendue (dans T_mecaniques).

Je n'ai aucun problème ni pour visualiser cette colonne alphanumérique, ni pour la modifier, ni pour ajouter une nouvelle ligne dans le DBGrid.

Nota: j'utilise moi-même l'accès à des bases Excel (fichiers de généalogie, fichiers de coordonnées géographiques, annuaires ..) et je n'ai jamais rencontré ce problème.

Cordialement
yvessimon Messages postés 637 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 9 janvier 2017
22 déc. 2008 à 10:30
Bonjour,

Sur la grille DBGgrid je ne peux entrer que des nombres !
Avec les lettres j'ai une erreur avec impossibilité rentrer des lettres !

Si sur ton poste tu peux entrer aussi bien des nombres que des lettres alors c'est la configuration qui est différente.
Est-il possible de rentrer des lettres dans le DBGrid ?

Bonne remarque sur la simplification

Merci
Salutations
pierrefo Messages postés 54 Date d'inscription mardi 22 juin 2004 Statut Membre Dernière intervention 29 décembre 2008
22 déc. 2008 à 10:08
Bonjour,
Je ne comprends pas ta question pour les colonnes alphanumériques. Pour moi ça fonctionne très bien.
Par contre je pense que ton code peut être simplifié ....
Un exemple :
Au lieu de construire une chaine de connexion complète à chaque changement de fichier, tu peux utiliser:
s1 := 'Provider=MSDASQL.1;Persist Security Info=False;Data Source=TestExcel';
ADOConnection.ConnectionString := s1;
ADOConnection.DefaultDatabase := chemin_de_la_base;
Bonne continuation
Rejoignez-nous