Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access
Access Forum d'entraide sur Microsoft Access. Avant de poster -> La F.A.Q Access
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 23/12/2010, 13h18   #1
Invité de passage
 
Inscription : décembre 2010
Messages : 10
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 10
Points : 4
Points : 4
Envoyer un message via Yahoo à rfnman
Par défaut VBA et option régionale (symbole de décimal)

Bonjour,
J’ai crée une BD sous Access 2007 avec des codes en VBA.
Dans un formulaire, j’ai un champ calculé avec une intervention d’une requête et géré par un VBA avec la fonction « DMax ».
Le problème c’est que, tout marche à merveille quand le symbole de décimal (options régionales) est en point « . », mais il affiche « #Nom ? » pour un symbole de décimal en virgule « , ».
Pour info, avant de constater que c’est la source du problème, j’avais essayé tous les types de données, en modifiant le type du champ de la table source, et en utilisant une variable intermédiaire dans VBA (pour préciser le type de donnée calculée).
En fait, il y aura plusieurs personnes qui vont utiliser la base (en réseau), c’est pourquoi j’aimerai plutôt trouver une solution que de modifier les paramètres de tous les ordinateurs utilisant cette base de données.
Merci d’avance pour votre aide.
rfnman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2010, 14h44   #2
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonjour,

Le symbole utilisé comme séparateur décimal ne pose problème que si on cherche à transformer une expression texte en nombre.
Si la donnée est stockée dans un champ de type numérique, et que tu as une erreur en fonction du séparateur décimal, c'est qu'à un moment donné il y a conversion (sans doute involontaire) en type texte.

Quelle sont toutes les manipulations effectuées sur le champ, et dans quel ordre ?

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2010, 11h21   #3
Invité de passage
 
Inscription : décembre 2010
Messages : 10
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 10
Points : 4
Points : 4
Envoyer un message via Yahoo à rfnman
Par défaut VBA et symbole de décimal "point" ou "virgule"

Bonjour,

Je vous envoie en fichier attaché une BDD réduit que j'ai crée pour vous. Avec quoi vous pouvez trouver, dans le champ "From" du formulaire "F_trou" le pb à résoudre. Le but de l'excecice est de mettre automatique une valeur par défaut, qui est égale à la dérnière valeur du champ "To" de la même formulaire, ceci s'excecute par l'évenement From_enter().

Bonne réception et a+.
rfnman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2010, 11h52   #4
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonjour,

désolé je n'ai pas Access 2007 sous la main.
Tu peux convertir la pièce jointe en Access 2000 ou 2003 ?

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2010, 14h20   #5
Invité de passage
 
Inscription : décembre 2010
Messages : 10
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 10
Points : 4
Points : 4
Envoyer un message via Yahoo à rfnman
Par défaut VBA et option régionale - panneau de configuration

Volontiers. J'espère que ça va marcher.

NB: il faut balancer entre "point" et "virgule le symbole de décimal dans le panneau de configuration pour voir le problème.

A+
rfnman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2010, 14h55   #6
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Re,

La propriété DefaultValue d'un contrôle est une chaîne de caractère.
Lorsqu'on manipule cette propriété avec Access (via la fenêtre propriétés), on doit écrire les nombres décimaux en utilisant le symbole décimal défini dans les paramètres régionaux.
En revanche, lorsqu'on le fait par VBA, le symbole décimal doit être un point.
Pour être sûr de toujours avoir un point lorsqu'on convertit un nombre en texte, on peut utiliser Str(..).
Code :
From.DefaultValue = Str(tempo)
A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 28/12/2010, 08h25   #7
Invité de passage
 
Inscription : décembre 2010
Messages : 10
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 10
Points : 4
Points : 4
Envoyer un message via Yahoo à rfnman
Par défaut VBA et option régionale

Merci pour votre aide.


Je marque ce problème comme résolu.

A bientôt.
rfnman 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 10h42.


 
 
 
 
Partenaires

Hébergement Web