Foutmelding bij uitvoeren bijwerkquery.

Status
Niet open voor verdere reacties.

wiebeww

Gebruiker
Lid geworden
5 mei 2006
Berichten
38
Hallo,

Ik heb een tabel met orders, met ordernr als primaire sleutel, en een tabel met contracten, met contractnr als primaire sleutel.

In de tabel Contracten staat een kolom [geleverd aantal] waar (automatisch) een totaal van de orders ingevuld moet worden per contract.

Nu had ik het idee om een totalenquery te maken om de totale geleverde hoeveelheden per contract te berekenen. Deze totalen wou ik dan door middel van een bijwerkquery invoegen in het veld [Geleverd aantal] in de tabel Contracten.

De waarden in mijn totalenquery kloppen, en ik wil dezen dan ook graag in de tabel contracten zien maar ik krijgde melding: "Parameterwaarde opgeven: " als ik de bijwerkquery uitvoer.

Weet iemand hoe dit kan? De bijwerkquery ziet er in SQL als volgt uit:

UPDATE Contracten INNER JOIN Orders ON Contracten.Contract = Orders.[Contractnr Duynie] SET Contracten.[Geleverd aantal] = [Contracten Query]![Som Van Hoeveelheid (aantal vrachten x 34000 Kg)];


Alvast bedankt,

Wiebe
 
Ik heb het vermoeden dat je de tabel Contracten ook gebruikt in de query [Contracten query]. Als dat correct is, heb je inderdaad een probleem, want dan is de query die je probeert bij te werken een query die al is geopend.
Je moet dan bijvoorbeeld met een tijdelijke tabel werken voor de Update, en een aparte query om de tabel Contracten weer bij te werken vanuit de tijdelijke tabel.
 
Ik heb een en ander aangepast, het is namelijk niet persé nodig om alle gegevens op te slaan.
Ik heb nu de volgende opzet; 1 totalenquery met daarin de geleverde hoeveelheden per Contract.
En 1 query met alle contracten waarin ik ook de het veld met de totalen uit de totalenquery heb verwerkt.

Nu is het zo dat er ongeveer 50 contracten zijn, maar de query alleen de 25 contracten laat zien die ook in de totalenquery zijn verwerkt. Hoe krijg ik het voor elkaar om de rest ook te zien?

Ik heb het geprobeerd met criteria <-1 / >-1 en dergelijke maar krijg niet het gewenste effect.

Vr. Gr.

Wiebe
 
Waarschijnlijk heb je dan een Equal Join gemaakt tussen de tabellen. Je moet in de query waarschijnlijk de join aanpassen naar een zgn. Outer Join. Als je dubbelklikt op de lijn tussen de tabellen Contract en [HoeDieMagHeten], dan zul je vermoedelijk zien dat de eerste optie is geselecteerd. Je moet de optie kiezen waarbij je alle contracten ziet, en de gerelateerde records uit de andere tabel.
 
Heel erg bedankt, dit klopt nu helemaal.

Nu kom ik het volgende tegen, alle velden zijn leeg behalve de velden die berekend zijn dmv de totalenquey, is er ook iets wat ervoor zorgt dat de lege velden de waarde 0 krijgen? Ik heb het geprobeerd met Nz maar krijg het niet voor elkaar.

Alvast bedankt!
 
Laatst bewerkt:
Je kunt deze variant ook gebruiken: (wordt zelfs aanbevolen i.v.m. een betere snelheid in de query dan Nz)

IIF([Veld] Is Null;0;[Veld])
 
Op de velden waar je nu Nz gebruikt. Ik ga er eigenlijk van uit, dat je de velden met Nz in je queries hebt gezet. In plaats van Nz([Veld];0) gebruik je de IIF vergelijking.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan