Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/02/2011, 12h01   #1
Membre à l'essai
 
Ben
Inscription : août 2010
Messages : 55
Détails du profil
Informations personnelles :
Nom : Ben
Âge : 29
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : août 2010
Messages : 55
Points : 21
Points : 21
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 :
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
syntax_error est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 15h31   #2
Membre Expert
 
Homme Pierre ANTOINE
Inscription : février 2008
Messages : 650
Détails du profil
Informations personnelles :
Nom : Homme Pierre ANTOINE
Âge : 43
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : février 2008
Messages : 650
Points : 1 302
Points : 1 302
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 :
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
pier.antoine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 15h47   #3
Membre à l'essai
 
Ben
Inscription : août 2010
Messages : 55
Détails du profil
Informations personnelles :
Nom : Ben
Âge : 29
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : août 2010
Messages : 55
Points : 21
Points : 21
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).
syntax_error est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2011, 05h02   #4
Membre Expert
 
Homme Pierre ANTOINE
Inscription : février 2008
Messages : 650
Détails du profil
Informations personnelles :
Nom : Homme Pierre ANTOINE
Âge : 43
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : février 2008
Messages : 650
Points : 1 302
Points : 1 302
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
pier.antoine est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/02/2011, 09h32   #5
Membre à l'essai
 
Ben
Inscription : août 2010
Messages : 55
Détails du profil
Informations personnelles :
Nom : Ben
Âge : 29
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : août 2010
Messages : 55
Points : 21
Points : 21
Bonjour,

Je me suis dirigé vers cette solution.
Je cherche...
syntax_error est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2011, 14h52   #6
Membre à l'essai
 
Ben
Inscription : août 2010
Messages : 55
Détails du profil
Informations personnelles :
Nom : Ben
Âge : 29
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : août 2010
Messages : 55
Points : 21
Points : 21
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.
syntax_error est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h45.


 
 
 
 
Partenaires

Hébergement Web