Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

remplacer format texte en format nombre

16 réponses
Avatar
ALF
bonjour,
comment remplacer un montant en format texte avec un point en un montant en
format nombre avec virgule???Ou tout simplement comment remplacer un point en
virgule.la fonction ALTER TABLE [] ALTER COLUMN [] NUMBER ne convient pas car
efface les montants.... merci.
--
ALF

10 réponses

1 2
Avatar
Gafish
ALF wrote:
bonjour,


Bonjour,

comment remplacer un montant en format texte avec un point en un
montant en format nombre avec virgule???Ou tout simplement comment
remplacer un point en virgule.la fonction ALTER TABLE [] ALTER COLUMN
[] NUMBER ne convient pas car efface les montants.... merci.


Tu peux remplacer le point par la virgule avec la fonction Replace (ou
Remplacer) que tu peux utiliser par exemple dans une requête de mise à jour.
Dans ton cas, ce serait Remplacer([TonChamp]; "." ; ",")
Tu peux aussi utiliser des fonctions de conversion, par exemple
CDbl([TonChamp]) le transformera en réer double, CInt() en integer...

Arnaud
--
Charte du forum : http://users.skynet.be/mpfa/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
ALF
merci Gafish mais cela ne marche pas...
en effet lorsque j utilise la fonction Replace() ou CDbl() j'ai le message
"incompatibilité de type"..
le type de donnée "Texte" n'accepte pas apparemment la conversion en type de
donnée "Numérique"...
y a t il un autre moyen??.. autre que celui de remplacer sur excel le point
par la virgule, avant l importation sur access??... encore Merci.
--
ALF



ALF wrote:
bonjour,


Bonjour,

comment remplacer un montant en format texte avec un point en un
montant en format nombre avec virgule???Ou tout simplement comment
remplacer un point en virgule.la fonction ALTER TABLE [] ALTER COLUMN
[] NUMBER ne convient pas car efface les montants.... merci.


Tu peux remplacer le point par la virgule avec la fonction Replace (ou
Remplacer) que tu peux utiliser par exemple dans une requête de mise à jour.
Dans ton cas, ce serait Remplacer([TonChamp]; "." ; ",")
Tu peux aussi utiliser des fonctions de conversion, par exemple
CDbl([TonChamp]) le transformera en réer double, CInt() en integer...

Arnaud
--
Charte du forum : http://users.skynet.be/mpfa/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr






Avatar
Gafish
ALF wrote:
merci Gafish mais cela ne marche pas...
en effet lorsque j utilise la fonction Replace() ou CDbl() j'ai le
message "incompatibilité de type"..


Tu as aussi ce message sur le replace ?
Essaie le cdbl avec la virgule et avec le point. Pour le replace il faut le
faire avant la conversion, car le replace fonctionne sur du texte.

Arnaud
--
Charte du forum : http://users.skynet.be/mpfa/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
ALF
bonjour,
je te laisse ci joint 2 procedures qui retournent "incompatibilite de
type"..peut etre y trouveras tu une erreur de formulation...
dans la 1ere cela bloque sur DoCmd.RunCommand Replace("MONTANT CREDIT", ".",
",")...a noter que ALTER fonctionne au niveau de la conversion de type mais
restitue les valeurs a vide sauf pour celles qui n'ont pas de point.
dans la 2eme rien ne se passe suite au message "incompatibilite de type"
etcest encore Replace qui semble poser probleme ---->DoCmd.RunCommand
Replace("MONTANT CREDIT", ".", ",")....MONTANT CREDIT etant le nom du champ
et J2CREDITRJLJ le nom de la table ou le champs se trouve..
1 -
Private Function modiftable()
Dim dbs As database
Set dbs = CurrentDb
dbs.Execute "ALTER TABLE [J2CREDITRJLJ]ALTER COLUMN [DATE REQUETE] DATE;"
dbs.Execute "ALTER TABLE [J2CREDITRJLJ]ALTER COLUMN [DATE JUGMENT] DATE;"
dbs.Execute "ALTER TABLE [J2CREDITRJLJ]ALTER COLUMN [DATE CREDIT] DATE;"
dbs.Execute "ALTER TABLE [J2CREDITRJLJ]ALTER COLUMN [DATE FACTURE] DATE;"
DoCmd.OpenTable "J2CREDITRJLJ", acViewNormal, acEdit
DoCmd.RunCommand Replace("MONTANT CREDIT", ".", ",")
dbs.Execute "ALTER TABLE [J2CREDITRJLJ]ALTER COLUMN [MONTANT CREDIT] NUMBER;"
dbs.Close
End Function
--

2 -

Function maj_j2creditrjlj_xls()
On Error GoTo maj_j2creditrjlj_xls_Err

