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

VBA Discussion :

Création d'une base access en vba


Sujet :

VBA

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Création d'une base access en vba
    Bonjour à tous,

    Je suis nouveau sur le forum

    Je le suivais de loin, mais un problème se pose à moi et donc je rejoins votre communauté. Je tacherai d'être également actif si je connais la réponse aux autres questions qui se posent

    Voila, je me débrouille en vba quand ca reste dans le cadre d'excel. Mais je dois aujourd'hui passer à VBA + Excel + Access pour le boulot...

    J'ai bcp cherché sur le web sans retour, à part un petit truc qui pourrait m'aiguiller, mais je préfere m'en remettre à la sagesse des membres de développez.

    Le probleme est simple, j'aimerais grâce à VBA :

    -Créer une nouvelle base Access
    -Ajouter dans cette base la copie conforme d'une feuille Excel (le nom de la feuille représenterait le nom d'une table).

    J'ai trouvé un truc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set db = DBEngine.CreateDatabase("c:\mabase.mdb", dbLangGeneral)
    Mais il se trouve que ca ne marche pas....

    Si vous avez la réponse à ma question, je vous remercie !

    Jean-Paul

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 80
    Points : 74
    Points
    74
    Par défaut au boulot
    Bonjour,

    Cela peut être assez compliqué mais il faut d'abord évaluer toutes les possibilités.
    • En premier Access sait faire de l'import de fichier Excel, cela peut simplifier le travail
    • ensuite toujours dans Access il existe un driver ODBC pour Excel qui permet de lire le contenu d'une feuille Excel sans faire un import.
    • Enfin si ton besoin est de créer une table alors il va falloir choisir entre la méthode Jet et la méthode ADODB.

    En effet le moteur access dispose de sa propre interface de programmation (Jet) qui est légèrement différente d'ADODB en particulier sur la création de table.
    Pour la dernière méthode il faudra choisir entre l'utilisation du langage SQL ou celui des objets et de leurs méthodes.

    Avec les objets ADODB le principes est de partir d'une connection, puis créer des champs dans une collection adaptées et de faire la création finale de la table. On part du détail pour aller vers le général.

    Voila pour dégrossir le boulot,
    Salutations

  3. #3
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Salut.

    Il faudrait déjà préciser en quoi cela ne fonctionne pas. Message d'erreur? Lequel? sur quelle ligne?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 80
    Points : 74
    Points
    74
    Par défaut naif
    Bonjour,

    Le createDatabase ne fait que créer un container pour des tables, la difficulté c'est ensuite de créer des tables, non ?

    Salutations

  5. #5
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Bien sûr.

    Après,tu as plusieurs solutions (au moins deux)

    1. importer les feuilles des classeurs en "automatique". Les tables se créeront alors automatiquement

    2. Créer les tables par code (avec les champs bien typés et tout le toutim,...) puis y importer les données.

    Il faudrait préciser ce que tu souhaites réaliser, car créer une base Access par code n'est pas simple. Il faut penser aux contraintes de champs, à l'intégrité référentielle, aux liaisons. Souvent, les tables "principales" s'appuient sur des tables secondaires via des listes déroulantes.

    Si c'est pour un transfert "one shot", c'est un peu lourd...

    Peux-tu préciser ce que tu souhaites réaliser?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 80
    Points : 74
    Points
    74
    Par défaut hi
    Je crois que vbadev ne suit pas vraiment notre échange

Discussions similaires

  1. ouvrir une base access via vba
    Par moimemessssssssss dans le forum Macros Access
    Réponses: 7
    Dernier message: 08/01/2015, 21h53
  2. [XL-2010] Connexion à une base Access via VBA Excel
    Par Alaedjens dans le forum Excel
    Réponses: 2
    Dernier message: 17/01/2014, 10h57
  3. [AC-2003] Copie de sauvegarde d'une base Access via VBA
    Par CC25 dans le forum VBA Access
    Réponses: 4
    Dernier message: 22/04/2010, 20h06
  4. Créer une base access en vba
    Par Access Newbie dans le forum Access
    Réponses: 3
    Dernier message: 10/08/2007, 11h30
  5. [VB.NET] création d'une table dans une base access
    Par smedini dans le forum Accès aux données
    Réponses: 1
    Dernier message: 31/12/2005, 11h53

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