Import dans Access d'un fichier Excel : une curiosité...

Le
Dom
Bonjour,

J'importe dans Access (97) un fichier Excel 97 comportant 8 colonnes. Les
cellules de la colonne 3 sont au format "standard". Elles peuvent contenir
des données numériques ou alphanumériques et ne doivent pas être "vides". Il
peut y avoir des doublons dans cette colonne 3.

L'import est réalisé à partir de la syntaxe suivante :

DoCmd.TransferSpreadsheet acImport, 8, "Inventaire", stFile, False

Inventaire = Nom de la table où sont importées les données du fichier Excel
StFile = variable correspondant au nom de fichier Excel importé.

Quand toutes les données des cellules de cette colonne 3 sont numériques pas
de problème ;-) Je retrouve tout comme il faut dans ma table Access.

Mais j'ai remarqué un phénomène étrange (en tout cas pour moi)

Imaginons que mes lignes Excel 1 à 100 dans cette colonne 3 soient servies
avec les nombres de 1 à 100 et que les lignes 101 à 105 soient servies avec
:

101
101B
B102
103
104

Et bien, dans ce cas, ma table Access un champ vide à la place de 101B et
B102.

En revanche, si l'une des cellules 1 à 8 de ma colonne 3 de ma feuille excel
est servie avec de l'alphanumérique (exemple 52AFSR-RSR), ma table Access
affiche correctement 101B et B102.

On dirait qu'Access (97) considère, lors d'un import d'une feuille Excel,
que : si les 8 premiers enregistrements d'une cellule sont numériques, et
que le 150 ème (par exemple) est en alphanum, il (Access) crée le champ de
la table en numérique et donc génère une erreur quand "il" tombe sur de
l'aphanum. A contrario, si l'un des 8 premiers enregistrements est en
alphanum, et dans le même cas de figure, Access créera la table avec le
champ au format texte.

Un membre de cet éminent forum pourrait-t'il me fournir une explication (si
tant est que mon propos est compréhensible !)

Merci d'avance.

Dominique.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jessy Sempere
Le #6271311
Bonjour

Tu as tout compris, et très bien interprété les choses...

Pour palier à ce problème, il te faut utiliser un format personnalisé, et
l'utiliser comme argument dans la fonction TransfertSpreadsheet...


@+
Jessy Sempere
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"Dom" 464594f8$0$31359$
Bonjour,

J'importe dans Access (97) un fichier Excel 97 comportant 8 colonnes. Les
cellules de la colonne 3 sont au format "standard". Elles peuvent contenir
des données numériques ou alphanumériques et ne doivent pas être "vides".
Il peut y avoir des doublons dans cette colonne 3.

L'import est réalisé à partir de la syntaxe suivante :

DoCmd.TransferSpreadsheet acImport, 8, "Inventaire", stFile, False

Inventaire = Nom de la table où sont importées les données du fichier
Excel
StFile = variable correspondant au nom de fichier Excel importé.

Quand toutes les données des cellules de cette colonne 3 sont numériques
pas de problème ;-) Je retrouve tout comme il faut dans ma table Access.

Mais j'ai remarqué un phénomène étrange (en tout cas pour moi)

Imaginons que mes lignes Excel 1 à 100 dans cette colonne 3 soient servies
avec les nombres de 1 à 100 et que les lignes 101 à 105 soient servies
avec :

101
101B
B102
103
104

Et bien, dans ce cas, ma table Access un champ vide à la place de 101B et
B102.

En revanche, si l'une des cellules 1 à 8 de ma colonne 3 de ma feuille
excel est servie avec de l'alphanumérique (exemple 52AFSR-RSR), ma table
Access affiche correctement 101B et B102.

On dirait qu'Access (97) considère, lors d'un import d'une feuille Excel,
que : si les 8 premiers enregistrements d'une cellule sont numériques, et
que le 150 ème (par exemple) est en alphanum, il (Access) crée le champ de
la table en numérique et donc génère une erreur quand "il" tombe sur de
l'aphanum. A contrario, si l'un des 8 premiers enregistrements est en
alphanum, et dans le même cas de figure, Access créera la table avec le
champ au format texte.

Un membre de cet éminent forum pourrait-t'il me fournir une explication
(si tant est que mon propos est compréhensible !)

Merci d'avance.

Dominique.



Dom
Le #6271271
Merci Jessy :-)

Je vais plancher sur ta solution.

Dominique.


"Jessy Sempere" %
Bonjour

Tu as tout compris, et très bien interprété les choses...

Pour palier à ce problème, il te faut utiliser un format personnalisé, et
l'utiliser comme argument dans la fonction TransfertSpreadsheet...


@+
Jessy Sempere
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"Dom" 464594f8$0$31359$
Bonjour,

J'importe dans Access (97) un fichier Excel 97 comportant 8 colonnes. Les
cellules de la colonne 3 sont au format "standard". Elles peuvent
contenir des données numériques ou alphanumériques et ne doivent pas être
"vides". Il peut y avoir des doublons dans cette colonne 3.

L'import est réalisé à partir de la syntaxe suivante :

DoCmd.TransferSpreadsheet acImport, 8, "Inventaire", stFile, False

Inventaire = Nom de la table où sont importées les données du fichier
Excel
StFile = variable correspondant au nom de fichier Excel importé.

Quand toutes les données des cellules de cette colonne 3 sont numériques
pas de problème ;-) Je retrouve tout comme il faut dans ma table Access.

Mais j'ai remarqué un phénomène étrange (en tout cas pour moi)

Imaginons que mes lignes Excel 1 à 100 dans cette colonne 3 soient
servies avec les nombres de 1 à 100 et que les lignes 101 à 105 soient
servies avec :

101
101B
B102
103
104

Et bien, dans ce cas, ma table Access un champ vide à la place de 101B et
B102.

En revanche, si l'une des cellules 1 à 8 de ma colonne 3 de ma feuille
excel est servie avec de l'alphanumérique (exemple 52AFSR-RSR), ma table
Access affiche correctement 101B et B102.

On dirait qu'Access (97) considère, lors d'un import d'une feuille Excel,
que : si les 8 premiers enregistrements d'une cellule sont numériques, et
que le 150 ème (par exemple) est en alphanum, il (Access) crée le champ
de la table en numérique et donc génère une erreur quand "il" tombe sur
de l'aphanum. A contrario, si l'un des 8 premiers enregistrements est en
alphanum, et dans le même cas de figure, Access créera la table avec le
champ au format texte.

Un membre de cet éminent forum pourrait-t'il me fournir une explication
(si tant est que mon propos est compréhensible !)

Merci d'avance.

Dominique.







Publicité
Poster une réponse
Anonyme