Importer une page excel sur access

alio25 Messages postés 14 Date d'inscription jeudi 15 mars 2007 Statut Membre Dernière intervention 30 avril 2007 - 15 mars 2007 à 16:58
alio25 Messages postés 14 Date d'inscription jeudi 15 mars 2007 Statut Membre Dernière intervention 30 avril 2007 - 26 mars 2007 à 18:36
Bonjour,
j'ai vraiment très peu d'expérience sur le sujet ... 
alors si quelqu'un a une solution (qui marche à tous les coups) à me proposer, ce serai super.
Voilà mon problème:
pour mon stage je dois mettre en place un système qui permette de recuperer des infos sur des appels emis depuis des postes des agents(fichier excel recuperer d'un logiciel), et à partir de l'indicatif de chaque appel et de la taxation qui se trouve sur access je fais le calcul.
Donc mon problème est de pouvoir récuperer les infos sur la page access.
j'ai trouvé cette solution:
http://www.vbfrance.com/codes/IMPORTER-FEUILLE-EXCEL-VERS-TABLE-ACCESS-EXISTANTE_41568.aspx
mais ça ne marche pas pour moi, ça me fais erreur:
                           Type défini par l'utilisateur non défini
Merci d'avance pour votre aide.

6 réponses

cs_taikibaybay Messages postés 46 Date d'inscription mercredi 1 mars 2006 Statut Membre Dernière intervention 25 décembre 2007
22 mars 2007 à 20:10
il faut instaler la reference de access avant

Imports Access
 Public Sub ImportAccess(ByVal FileName As String, ByVal val As String)
        AppAccess = New Access.Application

       
            AppAccess.OpenCurrentDatabase("chemin\maBase")
            AppAccess.DoCmd.DeleteObject(AcObjectType.acTable, "maTable")
            AppAccess.DoCmd.TransferSpreadsheet(AcDataTransferType.acImport, , "maTable", "Nomdufichier Excel", True, "NomFeuil!")
            AppAccess.DoCmd.DeleteObject(AcObjectType.acTable, "NomFeuil$_ImportErrors")
             AppAccess.CloseCurrentDatabase()
       
    End Sub

mieux que ca je connais pas
0
alio25 Messages postés 14 Date d'inscription jeudi 15 mars 2007 Statut Membre Dernière intervention 30 avril 2007
23 mars 2007 à 07:51
Merci pour ton attention.


je n'en doute pas de l'efficacité de ton code, je n'ai pas encore essayé cette solution mais je le ferai dès que je peux.


En fait depuis le 15/03 il fallait bien que j'avance, alors j'ai trouvé cette commande sur les forums:


DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, NomTable, PathFic & NomFic, True

et pour le moment ça marche bien, et c'est assez efficace car l'execution est rapide.

à plus
0
farouk_ch Messages postés 12 Date d'inscription jeudi 22 mars 2007 Statut Membre Dernière intervention 20 février 2009
23 mars 2007 à 08:31
Voici une méthode plus simple, plus rapide et plus sure :



Il s’agi de créer dans MS Access une table qui sera alimentée automatiquement et à tout moment par les données existantes sur la feuille de calcul xls.



-Ouvrez le fichier Access et cliquez sur Tables.



-Clique droit dans la zone des tables (au dessous de Créer une table en entrant des données).<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>





-Cliquez sur Lier les tables.



-Sélectionnez le fichier xls source et cliquez sur Attacher.



-Suivez l’assistant d’attache pour sélectionner la plage des données à lier dans le fichier xls.




Rq : Une modification des données dans le fichier xls entraîne immédiatement et automatiquement cette modification dans la table Access liée, et réciproquement.
Bon courage
0
alio25 Messages postés 14 Date d'inscription jeudi 15 mars 2007 Statut Membre Dernière intervention 30 avril 2007
23 mars 2007 à 17:26
Salut
est ce que avec l'une ou l'autre des methodes on peut gerer (mieux encore modifier) le format d'un champ de la table importer???
car j'ai un problème avec une colonne de ma table: les donnees à plus de 15 chiffres ne sont pas pris en compte (ce sont des num de phone).
y a t il un moyen pour arranger ça ???

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_taikibaybay Messages postés 46 Date d'inscription mercredi 1 mars 2006 Statut Membre Dernière intervention 25 décembre 2007
23 mars 2007 à 22:54
[auteurdetail.aspx?ID=1007235 salut ]

[auteurdetail.aspx?ID=1007235

]alio25
ben c ca oui c la meme chose, mais je verifie plus de detaille.; tu travaille sur access, alors que mon code fonctione depuis VB.net

mais cette methode n est pas efficace pour changer le type des detailles. meme moi je suis actuellement sur le changement des données importer par excel ne VB.net, je veux faire la meme chose que access quand il imports les données sur un datagridview pour changer les données avant imports des données. alors on se tiens au courant si tu trouve une solution correct, je ferai de meme, a plus

salut [auteurdetail.aspx?ID=1013099 farouk_ch] 
oui mais c des imports ponctuelle dont on a besoi, le fichier ne sera pas toujours la , et en plus moi je travail sur un projet dont je ne connais pas encore sur quel type de base de donnée le clients va travailler, alors je doit trouver une solution qui marche autant avec access que SQL server et oracle. mais ton astuce elle est pas mal pour ceux qui travaille sur access.
0
alio25 Messages postés 14 Date d'inscription jeudi 15 mars 2007 Statut Membre Dernière intervention 30 avril 2007
26 mars 2007 à 18:36
Salut taikibaybay ,
mon problème est résolu; j'ai utilisé la fonction CDec(monDouble) et il me prend en compte toutes mes valeurs. à l'aide de cette fonction, je convertis mes valeurs doubles( j'avais des valeurs comme " 3,30022199596325E+15" qui n'étaient pas prises en compte) et toutes les valeurs de la colonne sont maintenant prises en comptes.

Donnes détails sur ton pb
0
Rejoignez-nous