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 :

Modifier la valeur d'un champ


Sujet :

Access

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 15
    Points : 6
    Points
    6
    Par défaut Modifier la valeur d'un champ
    Bonjour,

    voici mon problème du jour , pour peu qu'on le comprenne,
    la solution doit etre assez facile à trouver, mais je suis un cancre d'access et j'implore une aide miraculeuse !!!

    j'ai deux formulaires F1 et F2
    F1 affiche un champ Quantité que l'on ne doit en aucun cas modifier "à la main",
    c'est uniquement F2 qui change sa valeur.

    Le probleme c'est qu'il y a plusieurs personnes qui désirent modifier la Quantité :
    J'ai fait en sorte qu'elles doivent écrire dans F2 le nombre qu'elles veulent enlever de Quantité.
    Un enregistrement correspond à un retrait, si la personne désire à nouveau retirer de Quantité, elle doit écrire son nombre dans un nouvel enregistrement de F2. C'est impératif.

    il faudrait que Quantité soit diminué par la somme de tous les nombres de F2.

    (tant pis si on atteint les négatifs, je ferais avec.. )

    C'est un problème majeur de ma premiere base de données,
    merci pour toute aide!

  2. #2
    Membre régulier

    Profil pro
    Inscrit en
    Mars 2003
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 144
    Points : 112
    Points
    112
    Par défaut
    Bonjour,

    sur l'événement "après insertion" du formulaire F2 tu peux taper le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    forms!f1!quantité=forms!f1!quantité - dsum("champ_f2", "table_source_f2")
    sendkeys "{F9}"  'pour l'actualisation
    A+

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    merci d'avoir si vite répondu. J'ai bien suivi et compris ta réponse,
    mais access me signale qu'il faut que je crée une macro (!!??)
    je sèche ........... j'ai bien fait attention pourtant.
    Alors j'ai réécrit ta ligne de code pour voir où exactement était mon erreur, et access ne veut plus rien me dire!! du coup je ne peux plus te dire quel était son probleme!
    (et plus de Quantité modifiable snif.)

  4. #4
    Membre régulier

    Profil pro
    Inscrit en
    Mars 2003
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 144
    Points : 112
    Points
    112
    Par défaut
    Pas grave, je reprends !
    Dans l'onglet événement de F2, tu cliques sur la ligne "après insertion" et tu choisis "procédure événementielle". ensuite tu cliques sur le bouton "points de suspension" au bout de la ligne puis tu tapes le code dans la page blanche sous la ligne intitulée f2_AfterInsert(...
    Ensuite tu fermes cette fenètre, tu reviens sur le formulaire que tu fermes (en n'oubliant pas d'enregistrer) et tu testes.
    A+

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    ok jfox c sympa d'avoir remarqué que je suis un débutant lol

    mais si ma Quantité ne veut pas bouger meme apres un coup de F9,
    c'est ke g une erreur dans ce ke g tapé : (jte fé un copier-coller vite fait)

    forms!PiècesDétachées!nbfini=forms!PiècesDétachées!nbfini - dsum("NombrEmprunt", "tbl EMPRUNT");

    je vois po pourquoi ça marche po..

    merci de ta patience

  6. #6
    Membre régulier

    Profil pro
    Inscrit en
    Mars 2003
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 144
    Points : 112
    Points
    112
    Par défaut
    Oups! J'ai oublié une ligne dans le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Forms!f1.SetFocus
    Forms!f1!t1_qte = Forms!f1!t1_qte - DSum("t2_qte", "table2")
    Forms!f1.Requery
    Cela ne fonctionne qu'après l'insertion d'un nouvel enregistrement (si c'est placé dans l'événement "après insertion"). Tu peux aussi le mettre sur les événements de modification.
    A+
    Un détail : c'est mieux quand on n'écrit pas en langage texto (au risque de passer pour un vieil imbécile). Merci.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    je crois que j'ai quelquechose de pas résolvable du tout.
    en effet je n'ai aucune modif de ma quantité pourtant ton code
    est parfait et meme si je ne connais pas le vb j'ai des notions de programmation.

    voila ce que me met Microsoft Visual Basic:
    Erreur d'exécution '2001':
    Opération annulée.

    puis en lançant le débogueur il m'affiche en jaune la ligne
    qui contient '...DSum...'

  8. #8
    Membre régulier

    Profil pro
    Inscrit en
    Mars 2003
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 144
    Points : 112
    Points
    112
    Par défaut
    Apparemment oui, tout à l'air en ordre.
    Passe la souris sur chacun des membres de la ligne (en mode débogueur) : il devrait t'afficher une valeur à chaque fois.

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    y aurait-il une erreur si NbFini est en texte (bien que j'ai écrit des chiffres) car mon champ NombrEmprunt est en numérique?

    access est-il capable finalement de faire une opération de ce type?
    si c'est non, je vais devoir modifier pas mal de choses dans ma base..

    merci jfox de tes conseils

  10. #10
    Membre régulier

    Profil pro
    Inscrit en
    Mars 2003
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 144
    Points : 112
    Points
    112
    Par défaut
    As-tu déjà essayé d'additionner des choux et des carottes ?
    Idem pour access : il ne peut pas additionner des lettres et des chiffres.
    Reprend tes champs et type-les bien (texte, numérique, date/heure, etc.) en fonction de leur destination.
    A+

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    Salut jfox bon je dois dire que je n'arrive pas à résoudre mon probleme.

    voila j'ai bien fait attention au type de champ (du numérique additionné avec du numerique) car j'ai recommencé ma base de données en faisant de mon mieux pour que chaque variable et constante aient un nom le plus logique qui soit.

    Ainsi j'ai retapé tes lignes de code et ca donne ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Forms![f_PicecesDetachees].[NbFini].SetFocus
    Forms![f_PicecesDetachees].[NbFini]![t_PiecesDetachees].[NbFini] = Forms![f_PicecesDetachees].[NbFini]![t_PiecesDetachees].[NbFini] - DSum("QuantiteEntree", "t_ListeDesEntrees")
    Forms![f_PicecesDetachees].[NbFini].Requery
    J'ai une erreur qui s'affiche:
    "La procédure Property Let n'est pas définie et la procédure Property Get n'a pas renvoyé d'objet"

    Suis-je près du but ?? A plus

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/01/2007, 13h31
  2. Réponses: 19
    Dernier message: 21/08/2006, 19h17
  3. Réponses: 4
    Dernier message: 07/08/2006, 16h19
  4. [C#]Modifier la valeur d'un champs dans un listView
    Par fafa139 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 14/05/2006, 15h49
  5. Modifier la valeur d'un champ en fonction d'une autre...
    Par venividivici dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 25/08/2005, 14h28

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