Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
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 27/06/2011, 14h43   #1
Nouveau Membre du Club
 
Inscription : mai 2009
Messages : 124
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 124
Points : 26
Points : 26
Par défaut problème de code qui marche sur un pc mais pas tous

bonjour à tous,
Je suis actuellement en stage dans une entreprise, l'application que je devellope sous Access tourne sur le pc sur lequel je la devellope mais quand je veux la faire tourner sur un autre pc de l'entreprise elle ne fonctionne plus . Sachant que l'application et sur un serveur auquel tous le monde peut avoir acces.

voici la ligne qui déclenche une erreur
Code :
1
2
 
cpt1 = cpt1 + CDbl(Replace(sqlp!valeur, ".", ","))
l'erreur qui se déclenche est incompatibilité de type
sachant que sqlp!valeur est un champ au format texte dans ma base de données.

Avez vous des réponse ?? moi je comprend rien

bonne journée a vous tous
rominous41 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 15h28   #2
Responsable Access
 
Avatar de Arkham46
 
Inscription : septembre 2003
Messages : 4 300
Détails du profil
Informations personnelles :
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : septembre 2003
Messages : 4 300
Points : 7 939
Points : 7 939
bjr,

cdbl dépend du séparateur décimal choisi dans les options régionales de windows (apparement "," sur un pc et "." sur un autre)

le champ provenant d'une base de données, il est sans doute toujours avec un point en séparateur décimal?

essayez :
Code :
cpt1 = cpt1 + Val(sqlp!valeur)
Val reconnaît le point comme séparateur de décimal quelque soit la paramètrage de windows
__________________
Assistant de création/modification de rubans Office
Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL

Blog Office Mon Site DVP
Arkham46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 16h54   #3
Nouveau Membre du Club
 
Inscription : mai 2009
Messages : 124
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 124
Points : 26
Points : 26
merci pour votre réponse Arkham46,

si j'utilise val sa marche mais comment savoir si je dois utiliser val ou cdbl.Est il possible de récupéré le séparateur décimal choisi dans les options régionales de windows ?

Merci d'avance
rominous41 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 17h35   #4
Responsable Access
 
Avatar de Arkham46
 
Inscription : septembre 2003
Messages : 4 300
Détails du profil
Informations personnelles :
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : septembre 2003
Messages : 4 300
Points : 7 939
Points : 7 939
Citation:
Envoyé par rominous41 Voir le message
si j'utilise val sa marche mais comment savoir si je dois utiliser val ou cdbl.
il faut éviter de stocker des nombres au format texte, sinon on risque d'avoir des formats différentes sur plusieurs lignes de la base

si la donnée vient d'un outil externe, il faut savoir quel est le séparateur utilisé (le même partout...), et éventuellement faire un replace avant le Val si le séparateur est la virgule
on utilise généralement le . dans ces cas là

Citation:
Envoyé par rominous41 Voir le message
Est il possible de récupéré le séparateur décimal choisi dans les options régionales de windows ?
sans doute mais je ne sais pas comment, sûrement une API...
normalement ce n'est pas utile
__________________
Assistant de création/modification de rubans Office
Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL

Blog Office Mon Site DVP
Arkham46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 09h07   #5
Nouveau Membre du Club
 
Inscription : mai 2009
Messages : 124
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 124
Points : 26
Points : 26
Oui c'est ce que je fais maintenant

Code :
1
2
 
cptht1 = cptht1 + CDbl(Val(Replace(sqlhr!valeur, ".", ",")))
et sa fonctionne, le problème est que j'utilise aussi des variables au format date, et forcement les format ne sont pas les même selon les regions. Etant donné que j'ai eu la réponse à ma question je vais créer une autre discussion.

merci Arkham46
rominous41 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 01h57.


 
 
 
 
Partenaires

Hébergement Web