2010-05-19 7 views
1

Est-il possible d'avoir plusieurs dénominations de devise dans un champ?formats de plusieurs devises dans une colonne - Access 2007

J'ai un champ dont la valeur de la devise sera l'euro ou la livre sterling selon que l'enregistrement applicable est dans la zone monétaire ou non.

Est-ce possible dans Access ou aurai-je besoin d'avoir des champs séparés pour euro/sterling?

Merci à l'avance pour toute aide

Noel

Répondre

3

Je suggère d'inclure une colonne de type de monnaie, qui est, une colonne de quantité, une colonne pour la devise que le montant est en jeu. Vous pouvez également inclure une colonne pour la valeur dans votre propre devise à des fins comptables, c'est-à-dire le montant crédité par votre banque.

+0

+1, battu moi :) –

+0

Merci pour le conseil, aurais aimé avoir pu éviter la nécessité d'une colonne supplémentaire mais cela fonctionnera bien. Bravo – noelmcg

+0

Il n'y a pas d'autre moyen de résoudre le problème, car il s'agit de deux éléments de données indépendants qui doivent se trouver dans deux colonnes différentes. –

0

idéalement, vous avez même une table de tbl_Currency, avec:

id_Currency, PK, text, 3 characters (*) 
currencyName, text 

Ensuite, vous pouvez inclure un champ FK id_Currency dans d'autres tables, où demandé ...

(*) 3 caractères suffisent pour identifier de façon unique une devise telle que définie dans la liste de devises ISO correspondante

+0

Est-ce que ça vaut vraiment la peine d'avoir une clé de substitution ici? Pourquoi ne pas enregistrer une jointure (qui doit être une jointure externe dans le cas où vous avez Nulls dans le champ de devise) et juste stocker les caractères 1-3 dans l'enregistrement? Vous pouvez même l'utiliser pour définir un format à la volée. C'est, en fait, comment je le fais, et l'ai fait aussi récemment que les 6 derniers mois. –

0

Notez que la suggestion de @ Remou d'avoir un champ de type de devise ne s'occupe pas vraiment de la question du formatage du champ. Dans un formulaire à enregistrement unique, vous pouvez utiliser l'événement OnCurrent pour définir le format monétaire. Mais dans une forme continue ou une feuille de données, cela ne fonctionnera pas. Vous penseriez que ce serait une situation idéale pour la fonction de mise en forme conditionnelle, mais elle est paralysée en changeant seulement l'apparence (couleur, gras/italique, etc.) et ne peut pas changer la propriété de format. Donc, vous êtes vraiment obligé d'afficher la devise dans une colonne séparée, ou vous devez remplacer la valeur de la devise par une expression qui formate le nombre en fonction du type de devise. Malheureusement, cela rend le champ non modifiable, donc j'aurais probablement avec la colonne séparée si j'avais besoin d'un formulaire continu/datasheet éditable.

Cependant, notez que c'est l'une des nombreuses raisons pour lesquelles je ne rends simplement pas les formulaires continus/datasheet éditables sauf dans des circonstances très limitées. Je les utilise comme des listboxes étendues, pour afficher des données, plutôt que comme des contrôles d'édition. Cela signifie que le remplacement d'un champ modifiable par une expression n'a aucun inconvénient.

Mais je suis en minorité à cet égard.

+0

Sûrement une colonne séparée pour le montant n'est pas normal? Et si une troisième monnaie est nécessaire? – Fionnuala

+0

Euh, quoi? Montant: 100, Devise: €. Il me semble que ça couvre, non? Vous pouvez ensuite utiliser la monnaie que vous voulez. –

+0

Maintenant, je suis confus, n'est-ce pas ce que j'ai dit? Une colonne pour le montant et une pour le type de devise? Quel est le point que vous faites dans ce post, qui semble recommander deux colonnes pour le montant, comme suggéré par le PO? – Fionnuala