DoCmd.SetWarnings False
DoCmd.Echo True, "MACRO EN COURS D 'EXECUTION......"
DoCmd.OpenTable "J2CREDITRJLJ INITIAL", acNormal, acEdit
DoCmd.RunCommand acCmdSelectAllRecords
DoCmd.RunCommand acCmdDeleteRecord
DoCmd.Close acTable, "J2CREDITRJLJ INITIAL"
DoCmd.TransferSpreadsheet acImport, 5, "J2CREDITRJLJ INITIAL",
"E:deydierrjljinij2creditrjlj.xls", True, ""
DoCmd.OpenQuery "CREATION J2CREDITRJLJ", acNormal, acEdit
DoCmd.OpenQuery "MAJ PERS PHYSIQUE", acNormal, acEdit
DoCmd.OpenQuery "MAJ PERS MORALE", acNormal, acEdit
DoCmd.OpenQuery "maj j2rjlj1", acNormal, acEdit
DoCmd.OpenQuery "maj j2rjlj2", acNormal, acEdit
DoCmd.OpenQuery "maj j2rjlj3", acNormal, acEdit
DoCmd.OpenQuery "maj date requete j2rjlj", acNormal, acEdit
DoCmd.OpenTable "J2CREDITRJLJ", acNormal, acEdit
DoCmd.RunCommand Replace("MONTANT CREDIT", ".", ",")
DoCmd.RunCommand CDbl("MONTANT CREDIT")
MsgBox "Traitement terminé......", vbInformation, "Macro J2CREDITRJLJ"
DoCmd.Echo False, "MACRO EN COURS D 'EXECUTION......"


maj_j2creditrjlj_xls_Exit:
Exit Function

maj_j2creditrjlj_xls_Err:
MsgBox Error$
Resume maj_j2creditrjlj_xls_Exit

End Function

Merci.
ALF



ALF wrote:
merci Gafish mais cela ne marche pas...
en effet lorsque j utilise la fonction Replace() ou CDbl() j'ai le
message "incompatibilité de type"..


Tu as aussi ce message sur le replace ?
Essaie le cdbl avec la virgule et avec le point. Pour le replace il faut le
faire avant la conversion, car le replace fonctionne sur du texte.

Arnaud
--
Charte du forum : http://users.skynet.be/mpfa/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr






Avatar
Gafish
DoCmd.OpenTable "J2CREDITRJLJ", acViewNormal, acEdit
DoCmd.RunCommand Replace("MONTANT CREDIT", ".", ",")


Fais plutôt :
dbs.Execute "UPDATE [J2CREDITRJLJ] SET [J2CREDITRJLJ].[MONTANT
CREDIT]=Replace([J2CREDITRJLJ].[MONTANT CREDIT],""."","","")"

Arnaud
--
Charte du forum : http://users.skynet.be/mpfa/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
ALF
j'obtiens erreur d execution 3085. fonction replace non definie dans l
expression...
--
ALF



DoCmd.OpenTable "J2CREDITRJLJ", acViewNormal, acEdit
DoCmd.RunCommand Replace("MONTANT CREDIT", ".", ",")


Fais plutôt :
dbs.Execute "UPDATE [J2CREDITRJLJ] SET [J2CREDITRJLJ].[MONTANT
CREDIT]=Replace([J2CREDITRJLJ].[MONTANT CREDIT],""."","","")"

Arnaud
--
Charte du forum : http://users.skynet.be/mpfa/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr






Avatar
Gafish
ALF wrote:
j'obtiens erreur d execution 3085. fonction replace non definie
dans l expression...




Ah, tu dois être en 97 non ?
En ce cas, copie-colle ce code dans un module de ta base :


Public Function Replace(Txt As Variant, TxtSource As Variant, TxtCible As
Variant) As Variant

Dim x As String
Dim i As Integer

x = Txt
i = 1

If Len(TxtSource) > 0 Then
Do Until i > Len(x)
If Mid$(x, i, Len(TxtSource)) = TxtSource Then
x = Left$(x, i - 1) & TxtCible & Mid$(x, i + Len(TxtSource))
i = i + Len(TxtCible)
Else
i = i + 1
End If
Loop
End If

Replace = x

End Function


Arnaud
--
Charte du forum : http://users.skynet.be/mpfa/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
ALF
non je suis en access 2000..cest peut etre un probleme de reference
manquante....
--
ALF



ALF wrote:
j'obtiens erreur d execution 3085. fonction replace non definie
dans l expression...




Ah, tu dois être en 97 non ?
En ce cas, copie-colle ce code dans un module de ta base :


Public Function Replace(Txt As Variant, TxtSource As Variant, TxtCible As
Variant) As Variant

Dim x As String
Dim i As Integer

x = Txt
i = 1

If Len(TxtSource) > 0 Then
Do Until i > Len(x)
If Mid$(x, i, Len(TxtSource)) = TxtSource Then
x = Left$(x, i - 1) & TxtCible & Mid$(x, i + Len(TxtSource))
i = i + Len(TxtCible)
Else
i = i + 1
End If
Loop
End If

Replace = x

End Function


Arnaud
--
Charte du forum : http://users.skynet.be/mpfa/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr






Avatar
Gafish
ALF wrote:
non je suis en access 2000..cest peut etre un probleme de reference
manquante....




Est-ce que tu as une réference marquée manquante ?
Sinon as tu fait les mises à jour de ta version d'office, car il y a des
problèmes avec replace sur les premières versions. Tu peux aussi intégrer la
fonction que je t'ai donné et appeler celle-ci dans ta requête.

Arnaud
--
Charte du forum : http://users.skynet.be/mpfa/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
3stone
Salut,

"ALF"
| non je suis en access 2000..


Aurais tu une version Access 2000 sans mise à jour ?

a voir dans le menu "?", "A propos de Microsoft Access"



--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
1 2