Bonjour,
je vaudrais enregistrer dans une table Access un nombre décimal à saisir dans un contrôle TextBox (par exemple 2000,50),quel est le type de données que je dois choisir dans cette table (Numérique ou Monétaire) et à quel Format?
merci.
Bonjour,
je vaudrais enregistrer dans une table Access un nombre décimal à saisir dans un contrôle TextBox (par exemple 2000,50),quel est le type de données que je dois choisir dans cette table (Numérique ou Monétaire) et à quel Format?
merci.
Idéalement je dirais décimal dans Access et dans Vb.Net, mais il faut faire attention au choix de la précision du décimal dans Access (ce dernier pouvant être modifier contrairement à celui du .Net (Bien que avec un arrond à la decimal x ça doit le faire!))
en vb.net j'ai mis le code suivant: val(TextBox1.text) et en Acces j'ai choisi comme type de données "Monétaire" avec l'affectation "Nombre général" pour son format,mais la valeur enregistrée ne prend pas toute la valeur,seulement l'entier est sauvegardé par exemple:
si j'enregistre la valeur 2000.50 la valeur enregistrée est 2000
Comment faire?
bonjour barchaoui
1/ premiere precaution ta valeur saisie doit etre convertie en decimal dans le vb.net
2/dans ms access tu dois choisir format numerique monetaire avec un nombre de decimales d'arrondis suivant tes besoins.
je veux dire que tu dois faire dans vb.net ceci:
mettons que tu as des caculs de taxes normalement on ecrirait ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ClientDS1.Client.Rows(0).Item(8) = Decimal.Parse(TextBox1.Text) ClientTableAdapter1.Update(ClientDS1.Client)
Le format d'affichage est toujours geree par ms access (nombre de decimales, symbole monetaire puisque c'est un user settings machine).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Dim maTaxe As Decimal = 20.0 Dim monTotal As Decimal = 0.0 monTotal = ClientDS1.Client.Rows(0).Item(8) monTotal = monTotal * maTaxe / 100.0 ClientDS1.Client.Rows(0).Item(8) = monTotal ClientTableAdapter1.Update(ClientDS1.Client)
La precision par contre est geree par vb.net ,par arrondis pour les calculs monetaires et financier à ma connaissance,ce qui correspond au besoin des utilisateurs.
Les calculs scientifiques sont par contre plus delicat et sont en general geres par des troncatures ...qui peuvent amener par exemple à des egalites ou des inegalites qui n'existent pas (infini positif ou negatif machine : instruction vb.net IsInfinity ,zero machine NotNan ).
De toute facon voici ce que je trouve en vb.net a comparer avec ms access
Vois-tu ils sont identiques.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 'VB.NET 'soit 28 digits en valeurs entieres TextBox3.Text = Decimal.MaxValue '79228162514264337593543950335 'soit 29 digits (y compris les decimales c'est mon opinion perso) TextBox3.Text = Decimal.MinValue '- 79228162514264337593543950335 'le plus grand/petit decimal je suppose en vb.net est: ' +-7,9228162514264337593543950335 'ET VOICI MS ACCESS 2003 (doc): '------------------------------ '+/-79 228 162 514 264 337 593 543 950 335 pour les nombres sans décimales. 'La plage de valeurs des nombres à 28 décimales est '+/-7,9228162514264337593543950335. 'Le plus petit nombre différent de zéro est 0,0000000000000000000000000001
Bon code et bonne soiree....
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager