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 :

Enregistrer dans 2 tables access des donnees excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 186
    Points : 61
    Points
    61
    Par défaut
    Bonjour
    j aimerai enregistrer (envoyer ) des donnees excel dans des tables Access .
    Avec une seule table access pas de probleme , j´arrive a envoye des donness excel vers access.
    Mais mon problem est que je veux enregistrer ces donnees excel dans differente tables access (2 tables).Ce que je n´arrive pas a faire..
    Quelqu´un aura t-il une idee .. merci

    voivi le code pour une seule table
    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
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
     
    Private Sub AjoutDansTableAccess(NomTable As String)
     
         Dim ConnectBD As Object
         Dim Rs As Object
         Dim AppExcel As Object
         Dim Classeur As Object
         Dim Feuille As Object
         Dim I As Integer
         Dim j As Integer
     
         MyPath = ActiveWorkbook.Path
     
         Application.StatusBar = "Ouverture du classeur Excel contenant les données à exporter ..."
     
         ' Déclaration de référence d'objet à une variable
     
         Set AppExcel = CreateObject("Excel.Application")
     
         Set Classeur = AppExcel.Workbooks.Open(MyPath & "\Prototype mafeuilleexcel.xls")
     
         Set Feuille = Classeur.Worksheets("mafeuill1")   'Adapter le nom de la feuille
     
         'Connection à la base Accesse
     
         ConnecterBase ConnectBD, Rs
     
         'Inscrit les valeurs de la feuille Excel dans la table ListeClients
     
    With Rs
     
              .CursorType = 1
     
              .LockType = 3
     
              .Open "SELECT * FROM  tab_access1 ", ConnectBD
     
     
              'Ajout des enregistrements situés à partir de
     
              ' la ligne 2 afin d'éviter les entêtes de colonnes
     
              For I = 4 To Feuille.Range("A65536").End(-4162).Row
                   .AddNew
                   .Fields("nom") = Feuille.Cells(I, 3)
     
                   .Fields("prenom") = Feuille.Cells(I, 3)
     
                   .fields("ville") = Feuille.Cells(9, 12)
     
                   .Fields("Team ") = Feuille.Cells(9, 3)
                            .Update
                                Next I
    End With
     
         Application.StatusBar = "cool"
     
         ConnectBD.Close
         Classeur.Close
     
         AppExcel.Quit
     
         ' Met fin à l'association entre la variable et l'objet associé
         Set AppExcel = Nothing
         Set Classeur = Nothing
         Set Feuille = Nothing
         Set ConnectBD = Nothing
         Set Rs = Nothing
    end .... 
    'module connecterbase...
    Voila , les valeurs "nom" et "prenom" vont dans table access "tab_access1" et les valeurs "ville" et "team" vont dans une autre table "tab-access2"
    ce que je n´y arrive pas ..

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 354
    Points
    34 354
    Par défaut
    bonjour,
    peut être est-il plus simple de passer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i =1 to 4
    db.execute "INSERT INTO Table1 (champ1,champ2) VALUES (" & cells(i,3).value & ", & cells(i,4).value & ")"
    next i
    non ?

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 186
    Points : 61
    Points
    61
    Par défaut
    Citation Envoyé par jpcheck Voir le message
    bonjour,
    peut être est-il plus simple de passer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i =1 to 4
    db.execute "INSERT INTO Table1 (champ1,champ2) VALUES (" & cells(i,3).value & ", & cells(i,4).value & ")"
    next i
    non ?
    Merci de votre reponse , mais je ne le vois pas comment faire (inserer) ce bout de code .Pourriez vous un peu plus m´orienter pou que j´essaye votre code ?
    merci

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 354
    Points
    34 354
    Par défaut
    re,
    alors dans mon cas ici Db est la database
    le code en question se situe dans l'évènement qui doit déclencher la recopie des tables excels dans access.

  5. #5
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 186
    Points : 61
    Points
    61
    Par défaut
    Citation Envoyé par jpcheck Voir le message
    re,
    alors dans mon cas ici Db est la database
    le code en question se situe dans l'évènement qui doit déclencher la recopie des tables excels dans access.
    je viens de faire un essai avec une new table access et feuille excel :
    voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Dim db As DAO.database
    Set db = DBEngine.OpenDatabase(ThisWorkbook.Path & "\essai.mdb")
     
    db.Execute "INSERT INTO tab_personne(Nom,Prenom) VALUES (" & Cells(2, 2).Value & ", " & Cells(3, 2).Value & ")"
     
     
    Set db = Nothing
     
    db.Close
    il me dit qu´il a peu de parametre et donne l´erreur :etant donner que mes cellules " b2 et b3 " on des données
    merci

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 354
    Points
    34 354
    Par défaut
    attention, si nom et prenom dans ta table sont des varchar, il faut mettre des simple quote ' avant et après, id est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT... '" & cells(1,1).value & "','" & cells(2,2).value & "'

  7. #7
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 186
    Points : 61
    Points
    61
    Par défaut
    Citation Envoyé par jpcheck Voir le message
    attention, si nom et prenom dans ta table sont des varchar, il faut mettre des simple quote ' avant et après, id est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT... '" & cells(1,1).value & "','" & cells(2,2).value & "'

    merci c´etait cela le probleme , c´est nettement plus simple que l´autre methode et encore plus facile a maitriser ....
    merci encore Jpcheck !!!

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/02/2015, 15h20
  2. [XL-2010] Existence d'une valeur dans une table Access (VBA sous Excel)
    Par kail_tak dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/10/2013, 23h02
  3. Problème d'enregistrement dans une table Access
    Par sebbonard dans le forum VB.NET
    Réponses: 5
    Dernier message: 30/10/2012, 22h01
  4. Classer des enregistrements dans une table Access
    Par midasios dans le forum VBA Access
    Réponses: 7
    Dernier message: 20/05/2008, 20h57
  5. Réponses: 4
    Dernier message: 10/12/2006, 16h47

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