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

VBA Access Discussion :

Importation Excel dans Access (pb de coupure des données en fonction version office ?)


Sujet :

VBA Access

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2013
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services à domicile

    Informations forums :
    Inscription : Décembre 2013
    Messages : 150
    Points : 98
    Points
    98
    Par défaut Importation Excel dans Access (pb de coupure des données en fonction version office ?)
    Bonjour à tous,

    Je développe en access 2007, et mon client utilise le runtime 2007.
    J'ai développé une application et l'administrateur peut récupérer le contenu d'un fichier excel dans Access.
    J'ai utilisé la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "T_BPUExcel", NomFicherChoisi, True
    Les données Excel vont donc dans la table T_BPUExcel dont 2 champs sont définis en "mémo"

    Jusqu'à maintenant, tout allait bien:
    - les champs longs dans Excel se retrouvaient longs (sans coupure) dans le champ mémo correspondant de T_BPUExcel

    Et récemment, mon client a fait une mise à jour de sa version office: il a installé office365 sur ses postes.
    Par contre, je pense qu'il utilise toujours le runtime qui est installé aussi sur ses postes.
    Et depuis, j'ai l'impression que le TransferSpreadsheet tronque les champs mémo (il coupe après 256 caracteres).

    Avez vous une idée de ce qui peut se passer ?
    Merci pour vos idées

  2. #2
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Salut
    Le problème est connu.
    Peut-être un début de piste ici ou .
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2013
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services à domicile

    Informations forums :
    Inscription : Décembre 2013
    Messages : 150
    Points : 98
    Points
    98
    Par défaut
    Citation Envoyé par hyperion13 Voir le message
    Salut
    Le problème est connu.
    Peut-être un début de piste ici ou .
    Merci @hyperion13 pour ta réponse.
    J'ai bien lu les posts cités. J'ai compris que l'importation ne marche pas toujours en fonctions des données (si pas de chaine longue en début de fichier).

    Ce qui est bizarre, c'est que je remarque que:
    - avec office 2007 installé sur mon ordi, ça marche
    - chez mon client, quand il n'avait pas office 368, ça marchait
    - et maintenant qu'il a office 365, ça ne marche plus (on utilise le même fichier Excel en import)

    Y a t il un lien avec office 365 ou non ?
    Merci

  4. #4
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 419
    Points : 2 178
    Points
    2 178
    Par défaut
    bonjour,
    comme un onglet Excel n'a pas de typage de données c'est Access qui si colle et qui défini le typage!

    je t'invites à tromper Access en lui insérant une ligne inutile!

    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
    16
    17
    18
    19
    20
    21
    22
    23
    Sub test()
    NomFicherChoisi = "C:\MyRep\Classeur1.xlsx"
    With CreateObject("Excel.Application")
        .Visible = True
        With .workbooks.Open(NomFicherChoisi)
            With .sheets("T_BPUExcel")
                .Rows("2:2").Insert Shift:=-4121, CopyOrigin:=0
                .Range("A2").Value = String(500, "@")
            End With
            .Save
            .Close
        End With
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "T_BPUExcel", NomFicherChoisi, True
        With .workbooks.Open(NomFicherChoisi)
            With .sheets("T_BPUExcel")
               .Rows("2:2").Delete Shift:=-4162
            End With
            .Save
            .Close
        End With
        .Quit
    End With
    End Sub

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2013
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services à domicile

    Informations forums :
    Inscription : Décembre 2013
    Messages : 150
    Points : 98
    Points
    98
    Par défaut
    Bonjour @Thumb down
    Si j'ai bien compris, par vba, tu crées une donnée (500 caractères) en début de fichier et tu l'enlève après l'import.
    Mais, y a t il un rapport avec office 365 installé sur le poste

  6. #6
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 419
    Points : 2 178
    Points
    2 178
    Par défaut
    Bonjour,
    C'est lier aux fait que les colonne Excel ne sont pas types et que CDO,mais pour Ado c'est pareil, interprète sur 8 lignes d'apprentissage le type. Plus de 255 mémo moins char(255).

    Il est possible que 365 ne valide que 1,2 ou 3/ 8 lignes mais çà ne change pas grand choses !

    Maintenant difficile d'être formel sur les version CDO!

    Ragardes maintenant ton fichier aux vues de ses explications.

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2013
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services à domicile

    Informations forums :
    Inscription : Décembre 2013
    Messages : 150
    Points : 98
    Points
    98
    Par défaut
    Ok, merci pour les infos.
    Ce que je vais faire, c'est ajouter une première ligne 'bidon' avec les 2 champs mémo > 256 caractères et tester.
    Je devrai faire ça chez mon client.
    Dès que j'ai réalisé le test, je reviens vers vous pour vous dire quelque chose.

    Bonne journée

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/07/2019, 21h11
  2. Importer excel dans access en VB6
    Par MatAllwhite dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 26/03/2013, 11h33
  3. import excel dans Access
    Par mmanta1 dans le forum Access
    Réponses: 2
    Dernier message: 05/08/2008, 15h59
  4. [Automation]pb import excel dans access
    Par zeloutre dans le forum VBA Access
    Réponses: 2
    Dernier message: 13/04/2007, 11h16
  5. problème d'importation excel dans access
    Par Badboy62cfp dans le forum Access
    Réponses: 6
    Dernier message: 09/05/2006, 16h17

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