instellingen voor een correcte opslag van getallen in Access database

Status
Niet open voor verdere reacties.

leifoet

Gebruiker
Lid geworden
7 okt 2007
Berichten
326
De opslag van getallen met 2 decimalen naar Access vanuit onderstaande input lukt niet => decimale cijfers van het ingevoerd getal worden in het veld xyz vóór de komma geplaatst (gevolgd door 00 na de komma).

Input codes (in een formulier)
<INPUT TYPE="number" step="0.01" placeholder="1.0" value="<%=rs("xyz")%>" NAME="xyz">

Instellingen database = veld xyz
-Veldlengte : dubbele precisie
-Notatie : standaard
-Aantal decimalen : 2
-Invoermasker : (geen)

Dank voor tips.
 
Tja, wat wil je ook met zo’n code :). Veldeigenschappen leg je vast in tabel ontwerp. Daarbij wordt het decimaalscheidingsteken gebruikt dat in de landinstellingen is ingesteld. Is dat een komma, dan moet je dus geen getallen invoeren met een decimaalpunt, zoals jij probeert, want dan bevat het ingevoerde getal dus géén decimalen. Ergo: getal,00 als output. Gebruik het juiste getalformat.

Als je op een Formulier werkt, snap ik je werkwijze trouwens niet; met VBA kun je het een stuk makkelijker regelen lijkt mij. Weet niet wat je aan het doen bent maar het is niet mijn werkwijze :).
 
OctaFish, laat mij toe mijn vraag in de context van mijn programma te situeren / te verduidelijken.

1. Mijn programma is geschreven in ASP Classic (cfr. <% ... %>
2. Om gegevens te verzamelen gebruik het HTML input element beschreven met code sub #1 hierboven
3. Alle input wordt opgeslagen in een Access database
4. De eigenschappen van het Access-veld XYZ waarin de problematische decimale waarden worden weggeschreven heb ik sub #1 hierboven vermeld

Enkel de opslag van decimale getallen lukt niet (INPUT getest met bijvoorbeeld 123,45 (en ook met 123.45) - resultaat in de database 12345,00)
Opslag via IMPUT van gehele getallen of tekst (sting) naar de Access database verloopt probleemloos.

Mijn simpele vraag is aldus: hoe kan de gebruiker via de/een INPUT-regel in het programma bijvoorbeeld het getal 123,45 invoeren zodat het als 123,45 wordt opgeslagen in de Access database waaruit het later in het programma kan opgevraagd worden (als getal 123,45) ?

Is mijn INPUT regel hiervoor OK ? - Je gebruikt de term 'GETALFORMAT' - is dat een soort invoermasker ? Zo ja hoe ziet dat er dan uit ?
Zijn de eigenschappen / instellingen voor het Database decimaal cijferveld XYZ correct.
In principe ga voor de decimale komma (landeninstelling).

Ik ga er van uit dat je nu begrijpt wat ik aan het doen ben.
Dank voor tips om dit probleem op te lossen.
 
Laatst bewerkt:
Misschien kan je vraag opgelost worden in het 'Website maken' deel van dit forum, daar vind je waarschijnlijk mensen die (nog) vlot met ASP kunnen werken. Een work-around in Access kan zijn: sla je getal in twee delen op: het gehele deel en het deel dat achter de komma moet in een apart veld. Je kan dan een berekend veld aanmaken dat de 2 combineert.
 
leifoet,

Het zou beter zijn als je ons de code laat zien waarmee je de gegevens importeerd in jouw tabel.

Waarschijnlijk kan je gebruik maken van de replace functie. =Replace(Me.JouwInput, ".", ",")


Groetjes
 
@Pletter: hoi, de code vind je in bericht #1
de gegevens worden ingegeven via een webformulier
 
Ook in Classic ASP kun je een recordset aanmaken en gebruiken, ik heb dat in het verleden vaak genoeg gedaan. Omdat je dan automatisch met Amerikaanse notatie werkt, hoef je niks om te zetten.
 
OctaFish : mag ik vragen om in deze context een voorbeeld te geven van een recordset ?
 
Moet ik even gaan graven; momenteel is mijn computer buiten westen dus ik kan niet heel veel doen.
 
Na een aantal pogingen ben ik toch uitgekomen op het voorstel van Pletter om het probleem van de wisselende decimale scheidingsfactor (punt of komma) op te lossen.

Van elke input (XYZ) wordt tussen fase 3. en 4 (cfr. mijn bericht sub #3) de decimale punt vervangen door een decimale komma met de 'replace' functie.
Bijgevolg worden alle bedragen nu opgeslagen in de Access database als 1234,56 onafhankelijk van de initiële gebruikte separator punt of komma.
Precies zoals het hoort !

Dank aan NoellaG en Pletter voor de aanzet.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan