OVH Cloud OVH Cloud

TransferSpreadsheet

10 réponses
Avatar
fabienne HUÏEZ
Pour transf=E9rer les donn=E9es d'une feuille de calcul dans=20
une table Access, j'utilise la m=E9thode TransferSpreadsheet
o=F9 on peut sp=E9cifier un argument [contientnomschamps]

Si je mets "True" pour cet argument, pas de probl=E8me, les=20
donn=E9es vont bien dans ma table.
DoCmd.TransferSpreadsheet acImport,=20
8, "GLOBALEimport", "G:\VOICE\QS_DIAL\FH_MACRO_GLOBAL_FIXE_
MOBILE.xls", True, "Feuil1!A1:B232"


Si je mets "false", j'ai le message d'erreur=20
"Le champ 'F1' n'existe pas dans la table de destination"

DoCmd.TransferSpreadsheet acImport,=20
8, "GLOBALEimport", "G:\VOICE\QS_DIAL\FH_MACRO_GLOBAL_FIXE_
MOBILE.xls", False, "Feuil1!A1:B232" =20


Il- y a t-il une astuce particuli=E8re pour faire=20
fonctionner cette commande ?
merci de votre collaboration.

fabienne

10 réponses

Avatar
michdenis
Bonjour Fabienne,

La réponse est dans l'aide Access :

ContientNomsChamps Variant facultatif. Utilisez True (-1) pour utiliser les noms de champs de la première ligne de la
feuille de calcul lors d'une importation, exportation ou attache. Utilisez False (0) pour que Microsoft Access considère
la première ligne de la feuille de calcul comme étant des données normales. Si vous laissez cet argument vierge, la
valeur par défaut (False) est choisie. Lorsque vous exportez les données d'une table ou d'une requête Sélection
Microsoft Access vers une feuille de calcul, les noms de champs sont insérés dans la première ligne de la feuille de
calcul, quelle que soit la valeur de cet argument.


Salutations!

.


"fabienne HUÏEZ" a écrit dans le message de
news:2536201c4603a$08f88190$
Pour transférer les données d'une feuille de calcul dans
une table Access, j'utilise la méthode TransferSpreadsheet
où on peut spécifier un argument [contientnomschamps]

Si je mets "True" pour cet argument, pas de problème, les
données vont bien dans ma table.
DoCmd.TransferSpreadsheet acImport,
8, "GLOBALEimport", "G:VOICEQS_DIALFH_MACRO_GLOBAL_FIXE_
MOBILE.xls", True, "Feuil1!A1:B232"


Si je mets "false", j'ai le message d'erreur
"Le champ 'F1' n'existe pas dans la table de destination"

DoCmd.TransferSpreadsheet acImport,
8, "GLOBALEimport", "G:VOICEQS_DIALFH_MACRO_GLOBAL_FIXE_
MOBILE.xls", False, "Feuil1!A1:B232"


Il- y a t-il une astuce particulière pour faire
fonctionner cette commande ?
merci de votre collaboration.

fabienne
Avatar
fabienne.HUÏEZ
Merci, j'avais su lire l'aide Access.
Le problème posé concerne le message d'erreur généré.
Pourquoi une erreur lorsque l'argument est "False" alors
que tout se passe bien quand l'argument est "True" ?

fabienne



-----Message d'origine-----
Pour transférer les données d'une feuille de calcul dans
une table Access, j'utilise la méthode TransferSpreadsheet
où on peut spécifier un argument [contientnomschamps]

Si je mets "True" pour cet argument, pas de problème, les
données vont bien dans ma table.
DoCmd.TransferSpreadsheet acImport,
8, "GLOBALEimport", "G:VOICEQS_DIALFH_MACRO_GLOBAL_FIXE
_

MOBILE.xls", True, "Feuil1!A1:B232"


Si je mets "false", j'ai le message d'erreur
"Le champ 'F1' n'existe pas dans la table de destination"

DoCmd.TransferSpreadsheet acImport,
8, "GLOBALEimport", "G:VOICEQS_DIALFH_MACRO_GLOBAL_FIXE
_

MOBILE.xls", False, "Feuil1!A1:B232"


Il- y a t-il une astuce particulière pour faire
fonctionner cette commande ?
merci de votre collaboration.

fabienne
.



Avatar
michdenis
Selon moi, si ta table contient des données et que tu veuilles importer une plage de cellules d'excel à la suite de tes
données dans ta table, et, si tu dis à Access que les données de la plage de cellules n'ont pas d'étiquette de colonne,
comment Access fait pour savoir où insérer les données.

De plus si ta plage de cellules contient réellement des étiquettes et ces dernières ne sont pas du même type que les
données des colonnes qu'elles représentent (exemple : étiquette "Prix" la colonne = des prix"), en disant à Access que
ta plage de cellules n'a pas d'étiquette, il ne va pas trouver drôle d'insérer Exemple "Toto" (qui est en fait
l'étiquette de colonne dans excel) dans un enregistrement où ce champ est de type "long" (numérique).

Tu peux faire un test , essaie avec une nouvelle table vide et la même ligne de commande. Est-ce que cela fonctionne ?

Moi c'est ce que je comprends tu texte de l'aide ... et Toi ?


Salutations!



"fabienne.HUÏEZ" a écrit dans le message de
news:2555301c4603f$d1c1c640$
Merci, j'avais su lire l'aide Access.
Le problème posé concerne le message d'erreur généré.
Pourquoi une erreur lorsque l'argument est "False" alors
que tout se passe bien quand l'argument est "True" ?

fabienne



-----Message d'origine-----
Pour transférer les données d'une feuille de calcul dans
une table Access, j'utilise la méthode TransferSpreadsheet
où on peut spécifier un argument [contientnomschamps]

Si je mets "True" pour cet argument, pas de problème, les
données vont bien dans ma table.
DoCmd.TransferSpreadsheet acImport,
8, "GLOBALEimport", "G:VOICEQS_DIALFH_MACRO_GLOBAL_FIXE
_

MOBILE.xls", True, "Feuil1!A1:B232"


Si je mets "false", j'ai le message d'erreur
"Le champ 'F1' n'existe pas dans la table de destination"

DoCmd.TransferSpreadsheet acImport,
8, "GLOBALEimport", "G:VOICEQS_DIALFH_MACRO_GLOBAL_FIXE
_

MOBILE.xls", False, "Feuil1!A1:B232"


Il- y a t-il une astuce particulière pour faire
fonctionner cette commande ?
merci de votre collaboration.

fabienne
.



Avatar
fabienne HUÏEZ
"Tu peux faire un test , essaie avec une nouvelle table
vide et la même ligne de commande. Est-ce que cela
fonctionne ?"


C'est justement ma configuration : une table vide et la
même ligne de commande :
une fois avec argument "True": pas de problème
une fois avec argument "False" : message d'erreur

d'où mon appel à l'aide sur ce forum.

cdlt
fabienne

-----Message d'origine-----
Selon moi, si ta table contient des données et que tu
veuilles importer une plage de cellules d'excel à la suite

de tes
données dans ta table, et, si tu dis à Access que les
données de la plage de cellules n'ont pas d'étiquette de

colonne,
comment Access fait pour savoir où insérer les données.

De plus si ta plage de cellules contient réellement des
étiquettes et ces dernières ne sont pas du même type que

les
données des colonnes qu'elles représentent (exemple :
étiquette "Prix" la colonne = des prix"), en disant à

Access que
ta plage de cellules n'a pas d'étiquette, il ne va pas
trouver drôle d'insérer Exemple "Toto" (qui est en fait

l'étiquette de colonne dans excel) dans un enregistrement
où ce champ est de type "long" (numérique).


Tu peux faire un test , essaie avec une nouvelle table
vide et la même ligne de commande. Est-ce que cela

fonctionne ?

Moi c'est ce que je comprends tu texte de l'aide ... et
Toi ?



Salutations!



"fabienne.HUÏEZ" a
écrit dans le message de

news:2555301c4603f$d1c1c640$
Merci, j'avais su lire l'aide Access.
Le problème posé concerne le message d'erreur généré.
Pourquoi une erreur lorsque l'argument est "False" alors
que tout se passe bien quand l'argument est "True" ?

fabienne



-----Message d'origine-----
Pour transférer les données d'une feuille de calcul dans
une table Access, j'utilise la méthode
TransferSpreadsheet


où on peut spécifier un argument [contientnomschamps]

Si je mets "True" pour cet argument, pas de problème, les
données vont bien dans ma table.
DoCmd.TransferSpreadsheet acImport,
8, "GLOBALEimport", "G:VOICEQS_DIALFH_MACRO_GLOBAL_FIX
E


_
MOBILE.xls", True, "Feuil1!A1:B232"


Si je mets "false", j'ai le message d'erreur
"Le champ 'F1' n'existe pas dans la table de destination"

DoCmd.TransferSpreadsheet acImport,
8, "GLOBALEimport", "G:VOICEQS_DIALFH_MACRO_GLOBAL_FIX
E


_
MOBILE.xls", False, "Feuil1!A1:B232"


Il- y a t-il une astuce particulière pour faire
fonctionner cette commande ?
merci de votre collaboration.

fabienne
.




.




Avatar
Pierre CFI [mvp]
bonjour
comment veux tu qu'il s'y retrouve, les noms de champs ne sont pas les mémes, F1 correspond à quoi ?
ce n'est pas un Inser into
Pour info, ici c'est excel, il y a un news access
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site perso
http://access.cfi.free.fr
"fabienne HUÏEZ" a écrit dans le message de news:24c7301c46046$79d6e440$
"Tu peux faire un test , essaie avec une nouvelle table
vide et la même ligne de commande. Est-ce que cela
fonctionne ?"


C'est justement ma configuration : une table vide et la
même ligne de commande :
une fois avec argument "True": pas de problème
une fois avec argument "False" : message d'erreur

d'où mon appel à l'aide sur ce forum.

cdlt
fabienne

-----Message d'origine-----
Selon moi, si ta table contient des données et que tu
veuilles importer une plage de cellules d'excel à la suite

de tes
données dans ta table, et, si tu dis à Access que les
données de la plage de cellules n'ont pas d'étiquette de

colonne,
comment Access fait pour savoir où insérer les données.

De plus si ta plage de cellules contient réellement des
étiquettes et ces dernières ne sont pas du même type que

les
données des colonnes qu'elles représentent (exemple :
étiquette "Prix" la colonne = des prix"), en disant à

Access que
ta plage de cellules n'a pas d'étiquette, il ne va pas
trouver drôle d'insérer Exemple "Toto" (qui est en fait

l'étiquette de colonne dans excel) dans un enregistrement
où ce champ est de type "long" (numérique).


Tu peux faire un test , essaie avec une nouvelle table
vide et la même ligne de commande. Est-ce que cela

fonctionne ?

Moi c'est ce que je comprends tu texte de l'aide ... et
Toi ?



Salutations!



"fabienne.HUÏEZ" a
écrit dans le message de

news:2555301c4603f$d1c1c640$
Merci, j'avais su lire l'aide Access.
Le problème posé concerne le message d'erreur généré.
Pourquoi une erreur lorsque l'argument est "False" alors
que tout se passe bien quand l'argument est "True" ?

fabienne



-----Message d'origine-----
Pour transférer les données d'une feuille de calcul dans
une table Access, j'utilise la méthode
TransferSpreadsheet


où on peut spécifier un argument [contientnomschamps]

Si je mets "True" pour cet argument, pas de problème, les
données vont bien dans ma table.
DoCmd.TransferSpreadsheet acImport,
8, "GLOBALEimport", "G:VOICEQS_DIALFH_MACRO_GLOBAL_FIX
E


_
MOBILE.xls", True, "Feuil1!A1:B232"


Si je mets "false", j'ai le message d'erreur
"Le champ 'F1' n'existe pas dans la table de destination"

DoCmd.TransferSpreadsheet acImport,
8, "GLOBALEimport", "G:VOICEQS_DIALFH_MACRO_GLOBAL_FIX
E


_
MOBILE.xls", False, "Feuil1!A1:B232"


Il- y a t-il une astuce particulière pour faire
fonctionner cette commande ?
merci de votre collaboration.

fabienne
.




.




Avatar
Pierre CFI [mvp]
Eléve Michel, c'est trés bien 20/20, quoique tu as eu l'air de douter un peu, donc 18/20
Sois comme jps, jamais de doute, on fonce...

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"michdenis" a écrit dans le message de news:%
Selon moi, si ta table contient des données et que tu veuilles importer une plage de cellules d'excel à la suite de tes
données dans ta table, et, si tu dis à Access que les données de la plage de cellules n'ont pas d'étiquette de colonne,
comment Access fait pour savoir où insérer les données.

De plus si ta plage de cellules contient réellement des étiquettes et ces dernières ne sont pas du même type que les
données des colonnes qu'elles représentent (exemple : étiquette "Prix" la colonne = des prix"), en disant à Access que
ta plage de cellules n'a pas d'étiquette, il ne va pas trouver drôle d'insérer Exemple "Toto" (qui est en fait
l'étiquette de colonne dans excel) dans un enregistrement où ce champ est de type "long" (numérique).

Tu peux faire un test , essaie avec une nouvelle table vide et la même ligne de commande. Est-ce que cela fonctionne ?

