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 a jour d'un champ dans une base access


Sujet :

IHM

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 30
    Points : 14
    Points
    14
    Par défaut Mise a jour d'un champ dans une base access
    Bonjour,

    je travaille actuellement sur la création d'un formulaire, et l'idée est que chaque champ saisi doit automatiquement etre enregistrer dans une base générale ("Base totale").

    Mon probleme est le suivant : dans mon formulaire, j'ai mis une zone de liste déroulante (=Modifiable98) issue d'une table (TBL Types Modalités), et suivant le choix fait dans cette liste, ça remplit automatiquement d'autres champs du formulaire (Ex : dans la zone de texte "Jours de RC", j'ai mis =Modifiable98.Column(5) dans la Source controle); le choix fait dans la liste déroulante est bien directement enregistré dans ma base "Base totale" (j'ai mis le nom du champ de la base totale ou doit etre enregistré ce choix dans "Source controle"), mais PAS la zone de texte "Jours de RC" !!!

    Si quelqu'un a une idée, je suis preneur!!

    D'avance merci

    Fabrice

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Points : 760
    Points
    760
    Par défaut
    Bonjour FabriceAmex,

    Je supose que la propriete RowSource de ta liste est le champ de ta table non?

    A fin que la zone de texte soit aussi enregistré, il faut qu'elle soit liée au champ de ta table.

    Après pour la donner la valeur de la Colonne de la liste, il va falloir passer par VBA.

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 30
    Points : 14
    Points
    14
    Par défaut
    Bonjour Marc_27,

    Effectivement c'est exactement ca, et je me doutais que pour enregistrer la zone de texte il fallait la lier au champ de la table totale, et passer par du VBA; mais j'espérais que cela pouvait etre plus simple.

    Je vais donc essayer cette solution...

    Merci en tout cas!

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Points : 760
    Points
    760
    Par défaut
    Dans l'événement AfterUpdate de ta liste il suffit de mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.monTestBox.Value=Me.maListe.Column(4)
    (Avec le VBA, les colonnes commencent par 0)

    Bonne continuation

  5. #5
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 30
    Points : 14
    Points
    14
    Par défaut
    Bonjour Marc_27,

    Il y a un truc que j'ai mal du faire et que je ne comprends pas!!
    J'ai créé la liste box avec l'assistant à partir d'une table "TBL Types Modalités"; mais les champs proposés dans la propriété "source controle" ne sont que des champs de la table totale!!! mais quel rapport entre les 2?

    Et du coup je n'arrive pas à mettre à jour les autres champs issus de la table totale suivant le choix fait dans la listebox, SAUF si dans la "source controle" de la listebox je mets le champ que je veux mettre a jour, mais je ne peux en mettre qu'un seul!!!!!

    D'avance merci de votre aide...

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Points : 760
    Points
    760
    Par défaut
    La propriété Source de Controle dit sur quel champ de la "table mere" de ton formulaire ton champ ets liée, et comme ton formulaire est lié à la table totale, il sont ces champs qui vont y apparaitre.

    Les champs choisis dans l'assistant sont dans la propriété Contenu (qui doive être une requete).

    J'espère avoir été clair...


    Pour mettre à jour ces champs, il faut mettre la propriété Source de Controle dans les bons champs (de la table totale) e passer les valeurs par VBA comme j'ai dit avant.

  7. #7
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 30
    Points : 14
    Points
    14
    Par défaut
    Je pense bien comprendre mais est il possible de mettre plusieurs champs dans la source controle de la listbox?

    Sinon j'ai réussi grace a votre code à mettre à jour un champ suivant la valeur choisi dans la listbox, et ceci en laissant vide la source controle de la listbox; cela dit ca ne marche pas pour tous les champs, y a-t-il une différence entre la mise a jour des champs au format texte, et ceux au format numérique?

    Encore merci de votre aide

  8. #8
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 30
    Points : 14
    Points
    14
    Par défaut
    C'est bon grace a vous, ca marche parfaitement!!!
    Merci beaucoup!!!!

    Un dernier point SVP : j'ai un sous formulaire en mode feuille de donnée, lorsque je selectionne un valeur de la listbox, et s'affiche automatiquement sur toutes les lignes!!! alors que j'aimerais qu'elle ne s'affiche que pour la ligne en question et qu'en plus elle reste enregistrée dans cette zone!!

    Encore merci pour votre aide très précieuse!!!!

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Points : 760
    Points
    760
    Par défaut
    Bonjour Fabrice.

    La je pense que c'est meilleur ouvrir une nouvelle discussion, car je ne connais pas bien les formulaires "feuille de donnée". Par contre je te conseille vraiment de commencer à faire quelques choses avec du code, car t'as beaucoup plus de contrôle sur les choses, et on arrive à contourner quelques comportements un peu "bizarres" d'Access.

    Bonne continuation...

  10. #10
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 30
    Points : 14
    Points
    14
    Par défaut
    Bonjour Marc,

    Je vais suivre votre conseil.
    En tout cas merci de votre aide qui m'a fait déja beaucoup avancer...

    Cordialement.

    Fabrice

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

Discussions similaires

  1. [MySQL] Copie d'une table à l'autre + mise a jour d'un champ dans la table d'arrivée
    Par reventlov dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 28/06/2012, 15h10
  2. Réponses: 7
    Dernier message: 20/02/2012, 09h01
  3. [WD14] Mise à jour d'un champ dans une table
    Par forgotten dans le forum WinDev
    Réponses: 2
    Dernier message: 16/03/2011, 10h34
  4. Mise à jour d'un champ dans une session
    Par marry dans le forum Langage
    Réponses: 7
    Dernier message: 13/10/2009, 11h06

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