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

Access Discussion :

[VBA Access & Excel] automatisation d'import


Sujet :

Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 289
    Par défaut [VBA Access & Excel] automatisation d'import
    J’ai des actions répétitives à effectuer, c’est pour cela que je dois faire un programme VBA.

    Le programme doit importer des classeurs Excel qui se trouvent dans le disque dur C (à l’adresse C:\dossier ) et ensuite les importer dans Access (en renommant les feuille de données DEPDATA_DEPVALAN) puis les rentrer dans la base de données via 3 programmes SQL qui doivent être éxécutées à la suite.



    Ce sont les suivants :

    Le programme 1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO dbo_DEPDATA ( IDFAMILLE01, IDFAMILLE02, IDSOURCES, IDPUBLI, CODEDEP, DEPDATALIBEL, DEPVARIABLE, DEPDATAMEMO, ADEP, TDEP, MDEP, IDSCONTACTS, IDIMPORT, FLAG, SERIECODE )
    SELECT DEPDATA_DEPVALAN.IDFAMILLE01, DEPDATA_DEPVALAN.IDFAMILLE02, DEPDATA_DEPVALAN.IDSOURCES, DEPDATA_DEPVALAN.IDPUBLI, DEPDATA_DEPVALAN.CODEDEP, DEPDATA_DEPVALAN.DEPDATALIBEL, DEPDATA_DEPVALAN.DEPVARIABLE, DEPDATA_DEPVALAN.DEPDATAMEMO, DEPDATA_DEPVALAN.ADEP, DEPDATA_DEPVALAN.TDEP, DEPDATA_DEPVALAN.MDEP, DEPDATA_DEPVALAN.IDSCONTACTS, DEPDATA_DEPVALAN.IDIMPORT_DEPDATA, DEPDATA_DEPVALAN.FLAG_DEPDATA, DEPDATA_DEPVALAN.SERIECODE
    FROM DEPDATA_DEPVALAN
    GROUP BY DEPDATA_DEPVALAN.IDFAMILLE01, DEPDATA_DEPVALAN.IDFAMILLE02, DEPDATA_DEPVALAN.IDSOURCES, DEPDATA_DEPVALAN.IDPUBLI, DEPDATA_DEPVALAN.CODEDEP, DEPDATA_DEPVALAN.DEPDATALIBEL, DEPDATA_DEPVALAN.DEPVARIABLE, DEPDATA_DEPVALAN.DEPDATAMEMO, DEPDATA_DEPVALAN.ADEP, DEPDATA_DEPVALAN.TDEP, DEPDATA_DEPVALAN.MDEP, DEPDATA_DEPVALAN.IDSCONTACTS, DEPDATA_DEPVALAN.IDIMPORT_DEPDATA, DEPDATA_DEPVALAN.FLAG_DEPDATA, DEPDATA_DEPVALAN.SERIECODE;
    Le programme 2 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE dbo_DEPDATA INNER JOIN DEPDATA_DEPVALAN ON (dbo_DEPDATA.CODEDEP = DEPDATA_DEPVALAN.CODEDEP) AND (dbo_DEPDATA.DEPDATALIBEL = DEPDATA_DEPVALAN.DEPDATALIBEL) SET DEPDATA_DEPVALAN.IDDEPDATA = dbo_depdata.iddepdata;
    Le programme 3 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO dbo_DEPVALAN ( IDDEPDATA, DEPVALANNEEA, DEPDATAAN, DEPVARAN1, DEPVARAN2, IDIMPORT, FLAG )
    SELECT DEPDATA_DEPVALAN.IDDEPDATA, DEPDATA_DEPVALAN.DEPVALANNEEA, DEPDATA_DEPVALAN.DEPDATAAN, DEPDATA_DEPVALAN.DEPVARAN1, DEPDATA_DEPVALAN.DEPVARAN2, DEPDATA_DEPVALAN.IMPORT_DEPVALAN AS Expr1, DEPDATA_DEPVALAN.FLAG_DEPVALAN
    FROM DEPDATA_DEPVALAN
    GROUP BY DEPDATA_DEPVALAN.IDDEPDATA, DEPDATA_DEPVALAN.DEPVALANNEEA, DEPDATA_DEPVALAN.DEPDATAAN, DEPDATA_DEPVALAN.DEPVARAN1, DEPDATA_DEPVALAN.DEPVARAN2, DEPDATA_DEPVALAN.IMPORT_DEPVALAN, DEPDATA_DEPVALAN.FLAG_DEPVALAN;

    Vue les programmes, on remarque bien que lors de l’import sous Access, les feuilles de données devront être nommées DEPDATA_DEPVALAN.

    Voila ceux que j’ai rédiger avec des choses qui j’ai lu – je sais bien c’est pas bon c’est pourquoi j’ai besoin d’un coup de main 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
    Sub prog_vba()
     
    DoCmd.SetWarnings False
     
    For each workbook in ?
     
     
     
    DoCmd.RunSQL “INSERT INTO dbo_DEPDATA ( IDFAMILLE01, IDFAMILLE02, IDSOURCES, IDPUBLI, CODEDEP, DEPDATALIBEL, DEPVARIABLE, DEPDATAMEMO, ADEP, TDEP, MDEP, IDSCONTACTS, IDIMPORT, FLAG, SERIECODE )
    SELECT DEPDATA_DEPVALAN.IDFAMILLE01, DEPDATA_DEPVALAN.IDFAMILLE02, DEPDATA_DEPVALAN.IDSOURCES, DEPDATA_DEPVALAN.IDPUBLI, DEPDATA_DEPVALAN.CODEDEP, DEPDATA_DEPVALAN.DEPDATALIBEL, DEPDATA_DEPVALAN.DEPVARIABLE, DEPDATA_DEPVALAN.DEPDATAMEMO, DEPDATA_DEPVALAN.ADEP, DEPDATA_DEPVALAN.TDEP, DEPDATA_DEPVALAN.MDEP, DEPDATA_DEPVALAN.IDSCONTACTS, DEPDATA_DEPVALAN.IDIMPORT_DEPDATA, DEPDATA_DEPVALAN.FLAG_DEPDATA, DEPDATA_DEPVALAN.SERIECODE
    FROM DEPDATA_DEPVALAN
    GROUP BY DEPDATA_DEPVALAN.IDFAMILLE01, DEPDATA_DEPVALAN.IDFAMILLE02, DEPDATA_DEPVALAN.IDSOURCES, DEPDATA_DEPVALAN.IDPUBLI, DEPDATA_DEPVALAN.CODEDEP, DEPDATA_DEPVALAN.DEPDATALIBEL, DEPDATA_DEPVALAN.DEPVARIABLE, DEPDATA_DEPVALAN.DEPDATAMEMO, DEPDATA_DEPVALAN.ADEP, DEPDATA_DEPVALAN.TDEP, DEPDATA_DEPVALAN.MDEP, DEPDATA_DEPVALAN.IDSCONTACTS, DEPDATA_DEPVALAN.IDIMPORT_DEPDATA, DEPDATA_DEPVALAN.FLAG_DEPDATA, DEPDATA_DEPVALAN.SERIECODE;”
     
    DoCmd.RunSQL “UPDATE dbo_DEPDATA INNER JOIN DEPDATA_DEPVALAN ON (dbo_DEPDATA.CODEDEP = DEPDATA_DEPVALAN.CODEDEP) AND (dbo_DEPDATA.DEPDATALIBEL = DEPDATA_DEPVALAN.DEPDATALIBEL) SET DEPDATA_DEPVALAN.IDDEPDATA = dbo_depdata.iddepdata;”
     
     
    DoCmd.RunSQL “INSERT INTO dbo_DEPVALAN ( IDDEPDATA, DEPVALANNEEA, DEPDATAAN, DEPVARAN1, DEPVARAN2, IDIMPORT, FLAG )
    SELECT DEPDATA_DEPVALAN.IDDEPDATA, DEPDATA_DEPVALAN.DEPVALANNEEA, DEPDATA_DEPVALAN.DEPDATAAN, DEPDATA_DEPVALAN.DEPVARAN1, DEPDATA_DEPVALAN.DEPVARAN2, DEPDATA_DEPVALAN.IMPORT_DEPVALAN AS Expr1, DEPDATA_DEPVALAN.FLAG_DEPVALAN
    FROM DEPDATA_DEPVALAN
    GROUP BY DEPDATA_DEPVALAN.IDDEPDATA, DEPDATA_DEPVALAN.DEPVALANNEEA, DEPDATA_DEPVALAN.DEPDATAAN, DEPDATA_DEPVALAN.DEPVARAN1, DEPDATA_DEPVALAN.DEPVARAN2, DEPDATA_DEPVALAN.IMPORT_DEPVALAN, DEPDATA_DEPVALAN.FLAG_DEPVALAN;”
     
     
    Next
     
    DoCmd.SetWarnings True
     
    End sub
    merci de votre aide, ash.

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 289
    Par défaut résumé 1
    en fait, le premier de mes problemes est de faire un programme vba dans l'application hôte Access qui prenne une feuille excel et le mette dans access en la renommant DEPDATA_DEPVALAN.

    voir les image aussi - merci de m'aider.

    ash.

Discussions similaires

  1. [AC-2010] Formule matricielle lancée depuis VBA access vers excel
    Par debdev dans le forum VBA Access
    Réponses: 3
    Dernier message: 02/07/2013, 09h49
  2. Probleme VBA access somme Excel
    Par darkspoilt dans le forum VBA Access
    Réponses: 3
    Dernier message: 11/05/2007, 11h35
  3. [VBA Excel] Importer des tables Access dans Excel
    Par loacast dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 06/12/2005, 12h44

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