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 :

Mettre à jour une Zone De Liste [AC-2016]


Sujet :

Access

  1. #1
    Candidat au Club
    Homme Profil pro
    Kinésithérapeute
    Inscrit en
    Septembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Kinésithérapeute
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2016
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Mettre à jour une Zone De Liste
    Bonsoir,

    Tout d'abord je m'excuse si mon problème est très simple à résoudre, et encore plus si la réponse était facile à trouver via la fonction rechercher...

    Je travaille sur un projet nécessitant beaucoup de mises à jour instantanée (J'entends par là, sans utiliser le bouton "actualiser tout"). J'ai bien compris le principe du Requery et du chemin à lui faire parcourir, malheureusement, j'ai beaucoup de mal à le "placer".

    Mon problème actuel est le suivant :

    Un bouton a pour fonction de sortir un enregistrement d'une zone de liste, via une macro incorporée activant une requête de mise à jour en cas de click. Malheureusement, je ne peux plus y rajouter un code VBA pour actualiser la zone de liste concernée...

    J'ai bien essayé de convertir ma macro en VBA, mais visiblement access ne veut pas (peut-être à cause d'une condition "Si EstNull(MaZoneDeListe) Message" Sinon ExecuterRequeteMAJ).

    Je suis à votre écoute,
    Merci d'avance,

    Robin

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    Il n'y a plus d'action "Actualiser" sur 2016 ? Normalement dans les macros cette action permet d'actualiser un contrôle.

    Cordialement.
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  3. #3
    Candidat au Club
    Homme Profil pro
    Kinésithérapeute
    Inscrit en
    Septembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Kinésithérapeute
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2016
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    Lorsque dans ma macro je sélectionne la commande "Actualiser", en cas d'application, une fenêtre s'affiche :

    La commande ou l'action "Actualiser" n'est pas disponible pour l'instant.
    *Vous êtes peut-être dans un base de donnée en lecture seule, ou une base de données non converties d'une version antérieure à Microsoft Access.
    *Le type d'objet auquel s'applique l'action n'est pas sélectionné actuellement ou ne se trouve pas dans le mode activé.

    Edit : Même chose avec la commande "ActualiserEnregistrement", même si je ne la trouvais pas adaptée.
    Je ne pense pas mal intégrer cet événement dans ma macro (à la suite de l’événement ouvrir la requête de mise à jour)...

    Merci de ta réponse

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Donc, je pense que même la commande VBA "Requery" ne te donnerait pas la solution.
    Il doit y avoir un problème de chronologie d'évènements dans ce que tu fais.

    Peut-on voir la suite d'actions en question ? Et le code de la requête suppression (qui est appelée j'imagine).

    Cordialement.
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  5. #5
    Candidat au Club
    Homme Profil pro
    Kinésithérapeute
    Inscrit en
    Septembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Kinésithérapeute
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2016
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Si j'enlève ma Macro Incorporée et que je mets le code VBA avec Me.[ListePatientsDesactives].Requery, ça fonctionne parfaitement... Mais je n'ai plus l'ouverture de ma requête, ni ma vérification de patient sélectionné dans la liste.

    Ma macro donne :

    Si EstNull([ListePatientsDesactives])
    Zone Message

    Sinon
    Ouvrir Requête (ReactiverPatient, affichage en feuille de donnée, Mode données : Modification)

    C'est tout, mais je ne peux pas la convertir en VBA, l'option est grisée...
    Edit : Voilà ma requête de mise à jour. Nom : RequeteActiverPatient.png
Affichages : 1010
Taille : 12,6 Ko

  6. #6
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    Voici une solution pour modifier ton macro incorporé en VBA : http://www.developpez.net/forums/d14...ro-incorporee/

    Sinon, ton code en VBA ressemblerait à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    If IsNull(Me.[ListePatientsDesactives])
         MsgBox ("Ton message!")
    Else
         Docmd.OpenQuery ("ReactiverPatient")
    'ou directement en SQL
         strSql =  "UPDATE BasePatients SET Actif = Yes WHERE RefPatient=" & Me.ListePatientsDesactives 'Si RefPatient est numérique
         strSql =  "UPDATE BasePatients SET Actif = Yes WHERE RefPatient='" & Me.ListePatientsDesactives  & "'" 'Si RefPatient est du string
         Currentdb.Execute strSql,DbFailOnError
    End If
    Me.ListePatientsDesactives.Requery
    Cordialement.
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  7. #7
    Candidat au Club
    Homme Profil pro
    Kinésithérapeute
    Inscrit en
    Septembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Kinésithérapeute
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2016
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Eh bien Madefemere ! Un grand merci à toi, car plus qu'une solution, tu m'en as donné deux !

    Je vais essayer la manipulation du post que tu me recommandes, mais je pense aussi m'intéresser un minimum au code VBA que tu m'as fourni, même si certains éléments me sonnent inconnus !

    Edit : Après avoir essayer, les deux méthodes fonctionnent parfaitement. J'ai donc envie de mettre des Requery pour tous mes autres ZoneDeListe, mais elles sont dans un autre formulaire, le formulaire Accueil. Je pense qu'il faut que j'oublie le "Me.Requery" pour m'orienté sur le chemin "Accueil.Requery" mais il me manque sûrement l'expression exacte afin de pouvoir mettre le focus sur le bon formulaire... Même chose que précédemment, les termes que j'emploie dans ma recherche n'aboutissent pas ! Promis, après cette question, je mets ce topic en "résolu" !

  8. #8
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Content pour toi !

    Le mot Me fait référence à l'objet en cours, en l'occurrence le formulaire où se trouve ton code.
    Pour faire référence à des contrôles dans un autre formulaire, il faut utiliser l'appel des containers d'objets de formulaire Forms!. Tu as donc Forms!Accueil.Lecontrole.

    Cordialement.
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  9. #9
    Candidat au Club
    Homme Profil pro
    Kinésithérapeute
    Inscrit en
    Septembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Kinésithérapeute
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2016
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Encore merci !

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

Discussions similaires

  1. [AC-2003] mettre a jour toutes les valeurs d'un colonne dans une zone de liste
    Par yieiyiei dans le forum VBA Access
    Réponses: 1
    Dernier message: 29/04/2015, 21h41
  2. Réponses: 3
    Dernier message: 17/01/2011, 18h14
  3. Mettre du code pour mettre à jour une zone
    Par AgriPhilou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/06/2008, 13h25
  4. mettre à jour une zone de liste deroulante ?
    Par jessy212 dans le forum Access
    Réponses: 2
    Dernier message: 30/08/2006, 14h50
  5. impossible de mettre à jour une liste déroulante
    Par nicolovitch dans le forum Access
    Réponses: 3
    Dernier message: 02/08/2006, 11h31

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