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 :

Vérification de prix [AC-2010]


Sujet :

Access

  1. #1
    Membre régulier
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Mai 2012
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2012
    Messages : 173
    Points : 80
    Points
    80
    Par défaut Vérification de prix
    Bonjour,

    Les utilisateurs de la base ACCESS clique sur le prix d’un produit pour la prise de commande.

    La liste des prix contient plusieurs types qui ont des prix différents.

    Exemple :
    Magazine duree prix1 prix2 prix3
    FA 12 nos 10 15 20
    FA 24 nos 20 30 45

    Ils arrivent régulièrement que les utilisateurs cliquent sur le prix1 alors que le choix était prix2

    Prix sont les prix Taxes comprises et chaque province au Canada ont des taxes différentes.

    Sur le formulaire de commande, l’utilisateur choisit la province du client et donc le prix qu’ils choisissent dans la liste devrait être le prix pour l’ONTARIO.

    Je voudrais créer un moyen à la fin de la semaine, un bouton qui afficherait les problèmes sur le prix choisi par rapport à la province du formulaire, pour que les utilisateurs puissent corriger par eux-mêmes.
    Je ne vois pas comment faire pour vérifier les prix avec une requête.

    Table Pub (noRefPub, TitrePublication,...)
    Table TarifPub (NoRefTarif, TitrePublication, Duree, PRIXQC, PRIXON,...)
    Toutes les commandes s'enregistre dans une table COMMANDE (TitrePublication, Duree, PRIX,...)

    Une requête s'affiche sur le formulaire sur TitrePub des 2 premières tables et la liste des prix s'affiche dans un sous-formulaire du formulaire COMMANDE. le sous-formulaire se modifie lorsque l'utilisateur choisit un titre dans une liste déroulante du formulaire principale.

    Je pense créer une requête qui contient toute la liste des titres, durée et prix différents. De faire une analyse par rapport à cette requête, mais en faisant attention à la province du client.

    J'avais réussi à le faire mais lorsque la publication a plusieurs durées, le système voyait qu'il y avait un problème de prix car il analysait que la première ligne du sous-formulaire alors que la durée choisit était en ligne 2. L'analyse ne se faisait que sur la première ligne.

    Merci pour l’aide que vous m’apporterez.

  2. #2
    Expert éminent

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

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Bonsoir,

    Effectivement, tel que présenté, tu as un problème de structure. Je ne vois pas dans les structures des tables que tu présentes la liaison entre la province de ton client et le prix ? Il faut intégrer cela quelque part et que cela soit enregistré. Et même que le filtre lors du choix du prix tienne compte de cela pour éviter l'erreur.

    Cordialement,

  3. #3
    Membre régulier
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Mai 2012
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2012
    Messages : 173
    Points : 80
    Points
    80
    Par défaut
    Bonsoir,

    Le système n'a pas été pensé comme ça au départ... je dois travailler sur l'existant.

    Je suis proche d'une solution surement mais je bloque sur une chose.

    Je met la case Prix ou Durée en forme conditionnelle et je lui dis de mettre en rouge le champs lorsque le NoRefTarif n'est pas identique au NoRefTarif dans le sous-formulaire.

    Ca fonctionne a moitié car il remarque que le NoRefTarif n'est pas identique mais le problème est que le sous-formulaire peut afficher plusieurs choix, et même si le NoRefTarif est dans la liste, il le met rouge car en fait, il analyse la première ligne du sous-formulaire ou la ligne qui a été activé.

    Exemple
    TITRE DUREE NoRefTarif
    actualite 7 nos 10
    actualite 12 nos 20
    actualite 24 nos 30

    Sur le formulaire, un champ caché récupère le NoRefTarif choisi par l'utilisateur (il clique sur le prix choisi) et affiche le durée et le prix choisi dans le formulaire.
    Si par exemple, il clique sur actualite 7 nos, le système verra que c'est bon, car les noRefTarif correspondent, mais si'il choisissent par exemple Actualité 24 nos, celui-ci va être affiché en rouge alors que le NoRefTarif existe dans le sous-formulaire affiché.

    Il faudrait mettre un code qui lit chaque ligne du sous-formulaire affiché et affiche un message pour dire que le NoRefTarif ne correspond pas à la liste affiché ci-dessus (le sous-formulaire)

    Merci pour votre aide

  4. #4
    Membre régulier
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Mai 2012
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2012
    Messages : 173
    Points : 80
    Points
    80
    Par défaut
    Peut-être qu'une image vaut mille mots.

    Nom : Capture.JPG
Affichages : 250
Taille : 57,8 Ko

    Lorsqu'une personne choisis un titre dans la liste déroulante (ici ACTUALITE), le sous formulaire en-haut, n'affiche que la liste disponible pour ce titre. Lorsque le client choisi un des choix, l'utilisateur clique sur le prix qui correspond à la province du client. Ce clic ajoute donc le prix dans le champ PRIX et la durée proposée dans le champ DUREE du formulaire principale.

    Normalement, la colonne NoRefTarif n'est pas visible pour les utilisateurs, ainsi que le champs bleu dans le formulaire principale (un champ qui récupère le NoRefTarif lorsque l'utilisateur clique sur un prix).

    Le champs DUREE du formulaire principale à une mise en forme conditionnelle : [ref_tarif]<>[ss_publication].Formulaire![NoRefTarif]
    Le champs DUREE change bien de couleur lorsque le prix choisi correspond à la liste du sous-formulaire SEULEMENT si le choix se porte sur la ligne activé dans le sous-formulaire.

    Dans cet exemple, on voit bien que l'ACTUALITE - 18 nos a été choisi, qu'il existe dans le sous-formulaire (NoRefTarif-850 = NoRefTarif de la zone en bleue). Mais si je clique sur la ligne 850, alors la mise en forme conditionnelle se décolore.

    Je voudrais que dans cet exemple, le champ DUREE ne deviennent pas rouge car le NoRefTarif existe bien dans la liste...

    Merci pour votre aide.

  5. #5
    Expert éminent

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

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Bonsoir,

    Pas simple ton truc. La solution serait de créer une fonction boolean qui va tester la présence de ton référence dans le recordset du sous formulaire et d'appliquer la fonction dans ta mise en forme conditionnelle. Ce serait du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Function VerifTarif() As Boolean
    VerifTarif = False
    With Me.ss_publication.Form.Recordset
        .FindFirst "[NoRefTarif]=" & Me.ref_tarif
        If Not .NoMatch Then VerifTarif = True
    End With
    End Function
    Et modifier la condition dans la mise en forme conditionnelle par :
    Attention, n'ayant pas la totalité des données, il se peut que ce code soit inversé, il faudrait ajuster la condition à Faux.

    Cordialement,

  6. #6
    Membre régulier
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Mai 2012
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2012
    Messages : 173
    Points : 80
    Points
    80
    Par défaut
    Je dois être plus mauvais que je pensais...
    Je ne sais pas où mettre le code dans le recordset du sous-formulaire...

    Je n'ai pas de code à proprement parlé qui fonctionne entre le formulaire principale et le sous-formulaire. ce sont des champs père-fils...

    Je bloque pour copier le code de la fonction...

  7. #7
    Expert éminent

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

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Tu mets le code dans ton formulaire simplement ! sur aucun évènement.

    Cordialement,

  8. #8
    Membre régulier
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Mai 2012
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2012
    Messages : 173
    Points : 80
    Points
    80
    Par défaut
    Ca n'a pas l'air de fonctionner.

    J'ai fais toutes les combinaisons possibles en true et false dans le code et la condition. (ca ne fait que 9 possibilités)

    J'ai changé de place à la fonction, je l'ai mis dans le sous-formulaire, le formulaire, mais ca ne marche pas autant.

    Je ne pourrais pas sécuriser toutes les erreurs que peut faire les utilisateurs. Ce travail que je dois faire est pour éviter une erreur faite pas l'utilisateur...

    Merci

  9. #9
    Expert éminent

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

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Bonsoir Ambact,

    Un exemple vaut mieux que des paroles, je joins un fichier exemple.
    C'est une très petite base de gestion de commande avec des détails avec tables :
    Clients : IdClient - ...
    Categorie : IdCategorie - ...
    Produit : IdProduit - IdCategorie_FK - Prix - ....
    Commande : IdCommande - ...
    CommandeDetails : IdCommande_FK - IdProduit_FK - Qte - Montant -

    Donc tu as un formulaire de commande avec les détails.
    Et le champ à comparer (indépendant pour ce cas ) à gauche en jaune. Ce champ a une mise en forme conditionnelle qui change si la valeur saisie est présente dans l'Id des produits dans le détail de la commande.

    Dis-moi si tu n'arrives pas à comprendre.

    Cordialement,
    Fichiers attachés Fichiers attachés

  10. #10
    Membre régulier
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Mai 2012
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2012
    Messages : 173
    Points : 80
    Points
    80
    Par défaut
    Bonjour,

    Excuse-moi pour le temps de réponse. En fait, je ne m'attendais à plus de réponses.

    J'ai testé ta petite base. J'ai regardé ce que tu as écris.

    J'ai vérifié avec ce que j'avais fait après ton premier message.

    Ca ne fonctionnait pas.

    J'ai modifié ton code dans ma base, j'ai mis à faux la condition et MIRACLE, ca a l'air de bien fonctionné !! Je vais faire des tests plus concluants pour être certain. Mais, entre le code de départ et celui de ta base, je ne vois pas de changement.

    Mais dans tous les cas, ca à l'air de donner le résultat que je voulais.

    Merci madefemere !

  11. #11
    Membre régulier
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Mai 2012
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2012
    Messages : 173
    Points : 80
    Points
    80
    Par défaut
    Bonjour et merci madefemere,

    Ca fonctionne très bien !

    Par contre, un petite chose embêtante, Il ne vérifie pas l'erreur lorsque l'on change la publication. Il faut fermer le formulaire et le rouvrir pour faire apparaître la mise en forme conditionnelle.

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

Discussions similaires

  1. [VB.NET] Vérification d'existance d'une table
    Par Hoegaarden dans le forum Windows Forms
    Réponses: 3
    Dernier message: 18/05/2004, 10h17
  2. calcul prix sql
    Par Damien69 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 04/05/2004, 09h00
  3. [Info] J2EE prix licence?
    Par Piolet dans le forum Java EE
    Réponses: 10
    Dernier message: 21/04/2004, 10h25
  4. Calcul d'un prix
    Par maki dans le forum Flash
    Réponses: 16
    Dernier message: 26/09/2003, 17h24
  5. JavaScript de vérification de formulaire
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 6
    Dernier message: 26/02/2003, 13h48

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