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

IHM Discussion :

Mise à jour auto d'un champ dans un formulaire


Sujet :

IHM

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 14
    Points : 3
    Points
    3
    Par défaut Mise à jour auto d'un champ dans un formulaire
    Bonjour a tous,

    Je suis en train de créer une base access et je crois que je suis un peu rouillé...

    Voici ma situation:
    J'ai une table 1 avec, entre autres 2 champs: Type_Client et Nom_Client
    J'ai un formulaire de saisie de commande qui vient renseigner une table 2 qui possède les même 2 champs.
    Dans mon formulaire, j'ai crée une liste déroulante Nom_Client qui vient chercher l'info dans la table 1. J'aimerai que sur mise à jour du champ Nom_Client, le champs Type_client de mon formulaire se mette à jour automatiquement en allant chercher dans la table 1.

    Quelqu'un aurait-il une solution à me proposer?

    Merci d'avance.

  2. #2
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 626
    Points : 726
    Points
    726
    Par défaut Truc
    bonjour,
    Voila,


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    Dim trouveca As Variant
    trouveca = DLookup("cekejeveux", "latable", "critererecherche = 1")
    dans ton cas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    Dim trouveca As Variant
    trouveca = DLookup("Type_client", "table 1", "Nom_Client= ' " + Nom_Client +" '")
    me.Type_client = trouveca
    a+

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 14
    Points : 3
    Points
    3
    Par défaut
    Merci Pour la réponse.
    Malheureusement je n'arrive pas à la mettre en oeuvre.
    J'ai mis cette ligne de code en procédure evenementielle "AfterUpdate" du champ Nom_Client et il ne se passe rien...

  4. #4
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 626
    Points : 726
    Points
    726
    Par défaut Attention
    Bonjour,
    Faut faire attention à la colonne liée. De toute façon si tu utilises Dlookup et que tu fais passer une mauvaise info tu dois avoir une erreur.
    Au fait t'as une erreur ?
    a+

  5. #5
    Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 14
    Points : 3
    Points
    3
    Par défaut
    Hello

    Non, meme pas de message d'erreur

    Je ne comprends pas trop, mais je suis une "tanche" en code...

    Voici ce que j'ai mis en procédure afterupdate:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     Private Sub Nom_Client_AfterUpdate()
     
    Dim trouveca As Variant
    trouveca = DLookup("Type_Client", "T_Client", "Nom_Client= ' " + Nom_Client+ " '")
    Me.Generique = trouveca
     
    End Sub
    Ya surement un petit truc idiot qui bloque (et je ne parle pas de moi )

  6. #6
    Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 14
    Points : 3
    Points
    3
    Par défaut
    Personne n'a une petite idée?

  7. #7
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 219
    Points : 1 707
    Points
    1 707
    Par défaut
    je n'ai pas la possibilité de vérifier les critères de ton Dlookup

    as ty essayé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Generique.Value = DLookup("Type_Client", "T_Client", "Nom_Client= ' " + Nom_Client+ " '")

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 226
    Points : 261
    Points
    261
    Par défaut
    Petites fautes de frappe .... ou d'espace entre les caractères ....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    trouveca = DLookup("Type_Client", "T_Client", "Nom_Client= ' " + Nom_Client+ " '")
    devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    trouveca = DLookup("Type_Client", "T_Client", "Nom_Client= '" & Nom_Client & "'")
    Je préfère utiliser le &

  9. #9
    Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 14
    Points : 3
    Points
    3
    Par défaut
    Super, ca marche!

    Merci à tous pour votre aide

  10. #10
    Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 14
    Points : 3
    Points
    3
    Par défaut
    Alors suite à vos brillantes réponses, ma base ayant un peu évolué, je dois mettre à jour automatiquement dans le fomulaire non seulement le Type de Client, mais aussi son adresse.

    Puis-je mettre à jour automatiquement 1 deuxieme champ de mon formulaire au cours de la meme instruction?

    merci d'avance

  11. #11
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 219
    Points : 1 707
    Points
    1 707
    Par défaut
    tant qu'il y a de la place sur ton formulaire .....pour les lignes de code il n'y a qu'a ajouter
    access a la santé

  12. #12
    Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 14
    Points : 3
    Points
    3
    Par défaut
    Cela me rassure, mais je n'y arrive pas. En fait lorsque sur mise à jour du champ client je veux que 2 autres champs se mettent à jour mais cela ne fonctionne pas. et c'est surement dû à mon ignorance niveau code: voici l'instruction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     Private Sub Nom_Client_AfterUpdate()
     
    Dim trouveca As Variant
    trouveca = DLookup("Type_Client", "T_Client", "Nom_Client= '" & Nom_Client & "'")
    Me.Type_Client= trouveca
     
    Dim trouveca As Variant
    trouveca = DLookup("Adresse_Client", "T_Client", "Nom_Client= '" & Nom_Client & "'")
    Me.Adresse_Client= trouveca
     
    End Sub
    Une idée de l'erreur que je fait?

  13. #13
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 219
    Points : 1 707
    Points
    1 707
    Par défaut
    salut
    déjà des problèmes d'organisation de ton code :
    1) Les Dim si possible à mettre au début de ta sub
    2) essaye d'utiliser le bon type de données - n'utiliser variant que quand c'est indispensable - ex : ton ID est soit Numérique "Integer" soit "String"
    ton Nom_client est forcément String - enfin tant qu'on est pas que des N°!!!!
    3) 2 si tu utilises des variables "trouveca" ne pas mettre sauf exeption la même...Ex trouveID - TrouveAdresse.

    mais ton problème me semble t il ne doit pas venir que de là - dans ton premier post tu dis que dans ta table 1 tu n'as que les champs ID et Nom_Client -
    -où est l'adresse de ton client?
    si c'est dans une autre table tu dois dire à Dlookup dans laquelle il doit chercher -
    1) il faudra qu'elle ait un champ Nom_client lié et qu'il apparaisse bien entendu dans le même enregistrement que son adresse .
    et pour Dlookup il faut que le critère soit Unique si tu choisi le champ "Nom_Client" si un jour tu as 2 clients du même nom il ne saura pas lequel des 2 prendre - donc c'est sur son ID (clé Unique) qu'il vaut mieux référencer ta recherche...
    pioche un peu
    teste et dis nous ce qui se passe
    à +

Discussions similaires

  1. [AC-2000] Mise à jour automatique d'un champ dans une table
    Par Nerva dans le forum Access
    Réponses: 3
    Dernier message: 14/10/2010, 18h49
  2. affichage auto d'un champs dans sous formulaire
    Par TCPARIS dans le forum IHM
    Réponses: 2
    Dernier message: 16/09/2007, 22h32
  3. [AJAX] Auto completion - plusieurs champs dans un formulaire
    Par etco1 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/09/2007, 17h36
  4. Réponses: 1
    Dernier message: 28/08/2007, 15h41
  5. Réponses: 5
    Dernier message: 27/08/2006, 14h18

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