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 :

Mise à jour d'un contrôle indépendant


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2015
    Messages : 4
    Par défaut Mise à jour d'un contrôle indépendant
    Bonjour,
    J'ai un sous-formulaire qui permet de lister et modifier des enregistrements d'une table. Dans ce sous-formulaire il y a aussi un contrôle indépendant. A l'affichage du formulaire les champs liés à la table source se remplissent correctement. Ensuite un bout de code VBA essaye de remplir le contrôle indépendant dans chacun des enregistrements du sous-formulaire en fonction d'un champ du recordset (via un recordset, movenext et un requery). En pas à pas, je vois bien qu'à chaque boucle, j'affecte la bonne valeur au contrôle, mais quand la boucle est terminée le contrôle de tous les enregistrements à la valeur du dernier qui a été renseigné par le code VBA.
    Quelqu'un a une idée ?
    Merci

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Bonjour,

    C'est une attrape classique (et très énervante) dans les formulaires en mode continu.

    Pour une raison que je ne connais pas Access n'a qu'une seule "image" de la ligne pour les champs indépendants donc toute modification faite sur une des lignes se reportent sur toutes les autres.

    La seule solution que je connaisse consiste à déplacer le calcul du champ indépendant vers la source de données.
    Il suffit donc de créer un champ calculé dans la requête et d'afficher ce champ.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2015
    Messages : 4
    Par défaut
    Ok, merci.
    Dans la source d'un champ calculé, je peux mettre un select avec un critère sur une autre table ?

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2015
    Messages : 4
    Par défaut
    Il y a un petit souci, je n'avais pas précisé que le contrôle indépendant est une liste déroulante. Il y a donc déja une requête pour son contenu. Ce que je veux, c'est forcer le contrôle à pointer sur la ligne correspondant à la valeur d'un champ de l'enregistrement.
    Le contrôle indépendant permet de sélectionner, ou d'afficher pour un enregistrement existant une liste de catégories. Un des champs dépendants du sous-formulaire affiche une prestation qui fait partie de la catégorie du premier contrôle.
    J'espère que je suis clair.
    Merci de votre aide.

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Dans la source d'un champ calculé, je peux mettre un select avec un critère sur une autre table ?
    Tu peux sans doute mais personnellement j'utilise Dfirst().

    Le contrôle indépendant permet de sélectionner, ou d'afficher pour un enregistrement existant une liste de catégories.
    Pourquoi Est-ce un champ indépendant ? Il n'est pas enregistré ? Il ne se base pas sur un champ de la source ?

    Si il est relié à un champ de la source, ne pas en faire un contrôle indépendant, juste mettre le nom du champ source comme source de données et le tour devrait être joué.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2015
    Messages : 4
    Par défaut
    Je vais essayer d'être clair :
    J'ai des types prestations, stockés dans une table contenant un compteur auto (la clé) et l'intitulé du type de prestation.
    J'ai des prestations, stockées dans une autre table contenant un compteur auto, l'intitulé de la prestation et l'identificateur du type de prestation à laquelle elle appartient.
    J'ai des devis stockés dans une table contenant, entre autres, un compteur auto, et l'identificateur de la prestation.
    Dans mon formulaire, j'ai une liste déroulante pour le type de prestation (le fameux contrôle indépendant), une liste déroulante pour la prestation et des contrôles pour les autres champs.
    Quand j'édite un devis existant, je veux afficher les prestations et leur type de prestation, que je retrouve grâce à leur identificateur pêché dans la table des prestations.
    Pour ajouter des lignes, ou modifier des lignes existantes, je veux le faire en changeant la valeur des listes déroulantes.
    Pour me simplifier la vie, j'ai essayé de stocker l'identificateur du type de prestation dans les devis, bien qu'il soit redondant avec la prestation. Là, ça a été pire, le sous-formulaire ne s'affiche carrément pas, sans indiquer d'erreur. Un problème de référence circulaire, ou je ne sais quoi.
    J'ai l'impression que c'est une utilisation basique d'access, et que, donc, soit je fais une grosse bourde dans mon formulaire, soit ma structure de données est foireuse. Si c'est le cas, je suis prêt à en changer.
    Merci.

Discussions similaires

  1. Mise à jour d' un contrôle indépendant
    Par adelsunwind dans le forum IHM
    Réponses: 12
    Dernier message: 21/10/2008, 17h10
  2. mise à jour d' un contrôle indépendant
    Par adelsunwind dans le forum IHM
    Réponses: 2
    Dernier message: 25/09/2008, 16h25
  3. mise à jour d'un contrôle calculé
    Par BizutAccess dans le forum IHM
    Réponses: 2
    Dernier message: 10/03/2008, 22h31
  4. Réponses: 5
    Dernier message: 17/11/2007, 11h51
  5. Comment empêcher la mise à jour d'un contrôle à l'écran ?
    Par JojoLaFripouille dans le forum Composants VCL
    Réponses: 4
    Dernier message: 19/09/2003, 12h52

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