Pour modifier le séparateur décimal d'un champ, voici le fonction
Set mj = db.OpenRecordset("temp")
If Not mj.BOF Then
mj.MoveFirst
Do Until mj.EOF
mj.Edit
mj![4] = Format(Val(ReplaceString(mj![4], ",", ".")), "0.00")
mj.Update
mj.MoveNext
Loop
End If
mj.Close
Serait-il possible d'éffectuer la même opération avec
db.execute ("UPDATE [TEMP] SET [4]=...")
Est-ce que cela serait plus rapide ?
Cordialement
Jeff
--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Raymond [mvp]
Bonjour Jeff.
le changement de valeur ne prend pas plus de temps en requête qu"en vba car c'est la même fonction. Mais une requête est nettement plus performante qu'un recordset vba. sur une grande quantité d'enregistrement il vaut mieux choisir la requête Toutefois, ce genre de fonction appliquée à un champ de table va te poser des problèmes de compatibilité de type. En effet le champ [4] étant je pense numérique lorsque tu vas mettre un point dedans tu vas te faire jeter quelle que soit la méthode utilisée. la fonction format ne fonctionnera pas correctement et access n'acceptera pas le point dans un champ numérique. Tu vas contredire les paramètres régionaux et ton appli est inutilisable en multi-langage. en général on utilise cetet fonction qu'en requête sélection et non en requête mise à jour. -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour une meilleure efficacité de tes interventions sur MPFA
"Jeff" a écrit dans le message de news:
Bonjour à tous
Pour modifier le séparateur décimal d'un champ, voici le fonction
Set mj = db.OpenRecordset("temp") If Not mj.BOF Then mj.MoveFirst Do Until mj.EOF mj.Edit mj![4] = Format(Val(ReplaceString(mj![4], ",", ".")), "0.00") mj.Update mj.MoveNext Loop End If mj.Close
Serait-il possible d'éffectuer la même opération avec
db.execute ("UPDATE [TEMP] SET [4]=...")
Est-ce que cela serait plus rapide ?
Cordialement
Jeff
-- Ceci est une signature automatique de MesNews. Site : http://mesnews.no-ip.com
Bonjour Jeff.
le changement de valeur ne prend pas plus de temps en requête qu"en vba car
c'est la même fonction. Mais une requête est nettement plus performante
qu'un recordset vba. sur une grande quantité d'enregistrement il vaut mieux
choisir la requête
Toutefois, ce genre de fonction appliquée à un champ de table va te poser
des problèmes de compatibilité de type. En effet le champ [4] étant je pense
numérique lorsque tu vas mettre un point dedans tu vas te faire jeter quelle
que soit la méthode utilisée. la fonction format ne fonctionnera pas
correctement et access n'acceptera pas le point dans un champ numérique. Tu
vas contredire les paramètres régionaux et ton appli est inutilisable en
multi-langage. en général on utilise cetet fonction qu'en requête sélection
et non en requête mise à jour.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA
"Jeff" <jf@jf.com> a écrit dans le message de
news:mesnews.32fe7d3c.c28142b8.2.4671@jf.com...
Bonjour à tous
Pour modifier le séparateur décimal d'un champ, voici le fonction
Set mj = db.OpenRecordset("temp")
If Not mj.BOF Then
mj.MoveFirst
Do Until mj.EOF
mj.Edit
mj![4] = Format(Val(ReplaceString(mj![4], ",", ".")), "0.00")
mj.Update
mj.MoveNext
Loop
End If
mj.Close
Serait-il possible d'éffectuer la même opération avec
db.execute ("UPDATE [TEMP] SET [4]=...")
Est-ce que cela serait plus rapide ?
Cordialement
Jeff
--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
le changement de valeur ne prend pas plus de temps en requête qu"en vba car c'est la même fonction. Mais une requête est nettement plus performante qu'un recordset vba. sur une grande quantité d'enregistrement il vaut mieux choisir la requête Toutefois, ce genre de fonction appliquée à un champ de table va te poser des problèmes de compatibilité de type. En effet le champ [4] étant je pense numérique lorsque tu vas mettre un point dedans tu vas te faire jeter quelle que soit la méthode utilisée. la fonction format ne fonctionnera pas correctement et access n'acceptera pas le point dans un champ numérique. Tu vas contredire les paramètres régionaux et ton appli est inutilisable en multi-langage. en général on utilise cetet fonction qu'en requête sélection et non en requête mise à jour. -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour une meilleure efficacité de tes interventions sur MPFA
"Jeff" a écrit dans le message de news:
Bonjour à tous
Pour modifier le séparateur décimal d'un champ, voici le fonction
Set mj = db.OpenRecordset("temp") If Not mj.BOF Then mj.MoveFirst Do Until mj.EOF mj.Edit mj![4] = Format(Val(ReplaceString(mj![4], ",", ".")), "0.00") mj.Update mj.MoveNext Loop End If mj.Close
Serait-il possible d'éffectuer la même opération avec
db.execute ("UPDATE [TEMP] SET [4]=...")
Est-ce que cela serait plus rapide ?
Cordialement
Jeff
-- Ceci est une signature automatique de MesNews. Site : http://mesnews.no-ip.com
Jeff
Bonjour Raymond,
Donc il vaut mieux passer par une requète mise à jour sans la fonction format mais en conservant ReplaceString d'aprés ce que je comprends ?
Pour ce qui est du problème de compatibilité, mes paramètres régionaux prennent en compte le point pour les nombres.
Merci pour ta réponse
Cordialement
Jeff
"Raymond [mvp]" vient de nous annoncer :
Bonjour Jeff.
le changement de valeur ne prend pas plus de temps en requête qu"en vba car c'est la même fonction. Mais une requête est nettement plus performante qu'un recordset vba. sur une grande quantité d'enregistrement il vaut mieux choisir la requête Toutefois, ce genre de fonction appliquée à un champ de table va te poser des problèmes de compatibilité de type. En effet le champ [4] étant je pense numérique lorsque tu vas mettre un point dedans tu vas te faire jeter quelle que soit la méthode utilisée. la fonction format ne fonctionnera pas correctement et access n'acceptera pas le point dans un champ numérique. Tu vas contredire les paramètres régionaux et ton appli est inutilisable en multi-langage. en général on utilise cetet fonction qu'en requête sélection et non en requête mise à jour. -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour une meilleure efficacité de tes interventions sur MPFA
"Jeff" a écrit dans le message de news:
Bonjour à tous
Pour modifier le séparateur décimal d'un champ, voici le fonction
Set mj = db.OpenRecordset("temp") If Not mj.BOF Then mj.MoveFirst Do Until mj.EOF mj.Edit mj![4] = Format(Val(ReplaceString(mj![4], ",", ".")), "0.00") mj.Update mj.MoveNext Loop End If mj.Close
Serait-il possible d'éffectuer la même opération avec
db.execute ("UPDATE [TEMP] SET [4]=...")
Est-ce que cela serait plus rapide ?
Cordialement
Jeff
-- Ceci est une signature automatique de MesNews. Site : http://mesnews.no-ip.com
-- Ceci est une signature automatique de MesNews. Site : http://mesnews.no-ip.com
Bonjour Raymond,
Donc il vaut mieux passer par une requète mise à jour
sans la fonction format mais en conservant ReplaceString
d'aprés ce que je comprends ?
Pour ce qui est du problème de compatibilité, mes paramètres
régionaux prennent en compte le point pour les nombres.
Merci pour ta réponse
Cordialement
Jeff
"Raymond [mvp]" vient de nous annoncer :
Bonjour Jeff.
le changement de valeur ne prend pas plus de temps en requête qu"en vba car
c'est la même fonction. Mais une requête est nettement plus performante
qu'un recordset vba. sur une grande quantité d'enregistrement il vaut mieux
choisir la requête
Toutefois, ce genre de fonction appliquée à un champ de table va te poser
des problèmes de compatibilité de type. En effet le champ [4] étant je pense
numérique lorsque tu vas mettre un point dedans tu vas te faire jeter quelle
que soit la méthode utilisée. la fonction format ne fonctionnera pas
correctement et access n'acceptera pas le point dans un champ numérique. Tu
vas contredire les paramètres régionaux et ton appli est inutilisable en
multi-langage. en général on utilise cetet fonction qu'en requête sélection
et non en requête mise à jour.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA
"Jeff" <jf@jf.com> a écrit dans le message de
news:mesnews.32fe7d3c.c28142b8.2.4671@jf.com...
Bonjour à tous
Pour modifier le séparateur décimal d'un champ, voici le fonction
Set mj = db.OpenRecordset("temp")
If Not mj.BOF Then
mj.MoveFirst
Do Until mj.EOF
mj.Edit
mj![4] = Format(Val(ReplaceString(mj![4], ",", ".")), "0.00")
mj.Update
mj.MoveNext
Loop
End If
mj.Close
Serait-il possible d'éffectuer la même opération avec
db.execute ("UPDATE [TEMP] SET [4]=...")
Est-ce que cela serait plus rapide ?
Cordialement
Jeff
--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
Donc il vaut mieux passer par une requète mise à jour sans la fonction format mais en conservant ReplaceString d'aprés ce que je comprends ?
Pour ce qui est du problème de compatibilité, mes paramètres régionaux prennent en compte le point pour les nombres.
Merci pour ta réponse
Cordialement
Jeff
"Raymond [mvp]" vient de nous annoncer :
Bonjour Jeff.
le changement de valeur ne prend pas plus de temps en requête qu"en vba car c'est la même fonction. Mais une requête est nettement plus performante qu'un recordset vba. sur une grande quantité d'enregistrement il vaut mieux choisir la requête Toutefois, ce genre de fonction appliquée à un champ de table va te poser des problèmes de compatibilité de type. En effet le champ [4] étant je pense numérique lorsque tu vas mettre un point dedans tu vas te faire jeter quelle que soit la méthode utilisée. la fonction format ne fonctionnera pas correctement et access n'acceptera pas le point dans un champ numérique. Tu vas contredire les paramètres régionaux et ton appli est inutilisable en multi-langage. en général on utilise cetet fonction qu'en requête sélection et non en requête mise à jour. -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour une meilleure efficacité de tes interventions sur MPFA
"Jeff" a écrit dans le message de news:
Bonjour à tous
Pour modifier le séparateur décimal d'un champ, voici le fonction
Set mj = db.OpenRecordset("temp") If Not mj.BOF Then mj.MoveFirst Do Until mj.EOF mj.Edit mj![4] = Format(Val(ReplaceString(mj![4], ",", ".")), "0.00") mj.Update mj.MoveNext Loop End If mj.Close
Serait-il possible d'éffectuer la même opération avec
db.execute ("UPDATE [TEMP] SET [4]=...")
Est-ce que cela serait plus rapide ?
Cordialement
Jeff
-- Ceci est une signature automatique de MesNews. Site : http://mesnews.no-ip.com
-- Ceci est une signature automatique de MesNews. Site : http://mesnews.no-ip.com
Raymond [mvp]
si tes paramètres régionaux prennent les points, il faut passer comme tu l'as prévu par une conversion en texte avec Str + replace + conversion en num avec Val du genre: Val(Replace(Str(Nombre), ",", ".")) et sans le format car de toute façon le champ va récupérer le bon format fais bien des copies avant de commencer. -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour une meilleure efficacité de tes interventions sur MPFA
"Jeff" a écrit dans le message de news:
Bonjour Raymond,
Donc il vaut mieux passer par une requète mise à jour sans la fonction format mais en conservant ReplaceString d'aprés ce que je comprends ?
Pour ce qui est du problème de compatibilité, mes paramètres régionaux prennent en compte le point pour les nombres.
Merci pour ta réponse
Cordialement
Jeff
si tes paramètres régionaux prennent les points, il faut passer comme tu
l'as prévu par une conversion en texte avec Str + replace + conversion en
num avec Val du genre: Val(Replace(Str(Nombre), ",", ".")) et sans le format
car de toute façon le champ va récupérer le bon format
fais bien des copies avant de commencer.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA
"Jeff" <jf@jf.com> a écrit dans le message de
news:mesnews.33767d3c.9dadb298.3.4671@jf.com...
Bonjour Raymond,
Donc il vaut mieux passer par une requète mise à jour
sans la fonction format mais en conservant ReplaceString
d'aprés ce que je comprends ?
Pour ce qui est du problème de compatibilité, mes paramètres
régionaux prennent en compte le point pour les nombres.
si tes paramètres régionaux prennent les points, il faut passer comme tu l'as prévu par une conversion en texte avec Str + replace + conversion en num avec Val du genre: Val(Replace(Str(Nombre), ",", ".")) et sans le format car de toute façon le champ va récupérer le bon format fais bien des copies avant de commencer. -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour une meilleure efficacité de tes interventions sur MPFA
"Jeff" a écrit dans le message de news:
Bonjour Raymond,
Donc il vaut mieux passer par une requète mise à jour sans la fonction format mais en conservant ReplaceString d'aprés ce que je comprends ?
Pour ce qui est du problème de compatibilité, mes paramètres régionaux prennent en compte le point pour les nombres.