OVH Cloud OVH Cloud

Ignorer les espaces

16 réponses
Avatar
gael_Thierry
Bonjour,

Certains clients imposent d'indiquer dans nos factures leur
références.(c'est bien légitime !)
Mais leurs références sont extrêmement disparates et impossible à mettre
dans un champs formatté.

Je voudrais que systématiquement soient ignorés les espaces qui auraient été
introduits dans la réf.du client.
Donc, si le client nous indique: MT 053 567, et que cette réf est encodée
comme telle, je voudrais convertir cela en MT053567. (Le client acceptera).

Comment faire ?

Merci,

Gael Thierry

10 réponses

1 2
Avatar
Raymond [mvp]
Bonjour.

Tu peux faire ceci:

variable= Replace(variable, " ", "")

pour les versions 2000 mini:
http://officesystem.access.free.fr/vba/replace1.htm
pour la version 97, voir la fonction page :
http://officesystem.access.free.fr/vba/replace.htm
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"gael_Thierry" a écrit dans le message de news:

Bonjour,

Certains clients imposent d'indiquer dans nos factures leur
références.(c'est bien légitime !)
Mais leurs références sont extrêmement disparates et impossible à mettre
dans un champs formatté.

Je voudrais que systématiquement soient ignorés les espaces qui auraient
été
introduits dans la réf.du client.
Donc, si le client nous indique: MT 053 567, et que cette réf est encodée
comme telle, je voudrais convertir cela en MT053567. (Le client
acceptera).

Comment faire ?

Merci,

Gael Thierry




Avatar
gael_Thierry
"Raymond [mvp]" a écrit dans le message de
news:%
Bonjour.

Tu peux faire ceci:

variable= Replace(variable, " ", "")

pour les versions 2000 mini:
http://officesystem.access.free.fr/vba/replace1.htm
pour la version 97, voir la fonction page :
http://officesystem.access.free.fr/vba/replace.htm
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"gael_Thierry" a écrit dans le message de news:

Bonjour,

Certains clients imposent d'indiquer dans nos factures leur
références.(c'est bien légitime !)
Mais leurs références sont extrêmement disparates et impossible à mettre
dans un champs formatté.

Je voudrais que systématiquement soient ignorés les espaces qui auraient
été
introduits dans la réf.du client.
Donc, si le client nous indique: MT 053 567, et que cette réf est
encodée


comme telle, je voudrais convertir cela en MT053567. (Le client
acceptera).

Comment faire ?

Merci,

Gael Thierry




Merci Raymond, mais je crains d'avoir loupé qqch.
(Je suis en Access 2000, oublié de le dire...)

refcli_CC est le champ auquel il faut retirer les espaces,
J'ai créé dans mon formulaire une zone de texte dont la source-contrôle est:
replace(refcli_CC, find " ", replace "")
Résultat: #Nom?

Et si je remplace la source-contrôle par
=replace(refcli_CC, find " ", replace "")
message d'erreur ...omis opérande ou opérateur... caractère non
valide, etc.

Qu'ai-je fait de mal ?
Merci,
Gael


Avatar
Hervé DUCARNE
Bonjour,
Tu n'as pas mis ce que Raymond t'as dit...

Mets dans la source de ton controle du formulaire :
=replace (refcli_CC;" ";"")
et ça devrait aller...

@+

"gael_Thierry" a écrit dans le message de
news:


Merci Raymond, mais je crains d'avoir loupé qqch.
(Je suis en Access 2000, oublié de le dire...)

refcli_CC est le champ auquel il faut retirer les espaces,
J'ai créé dans mon formulaire une zone de texte dont la source-contrôle
est:

replace(refcli_CC, find " ", replace "")
Résultat: #Nom?

Et si je remplace la source-contrôle par
=replace(refcli_CC, find " ", replace "")
message d'erreur ...omis opérande ou opérateur... caractère non
valide, etc.

Qu'ai-je fait de mal ?
Merci,
Gael







Avatar
Raymond [mvp]
Bonjour.

il ne faut pas le mettre dans le source contrôle sinon tu ne pourras jamais
modifier la donnée.
il faut traiter la donnée sur l'événement afterupdate de ton contrôle
Private Sub Monchamp_AfterUpdate()
Me.Monchamp= Replace(Me.Monchamp, " ", "")
End Sub

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"gael_Thierry" a écrit dans le message de news:

Merci Raymond, mais je crains d'avoir loupé qqch.
(Je suis en Access 2000, oublié de le dire...)

refcli_CC est le champ auquel il faut retirer les espaces,
J'ai créé dans mon formulaire une zone de texte dont la source-contrôle
est:
replace(refcli_CC, find " ", replace "")
Résultat: #Nom?

Et si je remplace la source-contrôle par
=replace(refcli_CC, find " ", replace "")
message d'erreur ...omis opérande ou opérateur... caractère non
valide, etc.

Qu'ai-je fait de mal ?
Merci,
Gael







Avatar
Hervé DUCARNE
Oups, la source du controle de ton état bien sûr...


"Hervé DUCARNE" a écrit dans le message de
news:%23$
Bonjour,
Tu n'as pas mis ce que Raymond t'as dit...

Mets dans la source de ton controle du formulaire :
=replace (refcli_CC;" ";"")
et ça devrait aller...

@+

"gael_Thierry" a écrit dans le message de
news:


Merci Raymond, mais je crains d'avoir loupé qqch.
(Je suis en Access 2000, oublié de le dire...)

refcli_CC est le champ auquel il faut retirer les espaces,
J'ai créé dans mon formulaire une zone de texte dont la source-contrôle
est:

replace(refcli_CC, find " ", replace "")
Résultat: #Nom?

Et si je remplace la source-contrôle par
=replace(refcli_CC, find " ", replace "")
message d'erreur ...omis opérande ou opérateur... caractère non
valide, etc.

Qu'ai-je fait de mal ?
Merci,
Gael











Avatar
gael_Thierry
"Raymond [mvp]" a écrit dans le message de
news:
Bonjour.

il ne faut pas le mettre dans le source contrôle sinon tu ne pourras
jamais

modifier la donnée.
il faut traiter la donnée sur l'événement afterupdate de ton contrôle
Private Sub Monchamp_AfterUpdate()
Me.Monchamp= Replace(Me.Monchamp, " ", "")
End Sub



Grand merci, ça marche.
Reste une question subsidiaire: la table contient 850 enregistrements dont
le champ Refcli_CC
contient des espaces.
Y a-t-il moyen de mettre à jour l'ensemble des champs erronés ? En une seule
opération ?
Une solution très inélégante consiste à faire un Ctrl X puis Ctrl V sur le
champs, ça fonctionne, mais il y a certainement plus rapide...peut-être plus
simple

Gael

Avatar
Raymond [mvp]
tu fais une requête sur ta table:

UPDATE Table1 SET Table1.Refcli_CC = Replace([Refcli_CC]," ","");

table1 étant le nom de ta table
fais une copie avant de lancer la mise à jour
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"gael_Thierry" a écrit dans le message de news:


"Raymond [mvp]" a écrit dans le message
de
news:
Bonjour.

il ne faut pas le mettre dans le source contrôle sinon tu ne pourras
jamais

modifier la donnée.
il faut traiter la donnée sur l'événement afterupdate de ton contrôle
Private Sub Monchamp_AfterUpdate()
Me.Monchamp= Replace(Me.Monchamp, " ", "")
End Sub



Grand merci, ça marche.
Reste une question subsidiaire: la table contient 850 enregistrements
dont
le champ Refcli_CC
contient des espaces.
Y a-t-il moyen de mettre à jour l'ensemble des champs erronés ? En une
seule
opération ?
Une solution très inélégante consiste à faire un Ctrl X puis Ctrl V sur le
champs, ça fonctionne, mais il y a certainement plus rapide...peut-être
plus
simple

Gael







Avatar
Pierre CFI [mvp]
oui, une req mise à jour

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

Site pour bien commencer
Access http://users.skynet.be/mpfa/

"gael_Thierry" a écrit dans le message de news:

"Raymond [mvp]" a écrit dans le message de
news:
Bonjour.

il ne faut pas le mettre dans le source contrôle sinon tu ne pourras
jamais

modifier la donnée.
il faut traiter la donnée sur l'événement afterupdate de ton contrôle
Private Sub Monchamp_AfterUpdate()
Me.Monchamp= Replace(Me.Monchamp, " ", "")
End Sub



Grand merci, ça marche.
Reste une question subsidiaire: la table contient 850 enregistrements dont
le champ Refcli_CC
contient des espaces.
Y a-t-il moyen de mettre à jour l'ensemble des champs erronés ? En une seule
opération ?
Une solution très inélégante consiste à faire un Ctrl X puis Ctrl V sur le
champs, ça fonctionne, mais il y a certainement plus rapide...peut-être plus
simple

Gael







Avatar
gael_Thierry
Raymond,

J'ai pris une copie de ma table et l'ai nommée Table1 (pour être certain...)
J'ai recopié exactement ton instruction dans le code SQL
A l'exécution de la req, message: "Fonction 'Replace' non définie dans
l'expression"

Pas d'aide dispo pour ce message d'erreur.

Désolé d'abuser, mais quid ?

Gael



"Raymond [mvp]" a écrit dans le message de
news:uYeij%
tu fais une requête sur ta table:

UPDATE Table1 SET Table1.Refcli_CC = Replace([Refcli_CC]," ","");

table1 étant le nom de ta table
fais une copie avant de lancer la mise à jour
--


Avatar
Raymond [mvp]
ne serais-tu pas en version 97 ? ou antérieure ?

si oui, replace (remplacer) n'existait pas et il faut placer une fonction de
substitution dans un module de ton code. tu trouveras cette fonction sur la
page: http://officesystem.access.free.fr/ex_remplacer_texte.htm


--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"gael_Thierry" a écrit dans le message de news:

Raymond,

J'ai pris une copie de ma table et l'ai nommée Table1 (pour être
certain...)
J'ai recopié exactement ton instruction dans le code SQL
A l'exécution de la req, message: "Fonction 'Replace' non définie dans
l'expression"

Pas d'aide dispo pour ce message d'erreur.

Désolé d'abuser, mais quid ?

Gael



"Raymond [mvp]" a écrit dans le message
de
news:uYeij%
tu fais une requête sur ta table:

UPDATE Table1 SET Table1.Refcli_CC = Replace([Refcli_CC]," ","");

table1 étant le nom de ta table
fais une copie avant de lancer la mise à jour
--






1 2