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:
Ik gebruik nu dus deze constructie:
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
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:
Als je deze query uitvoert, gaat het fout, omdat het getal 3 in veld Prijs wordt opgeslagen, en voor '50' geen veld bestaat.INSERT INTO tblPrijslijst ( LevID, Leverancier, ArtID, Artikelnaam, Opmerkingen, Datum, Prijs )
Values(1018, 'Vershandel', 10006, 'Achterham', 'Dit is een test', cDate(40048), 3,50)
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