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 :

Champ Combobox formulaire ne se remplit pas dans le champ correspondant de la table


Sujet :

Access

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 7
    Points : 7
    Points
    7
    Par défaut Champ Combobox formulaire ne se remplit pas dans le champ correspondant de la table
    Bonjour à tous,

    Nom table : "Prospects"
    Nom formulaire : "Prospects"

    Dans mon formulaire :
    - J'ai inséré une zone de liste déroulante nommé "Lieu salon" pour définir le lieu d'un salon.
    - J'ai crée une fonction SQL avec IIF dans "Date salon" pour que s'ajoute automatiquement la date correspondant au salon précédemment inscris.


    Problème :
    Dans ma table ou s'affiche le lieu et la date, le lieu s'affiche bel et bien mais pas la date.
    Alors comment faire pour que la date qui s'inscrit automatiquement dans le formulaire, s'inscrive aussi dans la table ?

    Si vous me donner un code merci de m'expliquer ou le mettre car je ne m'y connais rien.

    Voici le formulaire :Pièce jointe 170245
    Voici la table vide dans le champs date : Nom : table.jpg
Affichages : 411
Taille : 148,0 Ko

    J'ai essayé en insérant ça dans le formulaire, colonne évènements, ligne Avant MAJ
    Nom : DUCODE.jpg
Affichages : 426
Taille : 134,0 Ko
    Images attachées Images attachées  

  2. #2
    Membre expérimenté Avatar de RobiPMS
    Homme Profil pro
    Conseiller psycho-pédagogique
    Inscrit en
    Octobre 2007
    Messages
    827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Conseiller psycho-pédagogique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2007
    Messages : 827
    Points : 1 506
    Points
    1 506
    Par défaut
    Bonjour.

    Puisque tu as défini comme source de données le VraiFaux qui te donne une date, ce champ ne peut évidemment pas être aussi lié à la table source de ton formulaire. Tu as donc diverses possibilités pour inscrire la date qui apparaît dans ce champ dans le champ [Date salon] de la table.
    Puisque tu "n'y connais rien", voici deux possibilités (parmi bien d'autres) de régler le problème.

    1° possibilité : Tu crées un nouveau champ que tu appelles D_Salon, que tu lies à la table en lui donnant comme source de données le champ [Date salon]. Tu affiches les propriétés du champ où la source est le VraiFaux, Onglet Evénement -> Sur double clic -> Procédure événementielle -> dans l'éditeur VBA tu mets ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Date_salon_DblClick(Cancel As Integer)
    Me.[D_salon] = Me.[Date_salon]
    End Sub
    2° possibilité : Tu lies le champ [Date Salon] au champ [Date salon] de la table.Tu crées une procédure événementielle sur l'événement Après mise à jour de ta liste déroulante, où tu attribues au champ [Date salon] la valeur résultant de ton IIf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.[Date salon] = IIf(....)
    Bonne continuation!
    N'oubliez pas de tagguer la discussion comme résolue si vous avez été aidé!
    Plus haut monte le singe, plus il montre son cul (Montaigne)
    Je ne réponds pas aux messages personnels concernant des questions discutées dans le forum.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 7
    Points : 7
    Points
    7
    Par défaut Autre problème
    Bonjour et merci bien RobiPMS.

    J'ai opté pour la solution 2 qui me semble la plus facile pour moi cependant j'ai fais des erreurs quelque part.

    Voici ma procédure :
    - "Tu lies le champ [Date Salon] au champ [Date salon] de la table" => Je n'ai rien fais
    - "Tu crées une procédure événementielle sur l'événement Après mise à jour de ta liste déroulante, où tu attribues au champ [Date salon] la valeur résultant de ton IIf" Alors la voici comment j'ai fais

    J'ai ouvert le formulaire prospects en mode création.
    J'ai cliqué sur lieu salon, ensuite j'ai été dans "evenements", ligne "apres maj" et voici ce que j'ai inscris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Option Compare Database
    Private Sub Date_salon_BeforeUpdate(Cancel As Integer)
    Me![Date salon] = Me![Date salon]
    End Sub
    Me![Date salon] = Me![Date salon]
    Private Sub Form_BeforeUpdate(Cancel As Integer)
     
    End Sub
     
    Private Sub Lieu_salon_AfterUpdate()
    Me.[Date salon]=VraiFaux([Lieu salon]="Bar le Duc";#15/01/2014#;VraiFaux([Lieu salon]="Nancy";#20/02/2014#;VraiFaux([Lieu salon]="Metz";#15/03/2014#;#10/04/2014#)))
    End Sub
    - Voici les résultats obtenus (désolé de mon incompétence)
    Nom : erreur.jpg
Affichages : 423
Taille : 109,4 KoNom : Form creation.jpg
Affichages : 335
Taille : 228,2 KoNom : resultat.jpg
Affichages : 234
Taille : 5,5 Ko

    À savoir que je retrouve la règle Me. etc dans date salon aussi.

    Merci

  4. #4
    Membre expérimenté Avatar de RobiPMS
    Homme Profil pro
    Conseiller psycho-pédagogique
    Inscrit en
    Octobre 2007
    Messages
    827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Conseiller psycho-pédagogique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2007
    Messages : 827
    Points : 1 506
    Points
    1 506
    Par défaut
    Bonjour.

    Je dois m'absenter aujourd'hui et pourrai te répondre plus complètement ce soir.
    En attendant :
    - Tu dois lier le champ Date salon du formulaire à la source "Date salon" de la table (propriétés du formulaire -> Données -> Source contrôle -> là tu choisis la source dans la liste déroulante
    - Tu supprimes ce que tu as mis en "Before update" qui ne sert à rien et n'a pas de sens
    - L'expression VraiFaux dans ta procédure doit être formulée en anglais, càd que VraiFaux doit devenir Iif.
    Mais à voir la partie visible dans ton message de ta formulation, la formulation est assez lourde et je pense à une autre façon d'attribuer cette valeur selon le choix dans la liste.
    Je te propose de poster le code complet de ton VraiFaux, et en fonction de cela, je te proposerai un code convenable.

    A+
    RL
    N'oubliez pas de tagguer la discussion comme résolue si vous avez été aidé!
    Plus haut monte le singe, plus il montre son cul (Montaigne)
    Je ne réponds pas aux messages personnels concernant des questions discutées dans le forum.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 7
    Points : 7
    Points
    7
    Par défaut Suite
    Bonjour,

    Merci pour ces informations mais je n'y arrive toujours pas :/

    J'ai effectué les étapes, voici la vidéo des résultats obtenues :

    Je présente les tables avec relation au début puis ensuite la procédure réalisé.


    Rappel objectif :
    Champ "date" du formulaire "prospects" se retrouve dans le champs "date" de la table correspondante soit la table "prospects"

    Je souhaiterais qu'en utilisant le formulaire "Prospects" qu'une fois choisis dans le champ "Lieu salon" :

    - Bar le Duc s'affiche automatiquement ensuite dans le champ "Date salon" la date du 15/01/2014
    - Nancy s'affiche automatiquement ensuite dans le champ "Date salon" la date du 20/02/2014
    - Metz s'affiche automatiquement ensuite dans le champ "Date salon" la date du 15/03/2014
    - Epinal s'affiche automatiquement ensuite dans le champ "Date salon" la date du 10/04/2014

    Formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.[Date salon]=iff([Lieu salon]="Bar le Duc",#15/01/2014#,iff([Lieu salon]="Nancy",#20/02/2014#,iff([Lieu salon]="Metz",#15/03/2014#,#10/04/2014#)))
    Lien vidéo : https://vid.me/eZGj

    Merci

  6. #6
    Membre expérimenté Avatar de RobiPMS
    Homme Profil pro
    Conseiller psycho-pédagogique
    Inscrit en
    Octobre 2007
    Messages
    827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Conseiller psycho-pédagogique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2007
    Messages : 827
    Points : 1 506
    Points
    1 506
    Par défaut
    ReBonjour.

    J'ai regardé la vidéo, tu y es presque.

    Je te propose de remplacer ton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.[Date salon]=iff([Lieu salon]="Bar le Duc",#15/01/2014#,iff([Lieu salon]="Nancy",#20/02/2014#,iff([Lieu salon]="Metz",#15/03/2014#,#10/04/2014#)))
    par ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    If Me![Lieu salon] = "Bar le Duc" Then
    Me.[Date salon]  =  "15/01/2014"
    ElseIf Me![Lieu salon] = "Nancy" Then
    Me.[Date salon]  =  "20/02/2014"
    ElseIf Me![Lieu salon] = "Metz" Then
    Me.[Date salon]  =  "15/03/2014"
    ElseIf Me![Lieu salon] = "Epinal" Then
    Me.[Date salon]  =  "10/04/2014"
    End If
    Remarque : tu peux aussi encadrer tes dates de #, mais dans ce cas, dans le code VBA, pour qu'access les interprète correctement, tu dois utiliser le format anglo-saxon (mois jour annéee) donc ici #1/15/2014# et ainsi de suite.
    Je viens de simuler ta situation avec une liste déroulante de noms, et un champ date, et ce code marche parfaitement. Tu ne devrais donc pas avoir de problème.
    Cordialement,
    RL
    PS : si tu veux avoir la traduction automatique d'une expression créée en français dans une requête avec le générateur d'expression, il suffit d'afficher la requête en mode SQL.
    N'oubliez pas de tagguer la discussion comme résolue si vous avez été aidé!
    Plus haut monte le singe, plus il montre son cul (Montaigne)
    Je ne réponds pas aux messages personnels concernant des questions discutées dans le forum.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 7
    Points : 7
    Points
    7
    Par défaut aide
    Merci beaucoup je vais essayer cette méthode
    minotot83 vient de m'aider ca a marché aussi en faisant autrement.

    Donc le problème est résolu. En copiant ce code ça marche très bien

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

Discussions similaires

  1. [AC-2010] Champ calculé sur formulaire ne s'indique pas dans ma table
    Par patito1975 dans le forum Access
    Réponses: 3
    Dernier message: 31/08/2014, 11h24
  2. Trouver une valeur qui n'est pas dans un champ
    Par eric41 dans le forum Requêtes
    Réponses: 6
    Dernier message: 16/05/2006, 16h48
  3. Calcul dans un champ de formulaire
    Par Marmouz dans le forum Access
    Réponses: 6
    Dernier message: 07/02/2006, 11h55
  4. saisie obligatoire dans un champs de formulaire
    Par Didi17 dans le forum Access
    Réponses: 2
    Dernier message: 28/10/2005, 03h51
  5. Une valeur ne s'affiche pas dans un champ texte
    Par KibitO dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 13/03/2005, 20h42

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