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

VBA Access Discussion :

Mise à jour de recordset sur fermeture formulaire [AC-2007]


Sujet :

VBA Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Août 2010
    Messages : 60
    Points : 54
    Points
    54
    Par défaut Mise à jour de recordset sur fermeture formulaire
    Bonjour,

    Je travaille avec access 2007 et ADODB.

    Voici l'action produite lorsque je clique sur le bouton "Sauver et quitter" de mon Form :

    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
    'On ajoute au recordset les données de la feuille
            rstReq("id_doc_bo") = id_doc
            rstReq("univers") = cb_univers
            rstReq("id_univers") = cbo_univers
            rstReq("sql_carte") = cb_sql_carte
            rstReq("sql_info") = txt_sql_carte
     
            MsgBox rstReq("sql_info")
            rstReq.Update
            rstReq.MoveFirst
     
     
            'Fermeture du recordset et de la connexion
            rstReq.Close
            cnxReq.Close
            DoCmd.Close acForm, "ajout_req"
    Mon problème est le suivant :
    Les valeurs sont bien affectées à mon recordset mais les modifications ne sont pas reflétées dans la table, malgré l'Update.
    msgbox rstreq("sql_info") me retourne bien le texte que j'ai entré dans le champ "txt_sql_carte" de mon Form.

    Mais ce texte n'est pas inséré dans la table.

    Mon recordset est placé côté serveur, et de type adOpenStatic, adLockOptimistic.

    Quelqu'un a une explication ?

    Merci d'avance

  2. #2
    Membre émérite
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 939
    Points : 2 287
    Points
    2 287
    Par défaut
    Bonjour

    Pour ajouter un enregistrement à un recordset, je crois qu'il faut utiliser la méthode "addnew ", si c'est pour modifier des données, c'est la méthode "edit"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    rstReq.addnew 
    rstReq("id_doc_bo") = id_doc
            rstReq("univers") = cb_univers
            rstReq("id_univers") = cbo_univers
            rstReq("sql_carte") = cb_sql_carte
            rstReq("sql_info") = txt_sql_carte
     
            MsgBox rstReq("sql_info")
            rstReq.Update
    Pierre

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Août 2010
    Messages : 60
    Points : 54
    Points
    54
    Par défaut
    Bonjour,
    Merci pour votre réponse.

    En fait, j'utilise bien la méthode AddNew.
    Dans ce cas précis, le rstReq.AddNew est fait dans une autre partie de mon code.

    Ce qui m'embête, c'est que tous les autres champs prennent bien les valeurs du formulaire. Seul le champ "sql_info" n'est pas mis à jour !

    id_doc_bo - de type texte
    univers - booléen
    id_univers - texte
    sql_carte - booléen

    sql_info - de type mémo dans ma table (texte long, car j'ai besoin de plus de 256 caractères).

  4. #4
    Membre émérite
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 939
    Points : 2 287
    Points
    2 287
    Par défaut
    Bonjour

    Je pense que le problème vient en effet du fait que sql_info soit de type mémo.
    J'ai crois avoir déjà lu des difficultés avec le type mémo.

    Avez-vous fait une recherche là dessus?

    Pierre

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Août 2010
    Messages : 60
    Points : 54
    Points
    54
    Par défaut
    Bonjour,

    Je me suis dirigé vers cette solution.
    Je cherche...

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Août 2010
    Messages : 60
    Points : 54
    Points
    54
    Par défaut Solution de contournement
    En cherchant sur le forum, j'ai trouvé la discussion suivante : [Paradox] Problème d'Update d'un champ MEMO.

    En partant sur la base qu'on ne peut pas modifier simultanément un champ clé primaire et un champ mémo d'une même table,
    j'ai gardé mon recordset pour updater les autres champs, et créé une commande ADODB pour updater le champ mémo "sql_info" de ma table séparément.

    Cela fonctionne très bien, même si je ne m'explique pas les raisons de ce comportement.

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

Discussions similaires

  1. [AC-2007] Mise à jour de champs sur formulaire construit sur une requête
    Par Plume27 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 31/08/2013, 12h49
  2. Requete mise à jour:erreur affichage sur formulaire
    Par milielf dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 12/07/2006, 11h25
  3. [EasyPHP] Mise à jour de GD sur EasyPHP
    Par Ricou13 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 10
    Dernier message: 06/02/2006, 23h29
  4. Réponses: 1
    Dernier message: 19/12/2005, 14h57
  5. Réponses: 17
    Dernier message: 15/10/2003, 01h45

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