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 :

Problème de guillemets import Excel Access [AC-2003]


Sujet :

VBA Access

  1. #1
    Expert confirmé Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 288
    Par défaut Problème de guillemets import Excel Access
    Bonsoir tout le monde,

    J'utilise cette méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        Dim i As Integer
        Dim oApp As Excel.Application
        Dim oWkb As Excel.Workbook
        Dim oWSht As Excel.Worksheet
        Dim SqlStr As String
     
        Set oApp = CreateObject("excel.application")
        Set oWkb = oApp.Workbooks.Open("C:\Documents and Settings\UserName\Bureau\Dossier\fichier.xls")
        Set oWSht = oWkb.Worksheets("Sheet1")
    pour importer dans une table temporaire des données d'une feuille de calculs d'Excel.

    Malheureusement, certaines cellules d'un même colonne de cette feuille de calculs contiennent des chaines de caractères contenant des guillemets et bien entendu Access refuse d'importer les données.

    Est-il possible, sans ouvrir le classeur Excel, de remplacer ces guillemets par un espace ?

    Merci d'avance.

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 610
    Billets dans le blog
    67
    Par défaut
    Salut,

    Tu as essayé avec la fonction Replace ?

    A+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  3. #3
    Expert confirmé Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 288
    Par défaut
    Bonsoir User,

    J'ai essayé la fonction Replace() mais inutile dans mon cas, car Access refuse d'importer les lignes de ma feuille de calculs dont une cellule contient des guillemets.

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 610
    Billets dans le blog
    67
    Par défaut
    Re,

    Peux-tu donner la totalité du code que tu utilises actuellement pour l'import dans ta table ?

    Merci !
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  5. #5
    Expert confirmé Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 288
    Par défaut
    Voici le code que j'utilise
    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
        Dim i As Integer
        Dim oApp As Excel.Application
        Dim oWkb As Excel.Workbook
        Dim oWSht As Excel.Worksheet
        Dim SqlStr As String
     
        Set oApp = CreateObject("excel.application")
        Set oWkb = oApp.Workbooks.Open("C:\Documents and Settings\UserName\Bureau\Dossier\fichier.xls")
        Set oWSht = oWkb.Worksheets("Sheet1")
        i = 2
        DoCmd.SetWarnings False
        While oWSht.Range("I" & i).Value <> ""
        SqlStr = "INSERT INTO [T_IMPORT_DATACENTER] ( [Ch0], [Ch1], [Ch2], [Ch3], [Ch4], [Ch5], [Ch6], [Ch7], [Ch8], [Ch9], [Ch10], ... , [Ch15] ) "
        SqlStr = SqlStr & "VALUES (" & Chr(34) & oWSht.Cells(i, 1) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 2) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 3) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 4) & Chr(34) & ", ... , " & Chr(34) & oWSht.Cells(i, 25) & Chr(34) & ");"
        DoCmd.RunSQL SqlStr
        i = i + 1
        Wend
    Pour information, si j'importe manuellement mes données d'Excel, il n'y a aucun problème, je récupère tout. Par contre avec ce code, il n'importe pas les lignes dont les cellules contiennent des guillemets.

  6. #6
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 610
    Billets dans le blog
    67
    Par défaut
    et l'erreur se produit sur le :

    ?
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  7. #7
    Expert confirmé Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 288
    Par défaut
    Comment fait-on pour vérifier que l'erreur se produit sur le ?

  8. #8
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 610
    Billets dans le blog
    67
    Par défaut
    Pour la fonction replace voila ce que je comptais faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    While oWSht.Range("I" & i).Value <> ""
        SqlStr = "INSERT INTO [T_IMPORT_DATACENTER] ( [Ch0], [Ch1], [Ch2], [Ch3], [Ch4], [Ch5], [Ch6], [Ch7], [Ch8], [Ch9], [Ch10], ... , [Ch15] ) "
        SqlStr = SqlStr & "VALUES (" & Chr(34) & Replace(oWSht.Cells(i, 1), Chr(34), " ") & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 2) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 3) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 4) & Chr(34) & ", ... , " & Chr(34) & oWSht.Cells(i, 25) & Chr(34) & ");"
        DoCmd.RunSQL SqlStr
        i = i + 1
        Wend
    Le changement est en rouge et il faudrait le faire pour toutes les valeurs...

    A+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  9. #9
    Expert confirmé Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 288
    Par défaut
    Denis,

    Tout simplement génial.

    Merci beaucoup.

  10. #10
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 610
    Billets dans le blog
    67
    Par défaut
    De rien,

    J'avais déjà vu cette manip sur le forum
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2010] Importation Excel -> Access, problème violation de clé
    Par oplaut dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 22/01/2013, 17h08
  2. Réponses: 6
    Dernier message: 13/07/2006, 12h33
  3. Importation Excel -> Access
    Par WDev10 dans le forum Access
    Réponses: 2
    Dernier message: 12/07/2006, 13h19
  4. Bug avec l'assistant d'importation: Excel--> Access
    Par Tatoine dans le forum Access
    Réponses: 4
    Dernier message: 30/06/2006, 10h07
  5. Problème de syntaxe importation Excel
    Par evans dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 13/04/2006, 18h02

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