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 Access Discussion :

comment exécuter ma fonction VBA dans Access


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 44
    Points : 22
    Points
    22
    Par défaut comment exécuter ma fonction VBA dans Access
    j’ai fait une petite fonction en vba mais je sais pas comment mettre ma table essemaj à jour en utilisant ma fonction vba, (cette MAJ se fait annuelement)

    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
    Public Function majcdap(cdap As String, cd As Integer, an As Double) As String
           an = an Mod 100
        Select Case cd
        Case 0
            majcdap = cdap
        Case 1
            If cdap = 0 Then
                majcdap = cdap
            Else: majcdap = "0" & an & "," & cdap
            End If
        Case Else
            If cdap = 0 Then
                 majcdap = cd & "." & "0" & an
             Else: majcdap = cd & "." & "0" & an & "," & cdap
             End If
        End Select
    End Function

  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 350
    Points
    34 350
    Par défaut
    bonjour si ta fonction est présente dans un module d'access, tu peux l'incorporer dans une requête en y faisant appel:
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE MaTable SET MonChamps = majcdap('a',1,2);

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 44
    Points : 22
    Points
    22
    Par défaut
    ça me met :
    Fonction 'majcdap' non définie dans l'expression
    c'est normal???

  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 350
    Points
    34 350
    Par défaut
    c'est un exemple, quel est ton code à toi ?
    tu le lances dans un module VBA ou bien dans une requête ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 44
    Points : 22
    Points
    22
    Par défaut
    mon code est dans un module Access et je le lance via une requête SQL ,j'ai fait comme tu m'a dis..... et ça m'affiche ce message d'erreur

  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 350
    Points
    34 350
    Par défaut
    peut-on avoir ce code stp ?

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 44
    Points : 22
    Points
    22
    Par défaut
    il est en haut sur mon premier message

  8. #8
    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 350
    Points
    34 350
    Par défaut
    certes, mais le code de ta requête, comment la lances-tu ? la fonction, je vois de quoi il s'agit, mais la facon dont tu l'appelles m'intéresse maintenant

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 44
    Points : 22
    Points
    22
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE essemaj SET essemaj.[Cols Durs années précéd] = majcdap(cdap,cd,an);

  10. #10
    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 350
    Points
    34 350
    Par défaut
    cdap,cd et an sont des champs de ta table ?

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 44
    Points : 22
    Points
    22
    Par défaut
    "an" n'en ai pas un

  12. #12
    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 350
    Points
    34 350
    Par défaut
    salut,
    donc il faut adapter la requête. Où vas-tu chercher la valeur an alors ?

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 44
    Points : 22
    Points
    22
    Par défaut
    "an" c'est l'année en cours mod 100

  14. #14
    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 350
    Points
    34 350
    Par défaut
    d'accord,
    essaie avec ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE essemaj SET essemaj.[Cols Durs années précéd] = majcdap(cdap,cd,MOD(YEAR(NOW),100));

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 44
    Points : 22
    Points
    22
    Par défaut
    il a pas l'air d'aimer MOD....
    il me met: Erreur de synthaxe (opérateur absent) dans l’expression ‘majcdap(cdap,cd,MOD(YEAR(NOW),100)) ‘.

  16. #16
    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 350
    Points
    34 350
    Par défaut
    pardon, j'ai condonfu l'ordre des parametres
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE essemaj SET essemaj.[Cols Durs années précéd] = majcdap(cdap,cd,YEAR(NOW) MOD 100);

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 44
    Points : 22
    Points
    22
    Par défaut
    ça me remet:
    Fonction 'majcdap' non définie dans l'expression

  18. #18
    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 350
    Points
    34 350
    Par défaut
    hum, excuse moi, mais en relisant les autres posts, j'ai un doute. Ta requête, tu la lances avec le module de la fonction ?

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 44
    Points : 22
    Points
    22
    Par défaut
    j'ai créer un module "majcdap" contenant la fonction"majcdap", et je voudrais mettre a jour les données d'un champ de ma table "essemaj" grace a la fonction

  20. #20
    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 350
    Points
    34 350
    Par défaut
    d'accord.
    tu lances la requêtes depuis le code vba ? ou bien l'interface access ?

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/07/2008, 15h04
  2. Fonction VBA dans requêtes vers Access
    Par Laaris dans le forum R
    Réponses: 5
    Dernier message: 03/07/2008, 11h16
  3. Exécuter un Module VBA dans MS Access
    Par edgar_fun dans le forum MATLAB
    Réponses: 1
    Dernier message: 20/05/2008, 17h34
  4. fonction VBA dans du SQL access
    Par kapotocho dans le forum Requêtes et SQL.
    Réponses: 15
    Dernier message: 18/03/2008, 16h15
  5. Réponses: 5
    Dernier message: 25/01/2008, 11h15

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