Transférer des données Excel vers une table Access dans une BD existante

beegees

XLDnaute Occasionnel
Bonjour tout le monde,

J'aimerais transférer mes données Excel (données sélectionnées) dans une table Access :

Il faudrait créer une nouvelle table dans une base de données existante.

Le nom des collones devraient être la première valeur de chaque collone.

Est-ce faisable avec VBA ?

J'ai fait des recherches sur le forum et sur Google mais j'ai surtout trouvé le transfert de Access vers Excel.

Merci d'avance pour votre aide.

beegees
 

beegees

XLDnaute Occasionnel
Re : Transférer des données Excel vers une table Access dans une BD existante

Bonjour Bruno,

Merci pour ta réponse.

Je venais justement pour informer le forum que j'avais trouvé une solution par moi même.

Mais je pense que ta solution est meilleur.

Je me permets quand même d'indiquer ma solution :

à partir d'Access, j'ai créé une macro TransférerFeuilleCalcul qui est une macro préprogrammée en Access, je l'ai ensuite enregistrer sous... sous un format module et là j'ai changé tout ce que je voulais changer :

Option Compare Database

'------------------------------------------------------------
' Import_Fichier_Excel___Access
'
'------------------------------------------------------------
Function Import_Fichier_Excel___Access()

DoCmd.TransferSpreadsheet acImport, 8, "TEST", "Z:\nomDuDocument", True, "toImport"

End Function


Test est le nom de la table Access, toImport est le nom d'une plage nommée.

L'inconvénient de cette méthode est qu'il faut préparer une table avec des noms identiques aux collones excel.

Merci pour votre aide.

beegees

PS: y'a t'il moyen de mettre un tag résolu ?
 
C

Compte Supprimé 979

Guest
Re : Transférer des données Excel vers une table Access dans une BD existante

Ok Beegees,

Malheureusement pas de tag RESOLU sur ce site :)

Mais tu peux effectivement l'indiquer à la fin de ton POST en GROS et GRAS ;)

A un de ces jours
 

beegees

XLDnaute Occasionnel
Re : Transférer des données Excel vers une table Access dans une BD existante

Salut Bruno, Salut tout le monde,

Eh bien, je viens d'essayer le module référencé par Bruno, celui qui permet d'envoyer les informations Excel vers Access, je peux vous dire que c'est top des tops.

Le seul hic, et c'est dommâge, c'est qu'il n'importe pas tout ce qui texte.

C'est très bizzare.

Je vous met un fichier en copie pour que vous compreniez mieux car c'est pas facile à expliquer.

Pour tester, il faut créer une base de données et une table que vous pouvez nommer test. Si vous donnez un autre nom à la table, il faudra changer cette ligne :

oRS.Open "Select * from test", oConn, adOpenKeyset, adLockOptimistic

J'espère que vous trouverez pourquoi il ne copie pas toutes les données car ce module est vraiment très utile.

Merci d'avance pour votre aide.

beegees
 

Pièces jointes

  • forum.xls
    32 KB · Affichages: 259
  • forum.xls
    32 KB · Affichages: 271
  • forum.xls
    32 KB · Affichages: 277

chris

XLDnaute Barbatruc
Re : Transférer des données Excel vers une table Access dans une BD existante

Bonjour
Tu peux importer vers une nouvelle table : il suffit de donner un nom ne correspondant pas à une table existante.
Cependant si tu réutilises la même macro il faut renommer la 1ère table créée si tu ne veux pas ajouter à la table du précédent import.
 

beegees

XLDnaute Occasionnel
Re : Transférer des données Excel vers une table Access dans une BD existante

chris à dit:
Bonjour
Tu peux importer vers une nouvelle table : il suffit de donner un nom ne correspondant pas à une table existante.
Cependant si tu réutilises la même macro il faut renommer la 1ère table créée si tu ne veux pas ajouter à la table du précédent import.

Bonjour Chris,

Merci pour ta réponse.

Le problème n'est pas que les données soient écrasées.

Le problème c'est que certaines données ne sont pas importées dans la table Access.

Peut être ais-je mal compris ta réponse ?

beegees
 

chris

XLDnaute Barbatruc
Re : Transférer des données Excel vers une table Access dans une BD existante

Bonjour
Je ne répondais pas à ton dernier poste (ma réponse s'est faite en même temps) mais au précédent.
Le problème de l'échange entre Excel et Access c'est que le typage des données est automatique.
Tes données sont textuelles mais ressemblent à des nombres : il est probable que le PB vient de là.
Vérifie que tes champs Access sont bien en texte.
Dans ce cas il vaut mieux importer dans une table existante avec tous les champs en texte.
Sinon il faut passer par un format ASCII (on peut détailler le format de chaque colonne dans un fichier de paramètres utilisé par l'import) mais cela fait une manip en plus.
 

beegees

XLDnaute Occasionnel
Re : Transférer des données Excel vers une table Access dans une BD existante

chris à dit:
Bonjour
Je ne répondais pas à ton dernier poste (ma réponse s'est faite en même temps) mais au précédent.
Le problème de l'échange entre Excel et Access c'est que le typage des données est automatique.
Tes données sont textuelles mais ressemblent à des nombres : il est probable que le PB vient de là.
Vérifie que tes champs Access sont bien en texte.
Dans ce cas il vaut mieux importer dans une table existante avec tous les champs en texte.
Sinon il faut passer par un format ASCII (on peut détailler le format de chaque colonne dans un fichier de paramètres utilisé par l'import) mais cela fait une manip en plus.

Bonjour Chris,

Merci pour ta réponse et désolé pour la confusion.

tu me dis "Dans ce cas il vaut mieux importer dans une table existante avec tous les champs en texte."

Je le fais comme ça.

tu me dis : "Sinon il faut passer par un format ASCII (on peut détailler le format de chaque colonne dans un fichier de paramètres utilisé par l'import) mais cela fait une manip en plus"

Est-ce compliqué à faire ? est-ce que cela fonctionnera alors sûre et certain ?

Je te remercie encore pour tes réponses.

beegees



Pour ce qui est des champs Access, je te confirme qu'ils sont tous en format texte.
 

MichelXld

XLDnaute Barbatruc
Re : Transférer des données Excel vers une table Access dans une BD existante

bonsoir

Eh bien, je viens d'essayer le module référencé par Bruno, celui qui permet d'envoyer les informations Excel vers Access, je peux vous dire que c'est top des tops.
Le seul hic, et c'est dommâge, c'est qu'il n'importe pas tout ce qui texte.

C'est peut etre du au fait que certains de tes champs dans le classeur Excel fermé, contiennent à la fois des données texte et numérique:

Si vous voulez importer les informations d'une colonne qui contient à la fois des données numériques et texte, c'est le type majoritaire dans les 8 premières lignes qui définira le type de données à récupérer: les autres données de la colonnes seront considérées comme NULL (vide).
Si la colonne contient 4 valeurs numériques et 4 valeurs texte, la requête renvoie 4 nombres et 4 valeurs NULL.
La seule solution consiste à activer l'option d'importation IMEX=1. Exemple: "extended properties=""Excel 8.0;IMEX=1""".
Les données numériques seront importées comme du texte.



Bonne soirée
MichelXld
 

chris

XLDnaute Barbatruc
Re : Transférer des données Excel vers une table Access dans une BD existante

Bonjour
A priori ADO n'arrive pas à prendre en compte un mélangé texte et num même si Excel est en format texte.
Du coup il considère les colonnes comme du numérique et élimine tout ce qu'il n'est pas strictement numérique.
Michel_xld aura peut-être une idée.
Moi je ne trouve pas pourquoi.
Donc rien de mieux que tout à l'heure.

PS : Salut Michel : je n'avais pas raffraichi !
J'avais testé avec 2 lignes mais pas avec 8 !
C'est bon à savoir.
 
Dernière édition:

chris

XLDnaute Barbatruc
Re : Transférer des données Excel vers une table Access dans une BD existante

Bonsoir
J'ai essayé avec 8 lignes mais pas mieux.
Avec 16 : et là il bugue en arrivant à la 17ème car il ne veux pas de nombres après les textes.
Donc le TransferSpreadsheet reste pour l'instant la meilleure solution.
Bonne nuit
 

beegees

XLDnaute Occasionnel
Re : Transférer des données Excel vers une table Access dans une BD existante

Bonjour Chris et bonjour Michel,

Merci sincèrement pour votre dévouement.

Chris tu dis que c'est peut être un problème avec ADO, peut être que je peux alors créer une connexion DAO ?

Cela arrangera peut être le problème ?

Si je transforme toutes les cellules en texte j'avais créé une macro pour cela, il me transfère encore moins de data.

Merci encore à vous deux.

beegees
 
Dernière édition:

Discussions similaires

Réponses
0
Affichages
227

Statistiques des forums

Discussions
312 196
Messages
2 086 094
Membres
103 116
dernier inscrit
kutobi87