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 :

Créer une macro pour mise à jour de critère dans plusieurs requêtes


Sujet :

Access

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Créer une macro pour mise à jour de critère dans plusieurs requêtes
    Bonjour,

    je souhaite créer une macro qui va me permettre de modifier un critère (restriction de date) dans plusieurs requêtes.
    le hic est que je n'ai jamais utilisé le mode macro dans access (2002 sp3).
    le but serait d'avoir une box qui s'ouvre au lancement de la macro du genre :"date ? : ............." et qu'une fois remplie je n'ai plus qu'à cliquer sur "ok" pour que le critère soit changé dans mes diverses requêtes.

    j'espère avoir été clair sur ma demande, si ça n'est pas le cas, n'hésitez pas à me demander plus de détails.

    Merci d'avance pour vos réponses.

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 600
    Points
    24 600
    Par défaut
    Bonjour,

    Le problème de la macro c'est qu'elle ne sait pas stocker de valeur, se sera donc difficile de programmer une telle fonctionnalité.

    Je verrai plutot une petite procedure VBA.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Membre régulier Avatar de Jordmund
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2006
    Messages : 181
    Points : 118
    Points
    118
    Par défaut
    Pour ouvrir la box il y a l'instruction InputBox

    Pour le reste (mise à jour requete) il faut passer par de la programmation, mais y a plus simple.

    Tu peux faire formulaire paramètres ou tu spécifies ton critère, et celui ci sera appellé par ta requète.

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    tu peux utliser ces deux fonctions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Function posedate() As Date
    Dim u As Variant
    Do
    u = InputBox("entrez ladate")
    Loop Until IsDate(u)
    posedate = litdate(u)
    End Function
     
    Function litdate(Optional v As Variant) As Date
    Static u As Date
    If Not IsMissing(v) Then u = v
    litdate = u
    End Function

    au premier appel tu définis la valeur aux appels suivants tu la lis
    Elle est pas belle la vie ?

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci de vos réponses
    J'ai utilisé les fonctions proposées par random
    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
    Function posedate() As Date
    Dim u As Variant
    Do
    u = InputBox("entrez la date de début")
    Loop Until IsDate(u)
    posedate = litdate(u)
    End Function
     
    Function litdate(Optional v As Variant) As Date
    Static u As Date
    If Not IsMissing(v) Then u = v
    litdate = u
    End Function
     
    Function posedatefin() As Date
    Dim w As Variant
    Do
    w = InputBox("entrez la date de fin")
    Loop Until IsDate(w)
    posedatefin = litdatefin(w)
    End Function
     
    Function litdatefin(Optional x As Variant) As Date
    Static w As Date
    If Not IsMissing(v) Then w = x
    litdatefin = w
    End Function
    ceci me permet de rentrer une date de début et date de fin dans une des requêtes de ma base.

    mais comment utiliser ces dates dans une autre requête de la même base sans avoir à les entrer à nouveaux ?

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    tout simplement en utilisant litdate()

    par exemple where madate<litdate()
    Elle est pas belle la vie ?

  7. #7
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 600
    Points
    24 600
    Par défaut
    Il faut d'une part copier le code sql de la requete dans le code (une variable texte fait l'affaire) et modifier la partie where pour intégrer la date.

    Regarde le tuto sur le debugage des requetes dans VBA.

    Cordialement,

    EDIT : yes random ! j'y pense jamais...
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  8. #8
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    j'ai rien bité !
    je pense que vous me surestimez.
    quoiqu'il en soit si je rentre le critère : Entre litdate() Et litdatefin(),
    bah... ça marche pas : erreur 13 (incompatibilité de type) apparait aussi sec.
    help me please

  9. #9
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    cela indique que la valeur avec laquelle tu compares litdate() n'est pas une date
    essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT madate,iif(IsDate([madate]),"voilà une date","ici autre chose")  AS dateoupas
    FROM matable;
    Elle est pas belle la vie ?

Discussions similaires

  1. [XL-2010] Créer une macro pour modifier la mise en page
    Par tben08 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/01/2013, 20h51
  2. Créer une macro pour vérifier des prix
    Par lolonico dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/04/2009, 10h54
  3. Corriger une macro de mise à jour
    Par lolonico dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 26/08/2008, 15h41
  4. Réponses: 3
    Dernier message: 06/12/2007, 11h09
  5. Lancement d'une macro après mise à jour d'une cellule
    Par Mukade dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 17/10/2007, 11h52

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