Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/05/2011, 10h05   #1
Nouveau Membre du Club
 
Inscription : mai 2009
Messages : 124
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 124
Points : 26
Points : 26
Par défaut problème avec TransferSpreadsheet

bonjour a tous,

mon problème est le suivant ,j'utilise cette ligne de code pour transférer dans ma base de données les données à partir de fichier excel :
Code :
1
2
 
DoCmd.TransferSpreadsheet acImport, 8, "JOURNEE_TEMP", OuvrirUnFichier(Application.hWndAccessApp, "Parcourir", 1, "Fichier Excel", "*.xlsx"), True
le problème est que dans ma table JOURNEE_TEMP je récupère 13505 lignes alors que dans le fichier il y a 16014 lignes.

La fonction OuvrirUnFichier récupère le chemin du fichier à partir d'une boite de dialogue

Avez vous une idée ??
merci d'avance
rominous41 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 11h08   #2
Nouveau Membre du Club
 
Inscription : mai 2009
Messages : 124
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 124
Points : 26
Points : 26
Existe t il une autre fonction pour importer des données dans une table access a partir de données excel ??
rominous41 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 11h16   #3
Membre actif
 
Homme Quentin D.
Étudiant
Inscription : avril 2011
Messages : 175
Détails du profil
Informations personnelles :
Nom : Homme Quentin D.
Âge : 25
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : avril 2011
Messages : 175
Points : 165
Points : 165
Bonjour,

Personnellement j'utilise une méthode avec ADO (que vous retrouverez dans mes différents posts sur le forum) qui fonctionne très bien avec les fichiers excel xls.
Par contre elle pose des problèmes de format de données avec les fichiers xlsx.
Donc a vous de voir si cela vaut le coup d'essayer.
Sinon je ne sais pas pourquoi il n'y a pas toutes les lignes qui sont importées...
Peut être un problème de doublons? Si votre table a pour clé primaire des champs qui peuvent se répéter dans votre fichier excel, peut être que la méthode Docmd.transfertspreasheet écrase les doublons?

Voila c'est tout ce que je peux faire ^^.(sauf si vous vous lancez dans ma méthode et que vous avez des questions ^^)

Cordialement,

Quentin
__________________
Pourquoi faire aujourd'hui ce que l'on peut remettre à demain ?
Nitromard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 11h35   #4
Nouveau Membre du Club
 
Inscription : mai 2009
Messages : 124
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 124
Points : 26
Points : 26
Je me lancerai avec joie dans votre méthode mais mes fichier excel sont au format "xlsx".

N'y a t'il pas de possibilités d'adapté le code ??

pour mon histoire je souhaiterais que sa écrase les doublons mais sa déclenche une erreur quand il en rencontre une.

le problème est qu'il n'insert pas des lignes qui ne contiennent pas de champs null au niveau de la clé et qui n'existe pas déjà dans la base.

merci de votre réponse
rominous41 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 12h12   #5
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 615
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 615
Points : 30 962
Points : 30 962
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Bonjour

Citation:
Envoyé par rominous41 Voir le message
pour mon histoire je souhaiterais que sa écrase les doublons mais sa déclenche une erreur quand il en rencontre une.
Cela n'écrasera jamais les données qui sont dans ta table, si tu veux écraser c'est qu'il y a une modification sur un ou plusieurs champs dans tes enregistrements, alors là ce sera une mise à jour.

Au vu de tout cela, il va falloir passer par d'autres méthodes, entre autre le pilotage d'Excel pour récupérer les informations du tableur et les injecter dans Access.

Pour cela il faut que tu détailles tout : données d'Excel, données d'Access et les conditions de transfert.

La méthode que tu utilises ne permettra pas de faire ce que tu veux.

Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 12h26   #6
Nouveau Membre du Club
 
Inscription : mai 2009
Messages : 124
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 124
Points : 26
Points : 26
Pour l'instant j’insère mes données dans une table temporaire puis pour chaque ligne de la table temporaire je supprime dans la table de destination la ligne correspondant a la clé puis j'insère la ligne dans la table.

En gros tout les doublons sont d'abord supprimés puis ré-enregistrer et pour les lignes nouvelles je fait un delete dans le vide puis j'insère.
rominous41 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 13h25   #7
Membre actif
 
Homme Quentin D.
Étudiant
Inscription : avril 2011
Messages : 175
Détails du profil
Informations personnelles :
Nom : Homme Quentin D.
Âge : 25
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : avril 2011
Messages : 175
Points : 165
Points : 165
Re,

Bon je t'invite quand mm à étudier la méthode que j'utilise, il y a une "auto-gestion" des doublons si tu nommes bien des champs en clé primaire. Si tu as un doublon qui a exactement les mm champs alors il ne les copiera pas dans la table.
Par contre tu es obligé de passer par le On error resume next...On error goto 0.
Qui te permettra de sauter l'erreur de doublons, au départ tu devras faire des tests pour voir si tu en as quand mm ou non.

Tu pourras tester quand mm avec les fichiers xlsx, le porblème que j'avais était avec des nombres qu'il me mettait à des formats pas possibles (un 0.01 qui se transforme en 1000000000). Si tu as des nombres, il faudra que tu vérifie s'il les mets bien dans ta base.

Ensuite si tu as des conditions spécifiques d'enregistrement de ta table, cad par exemple mettre le champs 2 de la feuille excel dans le champs 8, il faudra utiliser une gestion de ligne au lieu d'un copiage direct.

Tout est plus ou moins détaillé dans mes différents posts de mon profil, tu peux y jeter un oeil.

Si tu as des problèmes, pose tes questions et n'oublie pas de mettre la structure exacte de tes feuilles excel et de ta ou tes tables.

Bonne continuation.
__________________
Pourquoi faire aujourd'hui ce que l'on peut remettre à demain ?
Nitromard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 15h10   #8
Nouveau Membre du Club
 
Inscription : mai 2009
Messages : 124
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 124
Points : 26
Points : 26
peut tu m'envoyer un lien vers tes postes stp je ne sais pas où ils sont ??

merci beaucoup
rominous41 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 15h20   #9
Membre actif
 
Homme Quentin D.
Étudiant
Inscription : avril 2011
Messages : 175
Détails du profil
Informations personnelles :
Nom : Homme Quentin D.
Âge : 25
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : avril 2011
Messages : 175
Points : 165
Points : 165
Pas de problèmes :

http://www.developpez.net/forums/sea...archid=7070148

La plupart parlent des transferts de feuille excel vers Access.
__________________
Pourquoi faire aujourd'hui ce que l'on peut remettre à demain ?
Nitromard est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h06.


 
 
 
 
Partenaires

Hébergement Web