vullen van een tabel via insert into

Status
Niet open voor verdere reacties.

BasHD

Gebruiker
Lid geworden
2 dec 2008
Berichten
99
Beste lezer,

Ik heb hier een code:

Code:
 DoCmd.RunSQL "DELETE * From T_BelastingKgMM"
    DoCmd.RunSQL "INSERT INTO T_BelastingKgMM (StudiegroepCode2, Jaar2, BelastingKgMM2) SELECT StudiegroepCode, Jaar, BelastingKgMM FROM UitvoerGegevensKostprijs2 WHERE BelastingKgMM <> 0"

Mijn bedoeling is om vanuit de tabel uitvoerkostprijsgegevens2 T_belastingKgMM te vullen. Daar mogen allen de records in waar de waarde BelastingKgMM geen 0 is.

De tabel uitvoerkostprijsgegevens2 telt 4400 records. Als ik dit stukje VBA uitvoer krijg ik per jaar 1 record terwijl als ik de tabel in een query gooi en selecteer op <>0 ik 570 records krijg. Dat zou ik hier ook verwachten. Iemand een idee wat ik niet goed doe?

bij de uitvoer krijg ik dat op basis van sleutel conflicten 557 records niet gevuld kunnen worden. de 13 die wel weergegeven worden maken samen 570.
Hoe los ik sleutelconflicten op?

gr

BB
 
gemiddelde via insert into

Ik had op 1 plek een primaire sleutel die niet nodig is. Er uit gegooid en nu krijg ik de tabel.
Code:
DoCmd.RunSQL "DELETE * From T_BelastingKgMM"
    DoCmd.RunSQL "INSERT INTO T_BelastingKgMM (Jaar2, BelastingKgMM2) SELECT Jaar, BelastingKgMM  FROM UitvoerGegevensKostprijs2 WHERE BelastingKgMM <> 0"

Alleen nu wil ik jaar2 op group by hebben en BelastingKgMM het gemiddelde laten zijn. ik dacht zoiets:

Code:
DoCmd.RunSQL "DELETE * From T_BelastingKgMM"
    DoCmd.RunSQL "INSERT INTO T_BelastingKgMM (Jaar2, BelastingKgMM2) SELECT Jaar, Avg(BelastingKgMM)  FROM UitvoerGegevensKostprijs2 WHERE BelastingKgMM <> 0 group by Jaar2"

resultaat fout 3122 u probeert een query uit te voeren waardbji de opgegeven expressie Jaar geen deel uitmaakt van een statistische functie.

Iemand een idee

gr

BB
 
Je hebt geen naam voor je AVG veld gebruikt.
Code:
DoCmd.RunSQL "INSERT INTO T_BelastingKgMM (Jaar2, BelastingKgMM2) SELECT Jaar, Avg(BelastingKgMM) AS Gem_KgMM FROM UitvoerGegevensKostprijs2 WHERE BelastingKgMM <> 0 group by Jaar2"
 
Hallo OctaFish,

Bedankt voor het meedenken alleen als ik jouw oplossing probeer blijft de melding hetzelfde. Ik doe iets met jaar niet goed. Zowel dit vakje als het vakje jaar2 in de tabel waar het heen moet zijn integers met decimalen automatisch. Kan het feit dat het een integer is het probleem zijn?

gr

BB
 
Code:
DoCmd.RunSQL "DELETE * From T_BelastingKgMM"
    DoCmd.RunSQL "INSERT INTO T_BelastingKgMM (Jaar2, BelastingKgMM2) SELECT Jaar, Avg(BelastingKgMM) AS Gem_KgMM FROM UitvoerGegevensKostprijs2 WHERE BelastingKgMM <> 0 group by Jaar"
Deze doet het wel! Ik had bij Group by de verkeerde gepakt.

gr

BB
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan