IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Importer un fichier dbf


Sujet :

Access

  1. #1
    Membre régulier
    Inscrit en
    Septembre 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 148
    Points : 103
    Points
    103
    Par défaut Importer un fichier dbf
    Bonjour à tous et bonne année
    Voila mon probleme : je recupere des fichiers dbf que j'importe sur access afin de generer des tables sur lesquelles je fais des requetes et autres...
    Sur certains fichiers l'importation se fait sans probleme mais pour deux fichiers voici l'erreur qu'on me donne : La table externe n'est pas dans le format attendu. (Erreur 3274). Voici une partie de mon code si ça peut aider...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    Private Sub btnCreerArticle_Click()
    Dim NomFichier As String
    NomFichier = Dir("U:\reptest\stat\")
    If NomFichier = "" Then
        MsgBox "Le fichier stat est introuvable !", vbExclamation, "Erreur"
        Exit Sub
    Else
        DoCmd.TransferDatabase acImport, "dBase III", "U:\reptest\stat", acTable, "stat", "T_Stat", False
        DoCmd.TransferDatabase acImport, "dBase III", "U:\reptest\stat", acTable, "EURF5FAR", "T_Famille_Article", False
        DoCmd.TransferDatabase acImport, "dBase III", "U:\reptest\stat\", acTable, "eurg5cli", "T_lolo", False
        MsgBox "c fé!"
    End If
     
    End Sub
    Les fichiers sont bien dans les repertoires et le probleme (qui a lieu pour les 2 derniers transferts) se produit meme quand j'essaie un transfert à la fois
    J'ai effectué des recherches sur le forum mais je n'ai pas trouvé ce type d'erreur ni la reponse à ma question donc si quelqu'un a la solution...
    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 660
    Points : 14 642
    Points
    14 642
    Par défaut Re: Importer un fichier dbf
    Bonsoir,
    Citation Envoyé par podz
    Sur certains fichiers l'importation se fait sans probleme mais pour deux fichiers voici l'erreur qu'on me donne : La table externe n'est pas dans le format attendu. (Erreur 3274).
    Tu importes au format dbase III :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.TransferDatabase acImport, "dBase III", "U:\reptest\stat\", acTable, "eurg5cli", "T_lolo", False
    Le message d'erreur fait référence au format de ta table externe, donc soit ton fichier est corrompu ou n'est pas un fichier dBase, ou alors il est au format dBase IV ou dBase 5.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Membre régulier
    Inscrit en
    Septembre 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 148
    Points : 103
    Points
    103
    Par défaut
    bonjour,
    Mes 2 fichiers semblent bien etre des fichiers dbf. Le problème reste le même quand j'essaie au format IV ou 5. J'ai même changé le nom du fichier ou en creer une copie mais rien n'y fait, le transfert ne fonctionne pas (toujours la même erreur)

    Voici exactement ce que me donne l'aide de l'erreur :
    La table externe n'est pas dans le format attendu. (Erreur 3274)
    Le format de la table a changé depuis qu'elle a été attachée. Vous devez attacher la table à nouveau, puis recommencez l'opération.
    Si quelqu'un sait comment on fait ce type d'operation...

    J'ai pensé à une derniere chose, les 2 fichiers que je recupere sont issues d'un autre logiciel qui les genere. Moi je les ai copié de leur repertoire d'origine à mon repertoire de test. Cela aurait il un lien avec l'erreur?

    Merci de votre aide

  4. #4
    Membre régulier
    Inscrit en
    Septembre 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 148
    Points : 103
    Points
    103
    Par défaut
    Je pense avoir trouvé la source du probleme : les fichiers avaient été copiés du repertoire d'origine et collés ds mon repertoire de travail. Le fait de les "enregistrer sous" me permet maintenant d'effectuer le transfert sans probleme de type de fichier ou de fichier liéé. Il faut maintenant que je puisse le rendre automatique avec vba...

  5. #5
    Membre régulier
    Inscrit en
    Septembre 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 148
    Points : 103
    Points
    103
    Par défaut
    Bonjour à tous
    Je reviens avec ce sujet que j'avais plus ou moins délaissé ( 1 an dejà...).
    J'ai quand même bien bossé depuis car mon application tourne sur le serveur mais je n'ai pas résolu ce probleme de transfert de fichier dbf. En effet je suis tjrs obligé de les ouvrir un par un et de faire enregistrer sous et ainsi mon importation de table peut se faire sans probleme. Donc j'aimerai automatisé tout ça afin d'avoir une mise à jour quotidienne de mes tables.
    Ce que je ne comprends pas, c'est que j'arrive à récuperer un fichier dbf ayant les memes propriétés que ceux la et par le vba, je créé ma table de travail sans soucis (tout en sachant qu'ils sont sur le meme serveur).
    Je voudrais savoir si qq'un a deja rencontré ce probleme.
    Merci d'avance
    Podz

  6. #6
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    slt,

    j'ai déjà eu un pb de format avec des fichiers dbf venant de visual foxpro

    impossible de lire les tables en spécifiant le format dBase, quelque soit la version de dBase demandée

    par contre en ODBC avec le driver visuel foxpro ça passait

    et toi c'est quoi, des fichiers Foxpro?

  7. #7
    Membre régulier
    Inscrit en
    Septembre 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 148
    Points : 103
    Points
    103
    Par défaut
    slt
    Non c des fichiers dbf issus d'un logiciel de gestion de production appelé Business développé par Business SOFT (comptabilité, données commerciales...).
    J'ai mis en place une tache planifiée pr cette nuit afin de voir si je peux copier mon fichier dbf ds mon repertoire de travail et ensuite faire son importation a partir de cette copie. J'en saurai plus demain car pr le moment je ne peux tjrs pas le copier sur mon disque a partir de la commande FileCopy (message permission refusée). C'est bizarre car qd je vais ds le repertoire pr le copier/coller ça marche tres bien mais c'est apres qd je fais l'importation que je rencontre le probleme evoqué ds mes posts précedents.
    Podz

  8. #8
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    tu ne peux pas copier le fichier avec FileCopy s'il est en cours d'utilisation par l'autre logiciel
    il faut utiliser un objet FileScripting (y a des messages qui en parle sur le forum)

    et c'est peut-être bien ça ton problème, peut-être qu'il ne reconnaît pas le fichier parce qu'il est en cours d'utilisation

  9. #9
    Membre régulier
    Inscrit en
    Septembre 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 148
    Points : 103
    Points
    103
    Par défaut
    Salut
    Je vais faire des recherches alors...
    Je me doutai bien que FileCopy ne pouvait fonctionner quand des utilisateurs étaient connectés au logiciel donc j'ai fait le test cette nuit avec une tache planifiée. Résultat : la copie s'est bien passée mais l'importation a planté.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.TransferDatabase acImport, "dBase III", "P:\test_GPAO_Bastien\test_maj\", acTable, "EURF5FAR", "T_FAMAR160206", False
    Ce n'est pas une question de format dbf car ça ne marche pas non plus pr du dBase IV ou 5.0.
    Voici le message d'erreur lors du transfert : La table externe n'est pas dans le format attendu. (Erreur 3274)
    Podz

  10. #10
    Membre régulier
    Inscrit en
    Septembre 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 148
    Points : 103
    Points
    103
    Par défaut
    Bonjour
    Je reviens avec mon probleme car je n'ai toujours pas trouvé de solution pour effectuer le transfert de fichier. Il faut que je passe chaque matin par un "Enregistrer sous" de chaque fichier pour pouvoir ensuite les importer dans ma dorsale.
    Pour ce qui est du FileScripting conseillé par Arkham46, je n'ai pas trouvé grand chose et je ne sais pas vraiment si ça pourrait réellement m'aider...
    Podz

  11. #11
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    slt,

    pour la copie d'un fichier en cours d'utilisation c'est l'objet FileSystemObject de la libraire Microsoft Scripting Runtime

    Y a aussi l'API CopyFile qui fonctionne je crois...

    Mais ça ça ne permet que de faire une copie du fichier dbf, si le problème est bien l'impossibilité de faire l'import sur un fichier en cours d'utilisation alors ça peut servir pour faire une copie du fichier à chaud puis importer cette copie.

    Sinon je ne vois pas le problème, peut-être ton "Enregistrer sous" modifie le format de la table?

  12. #12
    Membre régulier
    Inscrit en
    Septembre 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 148
    Points : 103
    Points
    103
    Par défaut
    Salut Arkham
    Citation Envoyé par Arkham46
    slt,

    pour la copie d'un fichier en cours d'utilisation c'est l'objet FileSystemObject de la libraire Microsoft Scripting Runtime

    Y a aussi l'API CopyFile qui fonctionne je crois...

    Mais ça ça ne permet que de faire une copie du fichier dbf, si le problème est bien l'impossibilité de faire l'import sur un fichier en cours d'utilisation alors ça peut servir pour faire une copie du fichier à chaud puis importer cette copie.?
    Merci pour ces conseils, je sais maintenant que j'aurai la possibilité de copier mes fichiers meme qd ils sont en cours d'utilisation avec l'autre logiciel.

    Sinon je ne vois pas le problème, peut-être ton "Enregistrer sous" modifie le format de la table?
    Je n'ai pas l'impression que ça modifie le format du fichier. Je l'ouvre betement et je fais "enregistrer sous" avec le meme nom ou un nom différent (pas de message particulier) et à partir de là, je peux effectuer mon importation sans probleme à partir de ce fichier.
    Podz

  13. #13
    Membre régulier
    Inscrit en
    Septembre 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 148
    Points : 103
    Points
    103
    Par défaut
    Bonjour,
    Je reviens vous voir apres avoir effectué plusieurs tests afin de pouvoir régler mon probleme d'importation de fichier dbf et bien sur pas le moindre avancement
    Comme je l'ai deja dit et répété, je dois copier le fichier dbf situé sur le serveur dans un de mes répertoires, l'ouvrir (j'utilise openOffice), faire enregistrer sous et là j'obtiens un fichier dbf que je peux importer : j'obtiens pour cela 2 fichiers appelés EURF5FAR.DBF (mon nouveau fichier dbf) et EURF5FAR.DBT (fichier mémo). NB : j'ai remarqué que sans ce fichier mémo, je ne pouvais pas réaliser l'importation dans ma base access que ce soit par le code ou en manuel.

    Ensuite j'ai eu l'idée de copier ce nouveau fichier dbf à la place de celui utilisé par le logiciel et ainsi voir si ce dernier fonctionnait correctement pr pouvoir automatisé mon importation... Fallait pas réver , lors de l'ouverture du logiciel message d'erreur concernant le fichier fpt lié à mon fichier dbf.

    Pour le moment je suis pas encore tout a fait desespéré car je vais essayer de copier mon nouveau fichier dbf avec le fichier fpt qui se génere automatiquement lors de l'ouverture du dernier et voir si ça peut marcher...

    Dans le cas ou ça n'irai toujours pas (j'y crois plus ), je voulais savoir comment m'y prendre afin de régler ce soucis. Est ce possible de lancer un programme (de n'importe quel type) afin d'automatiser la procédure que je réalise tous les matins c'est à dire :
    1. copier le fichier dbf sur mon poste
    2. l'ouvrir avec le logiciel adapté
    3. enregistrer sous
    4. réaliser l'importation
    Les étapes 1,2 et 4 semble réalisables avec access mais quand est-il pour l'étape 3. Si quelqu'un voit comment faire, j'attends ces conseils avec impatience...
    De plus si quelqu'un s'y connait dans ce type d'extension de fichier (fpt et autre dbt) et peut me conseiller,
    Merci d'avance
    Podz

  14. #14
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Humm ça ressemble à du FoxPro 2.5...
    Ton problème vient certainement en fait de champ mémo dans la table à importer...
    FoxPro ne gère pas les champs mémos dans la table DBF mais dans un fichier externe qui porte le même nom que la table avec une extension *.FPT.
    Du fait que ces derniers n'ont pas de limite de taille, contrairement aux 64Ko d'un champ mémo MSAccess, MSAccess ne sait les interpréter...

    Mais pour d'autres tables, ça marche très bien ne serait qu'avec le type "DBase III"...
    => Prend une simple table qui ne possède pas ce type de champ et tu la lieras (ou l'importera) sans difficultés...

    La solution ?
    J'ai été en plein dedans justement ces derniers jours, j'ai cherché longtemps aussi...

    Solution 1 : Si tes DBF sont figés et ne depassent pas 65536 lignes, tu peux les ouvrir dans Excel via OLE Automation et les enregistrer en DBIII ou DBIV avec un nom de fichier fixe dans un répertoire ciblé... Access aura alors certaines des ces tables liées sur celles-ci et ce dynamiquement.

    Solution 2 : Avec ODBC, tu peux lier tes tables directement avec un DSN construit avec une driver Microsoft FoxPro Driver (*.dbf) soit VFPODBC.DLL mais le problème c'est que l'accès est méga long si tes bases sont sur un serveur distant... Problème inhérant à Access en fait
    Tu peux construire dynamiquement un DSN.

    Bon courage
    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

Discussions similaires

  1. Import un fichier DBF avec SQL*LOADER
    Par bentmoh dans le forum SQL*Loader
    Réponses: 1
    Dernier message: 13/05/2009, 10h29
  2. importation des fichier dbf a une base oracle 9i
    Par sws2008 dans le forum Accès aux données
    Réponses: 17
    Dernier message: 26/11/2008, 18h21
  3. Importer un fichier .DBF
    Par benjaminalvarez dans le forum VBA Access
    Réponses: 7
    Dernier message: 12/04/2008, 12h30
  4. [Lazarus] Fonction d'import/export fichier DBF
    Par sverdo dans le forum Lazarus
    Réponses: 1
    Dernier message: 10/09/2007, 14h34
  5. Réponses: 2
    Dernier message: 12/07/2006, 16h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo