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 :

Remplir un formulaire access à partir d'excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 2
    Par défaut Remplir un formulaire access à partir d'excel
    Bonjour, je suis actuellement en train de programmer une interface simple pour permettre à des utilisateurs d'envoyer des données d'excel dans une base de données access.
    Les données excel sont des sorties d'autres programmes et les utilisateurs doivent actuellemen ressaisir à la main ces données excel dans l'interface access, ce qui réprésente une grosse perte de temps.


    J'arrive à envoyer sans problème ces données initiales dans les tables de données access. Le problème est que lorqu'on saisi normalement ces champs dans les formulaires access, d'autres valeurs se calculent alors automatiquement (procédure événementiel des formulaires access).

    Pour résoudre ce problème, je pensais ouvrir plutôt les formulaires access au lieu des tables et compléter par macro vba excel, les différents champs du formulaire pour que les procédures événementiels soient activées

    Le problème, est que je en sais pas comment réaliser cela.

    Si quelqu'un à une solution à ce problème, je lui en serais reconnaissant

    Remarque : Je ne peux absolument pas toucher à la base de données access (pas les droits pour y toucher) et suis donc obligé si je veux pouvoir faire queluqechose de passer par excel

  2. #2
    Membre éclairé Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 464
    Par défaut
    Bonjour, Voici un début de solution :

    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
    Sub Test()
     
    Dim AccApp As Object 'Access.Application
     
    Set AccApp = CreateObject("Access.Application")
     
    'Ouvrir la base de données
    AccApp.OpenCurrentDatabase "C:\TaBaseAcc.mdb"  'Remplace par le chemin exact
     
    'Exécuter la macro
    AccApp.Run "TaMacro"  ' Remplace par le nom de la procedure
     
    'Fermer la base de données
    AccApp.CloseCurrentDatabase
     
    'Libérer les ressources
    Set AccApp = Nothing
     
    End Sub

  3. #3
    Expert confirmé
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Par défaut
    Hello,

    il me paraît plus simple et plus sage de travailler directement sur les données et pas sur l'application Access.
    Pour cela utilise DAO, exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Const serverDB As String = "\\Panoramix\lugdunum$\ActualDataLoad\CommentsDB.mdb"
    ici un code pour insérer dans données dans une base Access depuis 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
    Dim dbEng As Object
    Dim db As Object
    Dim rs As Object
     
    Set dbEng = CreateObject("DAO.DBEngine.36")
    Set db = dbEng.Workspaces(0).OpenDatabase(serverDB)
    Set rs = db.openrecordset("tblEvents", 2)
    rs.movelast
    rs.movelast
    rs.addnew
        rs!dat = Now
        rs!Comment = Me.txtComment
        rs!Login = Environ("username")
        rs!acc = Me.cmbPL
        rs!org = Me.cmbOrga
        rs!tim = Me.cmbMois
        rs!pha = Me.cmbPhase
    rs.Update
     
    Set rs = Nothing
    Set db = Nothing
    Set dbEng = Nothing

  4. #4
    Membre éclairé Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 464
    Par défaut
    Bonjour Caféine,


    Quand vous dites
    il me paraît plus simple et plus sage de travailler directement sur les données et pas sur l'application Access
    Qu'est ce que vous entendez par là ?

    Quels sont les risques encourus en travaillant sur l'application?

    Merci d'avance.

  5. #5
    Expert confirmé
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Par défaut
    Hello CasaVBA,

    En travaillant sur une instance d'Access par Automation on risque des plantages, de saturer la mémoire, des temps d'accès plus longs.
    En travaillant directement sur les données on utilise une bibliothèque spécialisée et optimisée pour ça (DAO) moins gourmande en ressources et qui offre plus de contrôle.
    Certains cas nécessitent néanmoins l'utilisation d'Access, mais à mon sens il convient d'en limiter le recours.

  6. #6
    Membre éclairé Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 464
    Par défaut
    Ok, je suis d'accord.

    Mais dans le cas, où on est amené à exécuter une macro Access, depuis Excel; je crois qu'on est obligé d'utiliser l'application. N'est ce pas vrai ??

Discussions similaires

  1. Réponses: 15
    Dernier message: 28/03/2008, 10h55
  2. Ouverture d'une Bd Access à partir d'excel
    Par ft035580 dans le forum Access
    Réponses: 12
    Dernier message: 06/10/2006, 16h22
  3. [VBA-E]ouverture d'access à partir de EXCEL
    Par Igloobel dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/08/2006, 12h40
  4. Réponses: 12
    Dernier message: 28/03/2006, 11h54
  5. [C#] remplir un formulaire a partir d'un dataGrid
    Par leycho dans le forum Windows Forms
    Réponses: 2
    Dernier message: 14/02/2006, 01h12

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