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 :

Limiter les enregistrements


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juin 2008
    Messages : 43
    Points : 22
    Points
    22
    Par défaut Limiter les enregistrements
    Bonjour ,
    Toujours dans le but de réaliser une application pour les association de l'eau potable.
    https://www.developpez.net/forums/d1...ght=LHOUKNIFIS
    et
    https://www.developpez.net/forums/d1...ght=LHOUKNIFIS

    j'ai deux tables liées TBLPolice et TBLReleve avec la cle IdPolice,
    J'ai un formulaire contenant une liste déroulante[IdPolice] et un sous formulaire affichant les relevés selon le choix effectué dans la liste.
    Ce que je voudrait faire :
    - afficher juste un seul enregistrement que je modifie et enregistre chaque fois ou j'ouvre le formulaire.
    - je souhaiterai que le champ [NouvelIndex] de l'enregistrement précédent prenne la valeur du champs [AncienIndex] du nouvel enregistrement.
    j’espère avoir été clair.
    Merci.
    Nom : tables.png
Affichages : 380
Taille : 9,2 Ko
    Nom : formنسخ.png
Affichages : 441
Taille : 27,2 Ko

  2. #2
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Pour que les données correspondantes à l'IdPolice choisi s'affiche dans le sous formulaire, il te suffit de paramétrer les champs Père et Fils du sous Formulaire.
    Pour mettre à jour les champs index, il te faudra passer par du Vba. Ainsi sur l'événement Après Mise à jour du nouvel index, il te faudra programmer une procédure qui génére automatiquement un nouvel enregistrement permettant de stocker le nouvel index dans le champ Ancien index du nouvel enregistrement.

    Bonne continuation
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juin 2008
    Messages : 43
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par Jeannot45 Voir le message


    Pour que les données correspondantes à l'IdPolice choisi s'affiche dans le sous formulaire, il te suffit de paramétrer les champs Père et Fils du sous Formulaire.
    Concernant ceci c'est déja fait et ça marche, il affiche tout les enregistrement.

    Citation Envoyé par Jeannot45 Voir le message
    Pour mettre à jour les champs index, il te faudra passer par du Vba. Ainsi sur l'événement Après Mise à jour du nouvel index, il te faudra programmer une procédure qui génére automatiquement un nouvel enregistrement permettant de stocker le nouvel index dans le champ Ancien index du nouvel enregistrement.
    C'est le code vba que je cherche comment faire?

  4. #4
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Je te joins une base de données à partir de laquelle tu pourras t'inspirer pour ton problème.

    Elle contient
    - deux tables : T_Clients et T_Releves
    - Un formulaire indépendant (F_SaisieIndex) qui affiche une liste déroulante nommée (cboClients) et qui affiche la liste des clients
    - Un sous-formulaire (SF_Index) qui permet de saisir les index de consommation du client

    Les caractéristiques de ce sous-formulaire :
    - Source : une requete basée sur la table T_Releves avec un tri décroissant sur le champ "AncienIndex" (de façon à avoir toujours le dernier enregistrement en première position)
    - Lien champs Père et Fils (Père : cboClient / Fils : CodeClient
    - Entrée des données : Non (En effet, les ajout sont faits par programmation après la saisie du nouvel index

    Fonctionnement : Après avoir choisi un client, le sous formulaire se met à jour et tu peux saisir le nouvel index. Après validation, le nouvel enregistrement s'affiche avec le nouvel index saisi précédemment affiché dans le champ "Ancien Index"

    Bon continuation
    Fichiers attachés Fichiers attachés
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juin 2008
    Messages : 43
    Points : 22
    Points
    22
    Par défaut
    Merci pour ton aide,
    Ce que tu as dit est correcte, et je l'ai déjà réalisé, mes deux questions reste toujours sans réponse:
    1.comment limiter les enregistrements affichés dans le sous formulaire à deux seulement le dernier et le nouvel vide.
    2.Sinon, afficher un seul nouvel vide,dont la valeur du champs [NouvelIndex] du dernier enregistrement sera dans le champs [AncienIndex] du nouvel enregistrement.
    et pour éclaircir plus le sujet voici une base de données exemple; dans cette BD, il y a juste un relevé pour chaque police, pour la prochaine saisie des relevés je veux que le sous formulaire m'affiche le dernier, même s'il y a autant des enregistrements.

  6. #6
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    comment limiter les enregistrements affichés dans le sous formulaire à deux seulement le dernier et le nouvel vide
    Le plus simplement du monde en mettant un critère sur la requête source de ton sous-formulaire : NouvelIndex = 0
    Exemple :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT T_Releves.CodeClient, T_Releves.AncienIndex, T_Releves.NouvelIndex
    FROM T_Releves
    WHERE (((T_Releves.NouvelIndex)=0))

    Remarque : la requête que j'ai ci-dessus correspond à la source du sous-formulaire de la base que je t'ai envoyée précédemment

    Bonne continuation
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juin 2008
    Messages : 43
    Points : 22
    Points
    22
    Par défaut
    Rebonjour,
    merci pour ta réponse,
    Désolé de ne pas avoir envoyé la BD exemple dans la précedente réponse, je reçois cet erreur:Nom : erreur.jpg
Affichages : 382
Taille : 127,2 Ko

    A vrais dire, je ne sais pas ou mettre le code sql que tu m'a envoyé.

  8. #8
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Pour pouvoir joindre ta BD, il faut la compresser soit fichier .rar, soit fichier .zip
    Pour compresser ta BD, tu vas dans l’Explorateur, tu fais un clic droit sur le nom de ton fichier et tu choisis "Envoyer vers", tu trouveras alors la possibilité de faire un fichier compressé.
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juin 2008
    Messages : 43
    Points : 22
    Points
    22
    Par défaut
    Rebonjour
    Désolé pour ce retard,
    Voici le fichier zippe et merci pour ton astuce,
    pour bien expliquer le problème et selon cet exemple que j'ai envoyé, je veux ouvrir cet unique enregistrement et le modifier et après l'enregistrer.(L'historique n'est pas important ici).
    sauf que chaque fois que je l’édit le champs [NouvelIndex] prend la valeur 0, et le champs [AncienIndex] prend la valeur du precedant enregistrement [NouvelIndex]
    J'espère que je sois clair
    et merci
    Fichiers attachés Fichiers attachés

  10. #10
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Je n'ai malheureusement pas réussi à ouvrir ta base. Cependant, j'ai compris ce que tu voulais dire.
    En fait, le nouvel enregistrement disparaissait dès la validation du nouvel Index. Normal, puisqu'il y avait une mise à jour du sous formulaire programmé dans la procédure par l'instruction :

    Je te joins ma base exemple avec la correction, tu pourras ainsi voir la procédure complète et voir l& source du sous-formulaire.

    Bonne continuation
    Fichiers attachés Fichiers attachés
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juin 2008
    Messages : 43
    Points : 22
    Points
    22
    Par défaut
    Je n'ai malheureusement pas réussi à ouvrir ta base.
    Peut être c'est le problème de version si tu utilises une autre version que la mienne en voici d'autres espérant que ça marche:
    2000.rar
    2002_2003.rar
    Cependant j'ai compris ce que tu voulais dire.
    Bravo! c'est ce que je veux exactement.
    Je te joins ma base exemple avec la correction, tu pourras ainsi voir la procédure complète et voir l& source du sous-formulaire.
    Malheureusement j'ai cette erreur.


    Nom : MsgErreur.jpg
Affichages : 329
Taille : 254,2 Ko

  12. #12
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Peut être c'est le problème de version si tu utilises une autre version que la mienne en voici d'autres espérant que ça marche:
    Ce n'est malheureusement pas un problème de version car j'utilise la même que la tienne. Voici ci-dessous ce que j'obtiens lors du décompactage du fichier :
    Nom : Anomalie.jpg
Affichages : 332
Taille : 54,1 Ko

    Cependant, j'ai regardé ma base et je n'ai pas rencontré le problème que tu soulèves.
    J'ai ajouté une procédure qui permet d'ajouter un nouveau client à la liste (Ce qui initialise en même temps un enregistrement à 0 dans la table T_Releves)
    Fichiers attachés Fichiers attachés
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juin 2008
    Messages : 43
    Points : 22
    Points
    22
    Par défaut
    Ce n'est malheureusement pas un problème de version car j'utilise la même que la tienne. Voici ci-dessous ce que j'obtiens lors du décompactage du fichier
    Est ce tu essaye(bouton droit)----->extraire ici, quelquefois ça marche!!

    Cependant, j'ai regardé ma base et je n'ai pas rencontré le problème que tu soulèves.
    J'ai ajouté une procédure qui permet d'ajouter un nouveau client à la liste (Ce qui initialise en même temps un enregistrement à 0 dans la table T_Releves)
    Cette fois ça marche nickel!!!
    Merci infiniment, Voilà ce problème est résolu.
    Comment? J'ai vécu déjà cette situation, mais j'ai oublié, la plupart des problème vient de la :

    Nom : conviction.jpg
Affichages : 345
Taille : 435,1 Ko

  14. #14
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Citation Envoyé par lhouknifis
    Merci infiniment, Voilà ce problème est résolu.
    Alors, maintenant, il faut clôturer la discussion en cliquant sur le bouton placé sous le dernier post de ton fil.

    Merci
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 23/10/2009, 16h09
  2. [AC-2003] Comment limiter les enregistrements dans un état
    Par vandrie dans le forum IHM
    Réponses: 2
    Dernier message: 14/05/2009, 17h27
  3. Limiter les enregistrements d'une liste déroulante
    Par Dafbau dans le forum Access
    Réponses: 3
    Dernier message: 30/11/2006, 20h11
  4. jointure renvois pas tous les enregistrements
    Par rayonx dans le forum Langage SQL
    Réponses: 7
    Dernier message: 29/08/2002, 12h51
  5. Comment limiter les mouvements du curseur??
    Par scorpiwolf dans le forum C++Builder
    Réponses: 9
    Dernier message: 07/07/2002, 22h09

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