Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
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 26/11/2011, 09h30   #1
Nouveau Membre du Club
 
Inscription : avril 2009
Messages : 134
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 134
Points : 29
Points : 29
Par défaut Souci importation fichier excel

Bonjour à tous et toutes

J'ai un petit souci lors de l'importation d'un fichier excel sur access

Voici mon code

Code :
1
2
3
4
5
Private Sub Commande86_Click()
'Import table
DoCmd.Close acTable, "Tsocietes", acSaveNo
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, "TSocietes", "e:\societes.xls", True
End Sub
Le souci est que l'importation ne se fait pas, j'ai une "table" qui s'est créée avec un message d'erreur : "Impossible d'enregistrer l'objet" pour la table TSocietes

Avez vous une piste ?

Merci d'avance

Daniel
familledacp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2011, 13h35   #2
Nouveau Membre du Club
 
Inscription : avril 2009
Messages : 134
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 134
Points : 29
Points : 29
Re bonjour

Je viens de penser que le problème vient peut être du fait que les données sont importées dans une table pas vide ... Le but est juste de remplacer les données mises à jour (ou bien de tout effacer et remplacer par les données du fichier excel)

Si cela peut aider ....

Bonne journée

Daniel
familledacp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2011, 16h41   #3
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 625
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 625
Points : 30 962
Points : 30 962
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Bonjour

Fais l'import dans une table avec un autre nom, donc tu créeras une nouvelle table.
Tu lances une requête d'ajout des données de cette table dans ta table.
Tu supprimes la première table.

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 28/11/2011, 06h48   #4
Nouveau Membre du Club
 
Inscription : avril 2009
Messages : 134
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 134
Points : 29
Points : 29
Bonjour Philippe


Merci pour cette réponse

La table remplacée étant liée à une autre, ne vais-je pas perdre mes liaisons avec cette manipulation ?

Bonne journée

Daniel S
familledacp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 08h22   #5
Nouveau Membre du Club
 
Avatar de Marcopololo
 
Inscription : juillet 2008
Messages : 166
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 166
Points : 34
Points : 34
Bonjour,

Ayant mis en place une importation de données, il te faut effectivement supprimer ta table si elle existe. Et oui si tu as des lien sur cette table A vers ta table B tu les perdras, la solution est peut être de mettre les liens de ta table B vers ta table A. De plus il va te falloir j'imagine créer tes onglets ?

Marcopololo
Marcopololo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 09h12   #6
Nouveau Membre du Club
 
Inscription : avril 2009
Messages : 134
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 134
Points : 29
Points : 29
Bonjour

Ne serait il pas plus simple (sous réserve que cela soit possible)
- de supprimer tous les enregistrements de la "vieille" table
- d'y couper coller tous les enregistrements de la table à jour ?

Bonne journée

Daniel
familledacp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 12h05   #7
Nouveau Membre du Club
 
Avatar de Marcopololo
 
Inscription : juillet 2008
Messages : 166
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 166
Points : 34
Points : 34
Tu fais un code en VBA pour Access et tu copie tes enregistrements sur ta feuille et tu écrase les anciennes. C'est possible aussi sans trop de problème.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Dim rec As Recordset
Dim xlSheet1 As excel.Worksheet
Dim J As Long 
 
    Set rec = CurrentDb.OpenRecordset("Nom_Requete", dbOpenSnapshot)
 
 
Set Db = CurrentDb
 Set xlApp = CreateObject("Excel.Application")
 xlApp.Visible = True
strXLFile = "d:\....\NameExcel.xls"
 
For J = 0 To rec.Fields.Count - 1
        xlSheet1.Cells(2, J + 1) = rec.Fields(J).Name
Next J
 
        'Ajustement des colonnes
        xlSheet1.Columns.AutoFit
 
 
xlBook.SaveAs strXLFile      'sauvegarde fichier
xlApp.Quit
 
    Set xlSheet1 = Nothing
    Set xlBook = Nothing
    Set xlApp = Nothing
Voilà une idée de code

Marcopololo
Marcopololo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2011, 12h58   #8
Nouveau Membre du Club
 
Inscription : avril 2009
Messages : 134
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 134
Points : 29
Points : 29
Bonjour Marcopololo

J'ai regardé le code que tu proposes

N'y a t il pas une inversion ?

Ce que je souhaite c'est importer depuis excel vers Access.

Ce que je comprends de ton code me fait penser que c'est l'inverse que tu proposes

A bientot

Daniel
familledacp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2011, 14h46   #9
Nouveau Membre du Club
 
Avatar de Marcopololo
 
Inscription : juillet 2008
Messages : 166
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 166
Points : 34
Points : 34
Oups tu as raison, petit soucis de lecture de ton post.

Marcopololo
Marcopololo 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 07h35.


 
 
 
 
Partenaires

Hébergement Web