Prijzen met decimalen met Insert query toevoegen

Status
Niet open voor verdere reacties.

OctaFish

Verenigingslid
Lid geworden
6 feb 2009
Berichten
43.456
Besturingssysteem
Windows 10/MacOS
Office versie
Office 365
Voor één van onze vragenstellers heb ik een formuliertje gemaakt waarmee hij prijzen kan toevoegen aan een tabel. Maar daar zit een klein addertje onder het gras:
Als je een Insert Into statement maakt, kun je niet zomaar getallen met decimalen toevoegen, omdat je dan eigenlijjk een volgend veld vult.
Zie bijvoorbeeld dit voorbeeld:

INSERT INTO tblPrijslijst ( LevID, Leverancier, ArtID, Artikelnaam, Opmerkingen, Datum, Prijs )
Values(1018, 'Vershandel', 10006, 'Achterham', 'Dit is een test', cDate(40048), 3,50)
Als je deze query uitvoert, gaat het fout, omdat het getal 3 in veld Prijs wordt opgeslagen, en voor '50' geen veld bestaat.

Ik gebruik nu dus deze constructie:

Code:
        iPrijs = Round(Me.txtPrijs.Value * 100, 2)
        strSQL = "INSERT INTO tblPrijslijst ( LevID, ArtID, Opmerkingen, Datum, Prijs )" & vbCrLf
        strSQL = strSQL & "Values(" & iLevID & ", " & iArtID & ", '" & sOpmerking & "', cDate(" & iDatum & "), cDbl(" & iPrijs & "))"
        DoCmd.RunSQL strSQL

        strSQL = "UPDATE tblPrijslijst SET Prijs = [prijs]/100 " & vbCrLf
        strSQL = strSQL & "WHERE ((Datum=Date()) AND (LevID=" & iLevID & ") AND (ArtID= " & iArtID & "));"
        DoCmd.RunSQL strSQL

Ik vermenigvuldig de prijs met 100, voer de Insert query uit, en werk het record bij met een Bijwerkquery.

Ik kan mij niet voorstellen dat dit niet slimmer kan.... Iemand een voorstel?

Michel
 
Heb ik inderdaad wel aan gedacht; nog niet uitgeprobeerd, omdat ik er (blijkbaar ten onrechte?) van uit ging, dat ik dan in de problemen kom met de getalnotatie.
Ga het proberen!

Michel
 
@Harry:
Bij mij vervangt hij de komma door niks ("") ... Heb verschillende soorten getalnotatie gebruikt voor mijn variabele, maar krijg dus met Replace geen punt terug. Heb je nog een ander idee?

@Ellasar:
Deze methode werkt inderdaad! Had ik eigenlijk niet verwacht, omdat quootjes voor tekst bestemd zijn. Maar als het werkt, werkt het!
Bedankt dus! :thumb:

Michel
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan