OVH Cloud OVH Cloud

Majuscule Dans Formulaire

10 réponses
Avatar
Emilie
Bonsoir à tous ,

J'ai un code vba qui doit me permettre d'avoir systematiquement la première
lettre d'un champ Nom en majuscule ; voici ce code :
Me!MonControle.Value = strConv( Me!Monctrole.Value, vbpropercase )
Ce code est mis dans l'évènement BeforeUpdate de mon formulaire
Le problème est que dès que je sors de mon formulaire, j'ai un message
d'erreur :

Erreur 3331
Pour modifier cet enregistrement vous devez d'abord le sauvegarder

J'avoue que je ne comprends pas bien et que je ne sais pas ce que je dois
faire ;-(

Merci de votre aide ou de vos conseils

Bonne soirée à vous tous

A+

Emilie

10 réponses

Avatar
Anor
Salut ma petite Emilie !

Essaye de mettre ce code plutôt dans l'événement "sur avant mise à jour" du contrôle lui même,
et pas sur avant mise à jour du formulaire.

a+
--
Arnaud (qui va faire râler les vieux loups ;-))
--------------------------------------------------
Conseils d'utilisation : http://users.skynet.be/mpfa/
Site Perso : http://memoaccess.free.fr
/Réponses souhaitées sur ce forum, merci/
--------------------------------------------------


Emilie wrote:
| Bonsoir à tous ,
|
| J'ai un code vba qui doit me permettre d'avoir systematiquement la
| première lettre d'un champ Nom en majuscule ; voici ce code :
| Me!MonControle.Value = strConv( Me!Monctrole.Value, vbpropercase )
| Ce code est mis dans l'évènement BeforeUpdate de mon formulaire
| Le problème est que dès que je sors de mon formulaire, j'ai un message
| d'erreur :
|
| Erreur 3331
| Pour modifier cet enregistrement vous devez d'abord le sauvegarder
|
| J'avoue que je ne comprends pas bien et que je ne sais pas ce que je
| dois faire ;-(
|
| Merci de votre aide ou de vos conseils
|
| Bonne soirée à vous tous
|
| A+
|
| Emilie
Avatar
Emilie
Bonsoir mon petit Arnaud préféré ;-)

En ce jour mémorable,... Anor...
<http://memoaccess.free.fr/anor/email.htm> Nettoyait son clavier
quand le coup est parti tout seul !

Salut ma petite Emilie !

Essaye de mettre ce code plutôt dans l'événement "sur avant mise à
jour" du contrôle lui même, et pas sur avant mise à jour du
formulaire.


Merci de cette précision !! Et on ne se moque pas de mon erreur ;-)
Surtout que c'est toi qui a donné cette information à quelqu'un il y a
quelques jours lol
Et tu as bien précisé : Sur Avant mise à jour du FORMULAIRE ! ! ! na na
nère ! ! ! ! ;-)

Au fait, pendant que j'ai la chance de te tenir, n'oublie pas que j'attends
unepetite info que je t'avais demandée ! Tu vois, je ne perds pas le nord !
!

A bientôt mon petit Arnaud ! ! !
Dors bien et fais de beaux rêves ;-)

Emilie


Emilie wrote:
Bonsoir à tous ,

J'ai un code vba qui doit me permettre d'avoir systematiquement la
première lettre d'un champ Nom en majuscule ; voici ce code :
Me!MonControle.Value = strConv( Me!Monctrole.Value, vbpropercase
)
Ce code est mis dans l'évènement BeforeUpdate de mon formulaire
Le problème est que dès que je sors de mon formulaire, j'ai un
message
d'erreur :

Erreur 3331
Pour modifier cet enregistrement vous devez d'abord le sauvegarder

J'avoue que je ne comprends pas bien et que je ne sais pas ce que je
dois faire ;-(

Merci de votre aide ou de vos conseils

Bonne soirée à vous tous

A+

Emilie




Avatar
Emilie
Re Arnaud ,

En ce jour mémorable,... Anor...
<http://memoaccess.free.fr/anor/email.htm> Doit être fatigué car il me dit
:

Salut ma petite Emilie !

Essaye de mettre ce code plutôt dans l'événement "sur avant mise à
jour" du contrôle lui même, et pas sur avant mise à jour du
formulaire.


Eh bien tu vas rire ( sûrement plus que moi ;-) )car je viens de le faire
à l'instant et un message me dit : La macro ou la fonction attribuée à la
propriété Avant mise à jour empêche Access d'enregistrer les données pour ce
champs ' Erreur 2115 '

Qu'en pense tu ? Il s'agit du controle CboClient !
Voili voilou ! ! !
J'espère que cela ne t'empêchera pas de dormir mon petit Arnaud !

A bientôt ;-)

Emilie



Bonsoir à tous ,

J'ai un code vba qui doit me permettre d'avoir systematiquement la
première lettre d'un champ Nom en majuscule ; voici ce code :
Me!MonControle.Value = strConv( Me!Monctrole.Value, vbpropercase
)
Ce code est mis dans l'évènement BeforeUpdate de mon formulaire
Le problème est que dès que je sors de mon formulaire, j'ai un
message
d'erreur :

Erreur 3331
Pour modifier cet enregistrement vous devez d'abord le sauvegarder

