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

Macros et VBA Excel Discussion :

INSERT dans ACCESS par macro VBA [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 345
    Par défaut INSERT dans ACCESS par macro VBA
    Bonjour,

    J'essaie de remplir une base de données access à partir de VBA. ça amrche plutôt bien, le seul hic est que l'insert s'arrête dès qu'il rencontre un doublon.

    J'ai plus de 5000 lignes à gérer, j'ai supprimé tous les vrais doublons. Les doublons restants sont principalement dus aux espaces en plus dans certaines cellules et je ne sais pas comment répérer ceux là dans Excel.

    Ma solution est donc de faire en sorte que l'export continue après le doublon. Avez-vous des indications ?

    J'espère me faire comprendre, j'utilise la fonction ci-dessous pour insérer les données dans ma base.

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
     
    Public Function addMultiSourceRef(refsource As Range) As Boolean
    Dim sql As String
     
     
    Dim db As DataBase
    Set db = New DataBase
     
    Dim isOpen As Boolean
    Dim filePath As String
     
    filePath = ActiveWorkbook.Path & "\Dictionary.accdb"
     
    db.Fichier = filePath
    If db.openConnection(DBType.ACCESS_2012) = False Then
        addMultiSourceRef = False
        Exit Function
    End If
     
     
    Dim values As String
     
    Dim a As Range
    For Each a In refsource
        values = "'" & a.Value & "'"
        sql = "INSERT INTO REF_HEADERS ( HEADER ) VALUES (" & values & ")"
        MsgBox sql
        If db.executeSQL(sql) = False Then
            db.closeConnection
            addMultiSourceRef = False
            Exit Function
    End If
    Next
     
    db.closeConnection
     
    addMultiSourceRef = True
     
    End Function
    Merci.

    COrdialement

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjourt,

    pour la parti DAO je te fais confiance, je ne l'utilise pas!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Public Function addMultiSourceRef(refsource As Range) As Boolean
    Dim sql As String, db As DataBase, isOpen As Boolean, filePath As String
    Set db = New DataBase
    filePath = ActiveWorkbook.Path & "\Dictionary.accdb"
    db.Fichier = filePath
    addMultiSourceRef = db.openConnection(DBType.ACCESS_2012): If addMultiSourceRef = False Then Exit Function
    Dim a As Range
    For Each a In refsource
        db.executeSQL "INSERT INTO REF_HEADERS (HEADER) VALUES ('" & Replace(a.Value, "'", "''") & "')"
    Next
    db.closeConnection
    End Function

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 345
    Par défaut
    Citation Envoyé par dysorthographie Voir le message
    Bonjourt,

    pour la parti DAO je te fais confiance, je ne l'utilise pas!

    [/CODE]
    Excellent ! ça fonctionne parfaitement !

    Merci beaucoup

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

Discussions similaires

  1. [XL-2016] Comment mettre un cadre autour d'une photo dans excel par macro VBA
    Par retraite83 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 06/12/2017, 13h29
  2. [AC-2013] Lire une variable d'un fichier Excel dans Access par VBA
    Par FHDLB dans le forum VBA Access
    Réponses: 3
    Dernier message: 05/09/2017, 11h31
  3. Insertion image à l'aide macro VBA dans Word
    Par Loria0 dans le forum VBA Word
    Réponses: 0
    Dernier message: 18/04/2017, 16h07
  4. piloter access depuis macro vba dans excel
    Par debmlc dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 01/04/2007, 13h41
  5. [JDBC] Insertion dans Access auto Increment
    Par sg-40 dans le forum JDBC
    Réponses: 4
    Dernier message: 09/11/2005, 22h14

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