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 :

Appel d'une procédure Access [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 705
    Par défaut Appel d'une procédure Access
    Bonjour!

    Voici le contexte:
    Depuis une procédure dans mon classeur Excel, j'appelle une procédure écrite dans Access. Code Excel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub updateAccess()
    '**** Method that calls method from Access to update table ****
     
        Dim acApp As Access.Application
        Set acApp = New Access.Application
        acApp.OpenCurrentDatabase ("K:\Database\SP7LOG01 Masterdata.accdb") 'open access database
        acApp.Run ("createNewTable")    'call Access method
        acApp.CloseCurrentDatabase  'close DB
        Set acApp = Nothing
     
        MsgBox "Database updated."
    End Sub
    Code Access :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Function createNewTable()
    '**** Main function called by excel to update the table ****
     
        DoCmd.RunSavedImportExport ("New Import")   'import the new data
        DoCmd.SetWarnings False
        DoCmd.RunSQL "DELETE * FROM [SAP New] WHERE Material IS NULL"   'in case there are some empty records in the new table, we delete them
        DoCmd.SetWarnings True
        Call updateTable
        CurrentDb.Execute ("DROP TABLE [SAP New]")  'delete table with imported data
     
    End Function
    Les deux documents (Excel et Access) sont sur un réseau. Je m'y connais pas très bien en réseau, mais en gros, comme je pense dans toutes les entreprises, on a un réseau avec plus ou moins d'accès à certains documents. Les documents sont sur un ordi auquel j'ai accès grâce au réseau.

    Et voici le problème:
    Quand je teste la procédure Excel sur mon ordi, tout marche très bien! Par contre, un collègue a essayé sur son ordi (qui a accès au même réseau) et, il reçoit le message d'erreur suivant : "Erreur 40351. La méthode Run de Application a échoué" (traduction du néerlandais, alors je ne garantie pas que ce soit la formulation française exacte).
    Auriez-vous une idée de pourquoi ce message d'erreur apparaît?

    Ce que j'ai déjà testé:
    • Ajouter le nom du classeur avant le nom de la macro.
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      acApp.Run ("'SP7LOG01 Masterdata.accdb'!createNewTable") 'au lieu de :
      acApp.Run ("createNewTable")
      Là, ça ne marche même plus chez moi J'ai un message d'erreur : "Microsoft Access ne trouve pas la procédure ...."
    • Faire un Sub plutôt qu'une Function dans Access. Pas de changement.


    Merci d'avance pour votre aide !

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 440
    Par défaut
    Bonjour,
    Il est possible que sur le pc où cela ne fonctionne pas, Access n'a pas été activé avec l'option "Activer toutes les macros" (dans le Centre de gestion de la confidentialité).
    Bonne continuation.

  3. #3
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 705
    Par défaut
    Bonjour,
    Merci pour cette réponse.
    J'ai revu mon collègue aujourd'hui et voici ce qu'il me dit "en fait, j'avais pas installé Access sur mon ordi...".

  4. #4
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut


  5. #5
    Invité
    Invité(e)
    Par défaut
    si tu avais utilisé ADODB tu n'aurais pas besoin d'Access installé sur ta machine pour traiter ta macro!

    là ou tu aurais été embêté c'est pour vérifier le résultat!

    je m’associe à Marc!

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

Discussions similaires

  1. [AC-2016] Appel d'une procédure dans Access avec plus de 30 arguments
    Par riaolle dans le forum VBA Access
    Réponses: 2
    Dernier message: 02/02/2017, 15h44
  2. Réponses: 1
    Dernier message: 05/07/2015, 18h05
  3. [D 2005]MAJ ADOStoredProc connecté à une procédure Access
    Par Argonz dans le forum Bases de données
    Réponses: 1
    Dernier message: 16/03/2005, 18h08
  4. Réponses: 2
    Dernier message: 10/12/2004, 15h43
  5. Appel d'une procédure stockée par un vbscript
    Par NicoNours dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/10/2004, 13h53

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