J'avoue que je ne comprends pas bien et que je ne sais pas ce que je
dois faire ;-(

Merci de votre aide ou de vos conseils

Bonne soirée à vous tous

A+

Emilie




Avatar
Anor
Emilie wrote:
|
| Au fait, pendant que j'ai la chance de te tenir, n'oublie pas que
| j'attends unepetite info que je t'avais demandée ! Tu vois, je ne
| perds pas le nord ! !
|

oups désolé, je ne me souviens plus.
je te recontacte en bal perso ....

--
à+
Arnaud
--------------------------------------------------
Conseils d'utilisation : http://users.skynet.be/mpfa/
Site Perso : http://memoaccess.free.fr
/Réponses souhaitées sur ce forum, merci/
--------------------------------------------------
Avatar
Eric
Bonjour Emilie,

Sans vouloir trop interferer dans le fil ,-)

Une idée:
Pourquoi ne ferais-tu pas la mise en forme au remplissage de ta cboClient
Puisqu'apparemmment il s'agit d'une liste déroulante, je mettrai en source
:
SELECT [tClient].[NumClient], StrConv([tClient].[Societe_Client],3) AS
CorrectionNom FROM tClient ORDER BY [societe_client];

ou dans l'outil Requête, CorrectionNom: ConvChaîne([tClient].
[Societe_Client];3)

A+
Eric
Avatar
Anor
Rebonjour,
je ne t'ai toujours pas recontactée, mais....
pour ta liste déroulante, à mon avis, l'erreur vient du fait que :
1- tu alimentes la liste depuis la table A
2 - tu veux saisir dans la Table B (liste non indépendante)

Donc

soit les données de la table A ne sont pas formatées
soit tu tentes de mettre à jour la valeur de B alors qu'elle n'est pas encore dans A

Par conséquent,

il faut gérer l'absence dans liste et formater juste avant l'ajout dans la table A

Voilà

a+
Arnaud
Avatar
Emilie
Bonsoir Eric ,

Eric... Annonçait haut et fort !

Sans vouloir trop interferer dans le fil ,-)
Mais non, il n' y a pas de problèmes ! ! ;-)



Une idée:
Pourquoi ne ferais-tu pas la mise en forme au remplissage de ta
cboClient Puisqu'apparemmment il s'agit d'une liste déroulante, je
mettrai en source

SELECT [tClient].[NumClient], StrConv([tClient].[Societe_Client],3) AS

CorrectionNom FROM tClient ORDER BY [societe_client];

ou dans l'outil Requête, CorrectionNom: ConvChaîne([tClient].
[Societe_Client];3)


Je note cette idée ; ça peut effectivement marcher et résoudre mon problème
;
en tout cas, un grand merci pour ton aide

A+

Emilie


Avatar
Anor
Bonjour,

/Réponse donnée en bal perso pour ceux qui ont suivi le fil/

Tu parles d'un client existant ou d'un client à ajouter ?

- Si existant, ce sont les données de la table qu'il faut modifier

- Si celui à ajouter, au lieu de dire

CurrentDb.Execute "INSERT INTO TblClients(NomClient) " _
& "SELECT """ & NewData & """ ;"

tu mets

CurrentDb.Execute "INSERT INTO TblClients(NomClient) " _
& "SELECT """ & StrConv(NewData, vbProperCase) & """
;"
Mais il faudra mettre à jour les clients de la table client.

Tu crées une requête, tu passes en mode SQL et tu colles ceci :

UPDATE TblClients SET NomClient = StrConv([NomClient],3);

Tu sauves et tu exécutes ta requête.
Tous les noms des clients seront Majuscule puis minuscules.

Ah oui :pourquoi 3 ?
Parce que dans la fenêtre de débogage vba, si tu écris
? vbpropercase
ça retourne 3

| Ca fonctionne très bien dans le formulaire Clients et ça coince dans
| le Cbo du form Commandes.

ce sont bien 2 listes différentes.
celle du frmClients est indépendante et permet de se positionner sur
l'enregistrement du client correspondant.
celle du frmcommandes est liée au numéro de client de la table commandes
(clé externe).

et ce que je t'ai proposé ci-dessus concerne bien la liste du frmcommandes.
à+
--
Arnaud
--------------------------------------------------
Conseils d'utilisation : http://users.skynet.be/mpfa/
Site Perso : http://memoaccess.free.fr
/Réponses souhaitées sur ce forum, merci/
--------------------------------------------------
Avatar
Emilie
Re Arnaud,

.. Anor...
<http://memoaccess.free.fr/anor/email.htm> Wrote :

Bonjour,

/Réponse donnée en bal perso pour ceux qui ont suivi le fil/


Je te remercie ; je t'ai aussi répondu en bal perso

A+

Emilie

Avatar
Pierre CFI [mvp]
on a franchit le cap ? bal perso ? je vous ai à l'oeil tous les 2 :o)))

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Emilie" a écrit dans le message de news:ew%
Re Arnaud,

.. Anor...
<http://memoaccess.free.fr/anor/email.htm> Wrote :

Bonjour,

/Réponse donnée en bal perso pour ceux qui ont suivi le fil/


Je te remercie ; je t'ai aussi répondu en bal perso

A+

Emilie