1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    décembre 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2004
    Messages : 25
    Points : 13
    Points
    13

    Par défaut Contenu d'1 champ calculé formulaire vers champ d'1 table ?

    Bonjour,

    Est-il possible d'envoyer la valeur d'un champ calculé d'un formulaire vers un champ d'une table, et que cette valeur reste stockée dans la table comme un enregistrement ?

    ex: Formulaire: champA, champB, champC (=à A + B).
    Table: champX, champY (ce champ doir se remplir à partir du champC du formulaire.

    merci d'avance pour votre aide....

  2. #2
    Membre chevronné
    Avatar de Demco
    Profil pro
    Inscrit en
    mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : mai 2002
    Messages : 1 396
    Points : 2 226
    Points
    2 226

    Par défaut

    Pour enregistrer dans une table une valeur contenue dans un formulaire intéresses-toi aux RecordSet et également aux requêtes de type UPDATE.
    Tu trouveras beaucoup d'informations sur ces éléments dans la FAQ.

    http://access.developpez.com/faq/?page=SQL#qryActions
    http://access.developpez.com/faq/?rechercher=recordset

    En espérant t'aider.
    J'aime les gâteaux.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    décembre 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2004
    Messages : 25
    Points : 13
    Points
    13

    Par défaut J'ai pas trouvé mon bonheur !

    merci pour la réponse .

    J'ai parcouru la FAQ mais n'ai pas trouvé ce que je cherche. Le titre se rapprochant le + étant "Comment récuperer la valeur d'une cellule dans un formulaire tabulaire ", mais j'ai pas tout compris !

    Je suis toujours à la recherche de ma solution.....

  4. #4
    Provisoirement toléré Avatar de charleshbo
    Profil pro
    Inscrit en
    janvier 2006
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations forums :
    Inscription : janvier 2006
    Messages : 222
    Points : 125
    Points
    125

    Par défaut

    voici un exemple qui peut peut-etre t'aider...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    Dim db As Database
    Dim rst As RecordSet
     
    db = CurrentDb 'va chercher ta bd dans laquelle tu es
    rst = db.openRecordSet("TABLEA", dbOpenDynaset) 'ouverture de ta BD
     
    If rst.RecordCount > 0 Then 'Vérifie qu'il y a des enregistrements
       rst.FindFirst "cleprimaireBD = " & Me.textbox1.Text 'pour trouver un enregistrement en particulier.
       With rst
       .Edit 'on se place en mode edit (sa pourrait etre .AddNew pour ajouter)
       !champBD1 = Me.textbox2.text 'la valeur des champs du formulaire sont rentrés dans la table
       !champBD2 = Me.textbox3.text
       .Update 'ils sont updatés.
       End With
    End If
     
    rst.Close 'important de fermer le recordset
    dans ton openRecordSet, au lieu du nom de la table, tu peux toujours mettre une requete... genre SELECT * FROM TABLEA

    en esperant t'avoir un peu eclairci...
    Charles Bergeron - Webmaster/Infographe/Photographe

  5. #5
    Provisoirement toléré Avatar de charleshbo
    Profil pro
    Inscrit en
    janvier 2006
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations forums :
    Inscription : janvier 2006
    Messages : 222
    Points : 125
    Points
    125

    Par défaut

    un ajout : et si tu veux parcourir l'ensemble des enregistrement, tu ajoutes un WHILE NOT rst.EOF (EOF = End of File) tant que le recordset n'est pas a la fin des enregistrements... et avant la fin de ton while tu place un rst.MOVENEXT...

    etudie tout ça et expérimente un peu...
    Charles Bergeron - Webmaster/Infographe/Photographe

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    décembre 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2004
    Messages : 25
    Points : 13
    Points
    13

    Par défaut

    Merci Charleshbo.

    Ca n'écrit pas, je dois me débrouiller comme un manche, c'est pas possible !?!

    Le champ "C" de mon formulaire "ALPHA" doit écrire dans le champ "Y" de ma table "BETA".
    Peux-tu me dire à quoi correspondent les codes dans mon cas:
    CurentDb = ?
    TABLEA = "ALPHA" je suppose !
    cleprimaireBD = ?
    !champBD1 = ? (C ou Y)
    !champBD2 = ? (C ou Y)

    Je vais prendre une aspirine !

  7. #7
    Provisoirement toléré Avatar de charleshbo
    Profil pro
    Inscrit en
    janvier 2006
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations forums :
    Inscription : janvier 2006
    Messages : 222
    Points : 125
    Points
    125

    Par défaut

    Je vais réadapter le code a ce que tu me dis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    Dim db As Database 
    Dim rstALPHA As RecordSet 
    Dim rstBETA As RecordSet
     
    db = CurrentDb 'cette commande ne change jamais, cela ne fait qu'affecter ton fichier Access a ta variable db
    rstALPHA = db.openRecordSet("ALPHA", dbOpenDynaset) 
    rstBETA = db.openRecordSet("BETA", dbOpenDynaset)  
     
    'Bon, si tu t'es déjà arrangé pour mettre A+B dans C alors voici comment poursuivre...
     
    While Not rstBETA.EOF
       With rstBETA
           .AddNew 'si n'y a pas d'enregistrement dans la table BETA
           !champY = rstALPHA.Fields("champC")
           .Update
       End With
    End While
    Environ comme ça qu'on procède... si je me trompe quelqu'un corriger moi!
    Charles Bergeron - Webmaster/Infographe/Photographe

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    décembre 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2004
    Messages : 25
    Points : 13
    Points
    13

    Par défaut

    Ca ne fonctionne pas !

    L'erreur s'arrête "db", puis "rst".

  9. #9
    Provisoirement toléré Avatar de charleshbo
    Profil pro
    Inscrit en
    janvier 2006
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations forums :
    Inscription : janvier 2006
    Messages : 222
    Points : 125
    Points
    125

    Par défaut

    ce ne sont que des exemples... des variables que tu dois changer...
    Charles Bergeron - Webmaster/Infographe/Photographe

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    décembre 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2004
    Messages : 25
    Points : 13
    Points
    13

    Par défaut

    J'ai créé une table "BETA" avec 1 champ "X" et 1 champ "Y"
    Puis 1 formulaire sur lequel j'ai posé un champ "A", 1 champ "B", 1 champ "C" (Propriété Données=A+B).
    Dans les évènements du champ "C", j'ai copié ton code dans la ligne "fermeture"...rien à faire, ça n'écrit pas dans le champ "Y" de ma table "BETA" lorsque le formulaire ferme.

  11. #11
    Provisoirement toléré Avatar de charleshbo
    Profil pro
    Inscrit en
    janvier 2006
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations forums :
    Inscription : janvier 2006
    Messages : 222
    Points : 125
    Points
    125

    Par défaut

    tu ne dois pas prendre mon code textuellement, il y a surement quelques petites modifs a apporter sur ton code selon tes tables et champs... et sur ce qui est de la ligne fermeture, tu veux dire l'évenement close???
    Charles Bergeron - Webmaster/Infographe/Photographe

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    décembre 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2004
    Messages : 25
    Points : 13
    Points
    13

    Par défaut

    Dans les propriétés du formulaire, j'ai posé une procédure évènementielle (ton code) à la ligne "sur fermeture" dans l'onglet "évènement".

    Pour les paramétrage de ton code, je vais regarder ce que je peux essayer. Je n'ai plus d'erreur (avec la BD exemple que je me suis créé...table "BETA", formulaire "ALPHA"...etc, mais ça n'écrit pas !

    Bon, je creuse......

    Ceci étant, merci pour ta patience et surtout ton aide précieuse !

  13. #13
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    février 2006
    Messages
    20 948
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : février 2006
    Messages : 20 948
    Points : 42 460
    Points
    42 460

    Par défaut

    Citation Envoyé par BOTIGUA
    J'ai créé une table "BETA" avec 1 champ "X" et 1 champ "Y"
    Puis 1 formulaire sur lequel j'ai posé un champ "A", 1 champ "B", 1 champ "C" (Propriété Données=A+B).
    Dans les évènements du champ "C", j'ai copié ton code dans la ligne "fermeture"...rien à faire, ça n'écrit pas dans le champ "Y" de ma table "BETA" lorsque le formulaire ferme.
    Essaie de le mettre dans valeur par défaut.
    Ou ecris un code qui effectue l'opération chaque fois que tu mets à jour un contrôle du formulaire ou un bouton.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

Discussions similaires

  1. Champ calculé depuis un champ calculé
    Par djibouli dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 06/02/2014, 02h05
  2. Réponses: 23
    Dernier message: 04/03/2011, 11h49
  3. [AC-2003] Récupération des résultats de champs calculés formulaires vers une table
    Par Epi d'or dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 16/02/2011, 12h38
  4. formulaire avec champ calcules sur access
    Par tobisko dans le forum Access
    Réponses: 3
    Dernier message: 08/09/2006, 14h52
  5. Calcul dans un champ de formulaire
    Par Marmouz dans le forum Access
    Réponses: 6
    Dernier message: 07/02/2006, 12h55

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