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 :

VBA: Transfert de données d'Excel vers Access [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 74
    Par défaut VBA: Transfert de données d'Excel vers Access
    Bonjour,

    Je tente de transférer des données présentes sur un feuille Excel vers un tableau Access mais je n'arrive pas à m'y retrouver.

    Je souhaiterai que mon programme efface le contenu précédent présent dans la table Access existante pour ensuite remplir avec les données présentes dans Excel.

    J'ai tenté quelque-chose à partir de recherche sur le forum mais ça ne semble pas adapté

    Pourriez-vous m'aider svp ?

    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
     
        Dim cn As ADODB.Connection
        rs As ADODB.Recordset
        r As Long
     
        Set cn = New ADODB.Connection
     
        cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & "Data Source=C:\Users\kguesmia\Documents\Alerte CASSE appro\Casse_appro.accdb;"
     
        Set rs = New ADODB.Recordset
     
        rs.Open "Table1", cn, adOpenKeyset, adLockOptimistic, adCmdTable
     
        r = 2
     
        Do While Len(Range("A" & r).Formula) > 0
     
              With rs
     
                .AddNew 
     
                .Fields("Date jour") = Range("A" & r).Value
     
                .Fields("Base") = Range("B" & r).Value
     
                .Fields("Filiere") = Range("C" & r).Value
     
                .Fields("Cnuf") = Range("D" & r).Value
     
                .Fields("Ean13") = Range("J" & r).Value
     
                .Fields("Itm8") = Range("E" & r).Value
     
                .Fields("Désignation") = Range("G" & r).Value
     
                .Fields("DLC") = Range("M" & r).Value
     
                .Fields("DLV") = Range("N" & r).Value
     
                .Fields("Cdt") = Range("H" & r).Value
     
                .Fields("Upa") = Range("I" & r).Value
     
                .Fields("Date fin de vie") = Range("AC" & r).Value
     
                .Fields("Date casse") = Range("U" & r).Value 
     
              '  .Fields("Nb jrs avt début ct date") = Range("C" & r).Value
     
                .Fields("Colis Stk") = Range("L" & r).Value
     
                .Update 
     
            End With
     
            r = r + 1 
     
        Loop
     
     
        rs.Close

  2. #2
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    A première vu ton code d'insertion à l'air pas mal, bien qu'optimisable

    Pour vider la table, le plus rapide c'est ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cn.Execute "Delete From Table1"
    Ça supprime tous les enregistrements de Table1

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Ton code permet l'ajout de données dans ta table à priori ça ca dont fonctionner non?

    Mais si tu veux supprimer les données de ta table li faut exécuter une requête de suppression avec.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    cn.execute "Dlete from Table1;"
    Édite: Trop tard!

  4. #4
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 74
    Par défaut
    Le souci est des la première ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim cn As ADODB.Connection
    je rencontre l'erreur "Type défini par l'utilisateur non défini"

  5. #5
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim cn As Object,Rs as Object 
    Set cn =CreateObject("ADODB.Connection")
    Connexion..
     
     
     
    Set Rs=CreateObject("Adodb.RecordSet")
    Rs.open Sql,Cn

  6. #6
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Perso je trouve plus propre le rajout de la référence Microsoft ActiveX Data Objects Library

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par cerede2000 Voir le message
    Perso je trouve plus propre le rajout de la référence Microsoft ActiveX Data Objects Library
    les références aux Api ca fout la grouille en fonction des machines sur lesquels le programme tourne!

    Autant que faire ce peut utilises CreateObject!

  8. #8
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 74
    Par défaut
    cerede2000, ca ne fonctionne pas mieux avec Nom : Capture.PNG
Affichages : 523
Taille : 18,9 Ko

    Je vais essayer la méthode d'Rdurupt.

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

Discussions similaires

  1. Transfert de données d'excel vers access
    Par mataw dans le forum VBA Access
    Réponses: 1
    Dernier message: 04/04/2012, 09h04
  2. Import de données de Excel vers Access
    Par kdestine dans le forum VBA Access
    Réponses: 1
    Dernier message: 17/09/2007, 11h48
  3. Importation de données d'Excel vers Access
    Par jolemoine dans le forum Access
    Réponses: 9
    Dernier message: 13/07/2007, 14h56
  4. transfert de donnés de excel vers Mysql
    Par mkachekh dans le forum Outils
    Réponses: 4
    Dernier message: 20/10/2006, 12h08
  5. [VBA-E]Exporter des données d'Excel vers Access
    Par Mut dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/06/2006, 15h57

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