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 :

Existence d'une valeur dans une table Access (VBA sous Excel)


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Existence d'une valeur dans une table Access (VBA sous Excel)
    Bonjour à vous tous,


    Voilà j'ai réalisé une macro d'export de données d'Excel vers une table Access et le problème c'est que je ne sais pas comment faire pour rajouter une condition.

    Cette condition consiste à vérifier si la valeur existe déjà dans ma table Access pour éviter d'exporter la donnée en double et en sachant que sur ma table Access le champs est en doublons.

    je vous mets le code que j'ai réalisé sous Excel :



    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
    41
    42
    43
    Sub Paramètres()
     
    Dim cn As New ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim r As Long
     
        Chemin = ActiveWorkbook.Path
        Application.CutCopyMode = True
        Dim tak As String
        tak = "Data Source= D:\Partage_Tak\BDS_Access_finale\bd_sondages_tests.mdb;" & _
                            "Jet OLEDB:Database Password=MyPwd"
        cn.Provider = "Microsoft.Jet.OLEDB.4.0"
        cn.Open tak
     
        Set rs = New ADODB.Recordset
        rs.Open "[Paramètres]", cn, adOpenKeyset, adLockOptimistic, adCmdTable
     
        r = 2
     
        Do While Len(Range("A" & r).Formula) > 0
     
            With rs
     
                .AddNew
                .Fields("N_Sondage") = Range("A" & r).Value
                .Fields("Profondeur") = Range("B" & r).Value
                .Fields("VIA") = Range("C" & r).Value
                .Fields("PO") = Range("D" & r).Value
                .Fields("PI") = Range("E" & r).Value
                .Fields("PR") = Range("F" & r).Value
                .Update
     
     
         End With
     
            r = r + 1
        Loop
     
        rs.Close
        Set rs = Nothing
        cn.Close
        Set cn = Nothing
    End sub
    Merci pour votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut Bonsoir,
    pourquoi ne pas passer par un table temporaire?
    tu importe dans une table Temp et ensuite tu insert
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    Delete Temp.* from Temp;
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
     rs.Open "[TEMP]", cn, adOpenKeyset, adLockOptimistic, adCmdTable
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO TableDef ( ID )
    SELECT Temp.ID
    FROM Temp LEFT JOIN TableDef ON Temp.ID = TableDef.ID
    WHERE TableDef.ID Is Null;

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  2. Réponses: 8
    Dernier message: 28/11/2011, 11h40
  3. quand je selectionne une valeur dans une liste, retourne une autre valeur
    Par nsqualli dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/12/2008, 14h23
  4. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48
  5. Réponses: 1
    Dernier message: 25/09/2006, 17h15

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