Moi c'est ce que je comprends tu texte de l'aide ... et Toi ?


Salutations!



"fabienne.HUÏEZ" a écrit dans le message de
news:2555301c4603f$d1c1c640$
Merci, j'avais su lire l'aide Access.
Le problème posé concerne le message d'erreur généré.
Pourquoi une erreur lorsque l'argument est "False" alors
que tout se passe bien quand l'argument est "True" ?

fabienne



-----Message d'origine-----
Pour transférer les données d'une feuille de calcul dans
une table Access, j'utilise la méthode TransferSpreadsheet
où on peut spécifier un argument [contientnomschamps]

Si je mets "True" pour cet argument, pas de problème, les
données vont bien dans ma table.
DoCmd.TransferSpreadsheet acImport,
8, "GLOBALEimport", "G:VOICEQS_DIALFH_MACRO_GLOBAL_FIXE
_

MOBILE.xls", True, "Feuil1!A1:B232"


Si je mets "false", j'ai le message d'erreur
"Le champ 'F1' n'existe pas dans la table de destination"

DoCmd.TransferSpreadsheet acImport,
8, "GLOBALEimport", "G:VOICEQS_DIALFH_MACRO_GLOBAL_FIXE
_

MOBILE.xls", False, "Feuil1!A1:B232"


Il- y a t-il une astuce particulière pour faire
fonctionner cette commande ?
merci de votre collaboration.

fabienne
.







Avatar
michdenis
Et bien merci Pierre

;-)))

Et au très vénérable JPS, je lève mon chapeau !

;-)


Salutations!







"Pierre CFI [mvp]" a écrit dans le message de news:
Eléve Michel, c'est trés bien 20/20, quoique tu as eu l'air de douter un peu, donc 18/20
Sois comme jps, jamais de doute, on fonce...

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"michdenis" a écrit dans le message de news:%
Selon moi, si ta table contient des données et que tu veuilles importer une plage de cellules d'excel à la suite de
tes

données dans ta table, et, si tu dis à Access que les données de la plage de cellules n'ont pas d'étiquette de
colonne,

comment Access fait pour savoir où insérer les données.

De plus si ta plage de cellules contient réellement des étiquettes et ces dernières ne sont pas du même type que les
données des colonnes qu'elles représentent (exemple : étiquette "Prix" la colonne = des prix"), en disant à Access que
ta plage de cellules n'a pas d'étiquette, il ne va pas trouver drôle d'insérer Exemple "Toto" (qui est en fait
l'étiquette de colonne dans excel) dans un enregistrement où ce champ est de type "long" (numérique).

Tu peux faire un test , essaie avec une nouvelle table vide et la même ligne de commande. Est-ce que cela fonctionne ?

Moi c'est ce que je comprends tu texte de l'aide ... et Toi ?


Salutations!



"fabienne.HUÏEZ" a écrit dans le message de
news:2555301c4603f$d1c1c640$
Merci, j'avais su lire l'aide Access.
Le problème posé concerne le message d'erreur généré.
Pourquoi une erreur lorsque l'argument est "False" alors
que tout se passe bien quand l'argument est "True" ?

fabienne



-----Message d'origine-----
Pour transférer les données d'une feuille de calcul dans
une table Access, j'utilise la méthode TransferSpreadsheet
où on peut spécifier un argument [contientnomschamps]

Si je mets "True" pour cet argument, pas de problème, les
données vont bien dans ma table.
DoCmd.TransferSpreadsheet acImport,
8, "GLOBALEimport", "G:VOICEQS_DIALFH_MACRO_GLOBAL_FIXE
_

MOBILE.xls", True, "Feuil1!A1:B232"


Si je mets "false", j'ai le message d'erreur
"Le champ 'F1' n'existe pas dans la table de destination"

DoCmd.TransferSpreadsheet acImport,
8, "GLOBALEimport", "G:VOICEQS_DIALFH_MACRO_GLOBAL_FIXE
_

MOBILE.xls", False, "Feuil1!A1:B232"


Il- y a t-il une astuce particulière pour faire
fonctionner cette commande ?
merci de votre collaboration.

fabienne
.







Avatar
sabatier
:-)))))
jps (qui fonce, oui, mais souvent aux abris, finalement)

Pierre CFI [mvp] a écrit:
Eléve Michel, c'est trés bien 20/20, quoique tu as eu l'air de douter un peu, donc 18/20
Sois comme jps, jamais de doute, on fonce...



Avatar
sabatier
remets-le vite, malheureux : tu risques de prendre une TransferSpread
Shit sur le crâne...
jps

michdenis a écrit:

Et au très vénérable JPS, je lève mon chapeau !

;-)


Salutations!







"Pierre CFI [mvp]" a écrit dans le message de news:
Eléve Michel, c'est trés bien 20/20, quoique tu as eu l'air de douter un peu, donc 18/20
Sois comme jps, jamais de doute, on fonce...



Avatar
michdenis
Bonjour Pierre et Fabienne,

D'abord pour toi Fabienne,

J'ai testé cette ligne de commande :
'----------------------
Sub Test()

DoCmd.TransferSpreadsheet acImport, 8, "MaTable", "C:ExcelMabase.xls", False, "Feuil1!A1:G20"

End Sub
'----------------------

Résultat : Même avec l'argument "contientnomschamps" = False , cette ligne de commande fonctionne parfaitement. Mon
test s'est effectué de cette façon :

La table "MaTable" dans la ligne de commande n'existait pas dans la base de données. Aucune structure, même pas son nom,
au moment de lancer la procédure.

Dans ma plage de données excel, j'avais des étiquettes de colonnes (du texte) et tout le reste des données était des
nombres.

La commande a :

A ) créer la table
B) Importer toutes les données, y compris les étiquettes des colonnes
C ) Tous les champs de la table dans Access avait reçu évidemment le type "Texte"
D ) J'ai pu relancer autant de fois que désiré la procédure et les données du tableau excel ont tous été importés et
enregistrés à la suite des enregistrements présents dans la table "MaTable" en répétant bien sûr la ligne des étiquettes
du tableau excel.

Ce test fut réalisé avec office 2002.


Pour toi Pierre,

J'aimerais bien retrouvé les 2 points que tu m'as enlevé !! Et comment appelles-tu ça une hésitation qui s'avère
une réalité fonctionnelle ?


;-)))


Salutations!








"Pierre CFI [mvp]" a écrit dans le message de news:
Eléve Michel, c'est trés bien 20/20, quoique tu as eu l'air de douter un peu, donc 18/20
Sois comme jps, jamais de doute, on fonce...

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"michdenis" a écrit dans le message de news:%
Selon moi, si ta table contient des données et que tu veuilles importer une plage de cellules d'excel à la suite de
tes

données dans ta table, et, si tu dis à Access que les données de la plage de cellules n'ont pas d'étiquette de
colonne,

comment Access fait pour savoir où insérer les données.

De plus si ta plage de cellules contient réellement des étiquettes et ces dernières ne sont pas du même type que les
données des colonnes qu'elles représentent (exemple : étiquette "Prix" la colonne = des prix"), en disant à Access que
ta plage de cellules n'a pas d'étiquette, il ne va pas trouver drôle d'insérer Exemple "Toto" (qui est en fait
l'étiquette de colonne dans excel) dans un enregistrement où ce champ est de type "long" (numérique).

Tu peux faire un test , essaie avec une nouvelle table vide et la même ligne de commande. Est-ce que cela fonctionne ?

Moi c'est ce que je comprends tu texte de l'aide ... et Toi ?


Salutations!



"fabienne.HUÏEZ" a écrit dans le message de
news:2555301c4603f$d1c1c640$
Merci, j'avais su lire l'aide Access.
Le problème posé concerne le message d'erreur généré.
Pourquoi une erreur lorsque l'argument est "False" alors
que tout se passe bien quand l'argument est "True" ?

fabienne



-----Message d'origine-----
Pour transférer les données d'une feuille de calcul dans
une table Access, j'utilise la méthode TransferSpreadsheet
où on peut spécifier un argument [contientnomschamps]

Si je mets "True" pour cet argument, pas de problème, les
données vont bien dans ma table.
DoCmd.TransferSpreadsheet acImport,
8, "GLOBALEimport", "G:VOICEQS_DIALFH_MACRO_GLOBAL_FIXE
_

MOBILE.xls", True, "Feuil1!A1:B232"


Si je mets "false", j'ai le message d'erreur
"Le champ 'F1' n'existe pas dans la table de destination"

DoCmd.TransferSpreadsheet acImport,
8, "GLOBALEimport", "G:VOICEQS_DIALFH_MACRO_GLOBAL_FIXE
_

MOBILE.xls", False, "Feuil1!A1:B232"


Il- y a t-il une astuce particulière pour faire
fonctionner cette commande ?
merci de votre collaboration.

fabienne
.