Prijshistorie opbouwen d.m.v. waarden uit query toevoegen aan (nieuwe) tabel!

Status
Niet open voor verdere reacties.

michazel

Nieuwe gebruiker
Lid geworden
10 aug 2011
Berichten
3
Beste forumleden,

Ik ben een beginner maar tot nu toe best trots op mezelf. Ik heb een probleem waar ik niet uitkom.

Situatie:
Database MSQLserver;
Formulier [Inkooporders] gebaseerd op tabel [Inkooporders];
Subformulier [SubForm Inkooporderregels uitgebreid] gebaseerd op een Query;

Query:
SELECT TOP (100) PERCENT tbl_Inkooporderregels_1.[Orderregel ID], tbl_Inkooporderregels_1.Aantal, tbl_Inkooporderregels_1.Ontvangstdatum,
tbl_Artikelen_1.Artikelnummer, tbl_Artikelen_1.Artikelomschrijving, tbl_Artikelen_1.Kleur, tbl_Artikelen_1.Afmeting, tbl_Artikelen_1.[St/Ve], tbl_Artikelen_1.Ve,
tbl_Artikelen_1.[Kostprijs/Ve], tbl_Artikelen_1.Kortingspercentage, tbl_Inkooporderregels_1.[Artikel ID],
(tbl_Inkooporderregels_1.Aantal * (tbl_Artikelen_1.[Kostprijs/Ve] / tbl_Artikelen_1.[St/Ve])) * (1 - tbl_Artikelen_1.Kortingspercentage) AS Bedrag,
tbl_Inkooporders_1.InkoopOrder_Id
FROM dbo.tbl_Inkooporderregels AS tbl_Inkooporderregels_1 INNER JOIN
dbo.tbl_Inkooporders AS tbl_Inkooporders_1 ON tbl_Inkooporderregels_1.InkoopOrder_ID = tbl_Inkooporders_1.InkoopOrder_Id INNER JOIN
dbo.tbl_Artikelen AS tbl_Artikelen_1 ON tbl_Inkooporderregels_1.[Artikel ID] = tbl_Artikelen_1.Artikel_Id
ORDER BY tbl_Inkooporderregels_1.[Orderregel ID], tbl_Artikelen_1.Artikelnummer

Nu is het de bedoeling dat na invoering van een nieuwe Orderregel de waarden uit het Subformulier worden weggeschreven in een losse tabel. Dit om in een later stadium de prijshistorie op te kunnen bouwen.

Dit is vast mogelijk maar ik kom in het Forum tot nu toe nog geen oplossing tegen.

Wie kan mij helpen?

Michiel
 
Ik snap niet precies hoe je aan die aliasnamen voor je tabellen bent gekomen, maar een alias is toch bedoeld om een naam korter te maken, en niet langer ;) Dus dan zou ik het eerder zo doen:

[sql]SELECT ikor.[Orderregel ID], ikor.Aantal, ikor.Ontvangstdatum, art.Artikelnummer, art.Artikelomschrijving, art.Kleur, art.Afmeting, art.[St/Ve], art.Ve,
art.[Kostprijs/Ve], art.Kortingspercentage, ikor.[Artikel ID], (ikor.Aantal * (art.[Kostprijs/Ve] / art.[St/Ve])) * (1 - art.Kortingspercentage) AS Bedrag,
iko.InkoopOrder_Id FROM dbo.tbl_Inkooporderregels AS ikor INNER JOIN dbo.tbl_Inkooporders AS iko ON ikor.InkoopOrder_ID = iko.InkoopOrder_Id
INNER JOIN dbo.tbl_Artikelen AS art ON ikor.[Artikel ID] = art.Artikel_Id
ORDER BY ikor.[Orderregel ID], art.Artikelnummer [/sql]

De tip van wampier is niet gebaseerd op een Access commando, dus dat kan je gelijk vergeten. In Access gebruiken we een toevoegquery: INSERT INTO.
Mij is niet helemaal waar deze query voor bedoeld is; voor de het formulier Inkopen is hij niet heel erg geschikt, en voor het subformulier Inkoopregels ook niet. Normaal gesproken heb je een formulier op basis van de tabel Inkooporders, met een subformulier op basis van de tabel Inkoopregels, en die zijn dan automatisch aan elkaar gekoppeld. Geen toeters en bellen nodig dus om records toe te voegen, anders dan op de standaardknoppen drukken. Maar het begint er dus mee dat ik je vraag eigenlijk niet snap...
 
Beste Michel,

Het klopt inderdaad dat de inkooporderregels gebaseerd zijn op de tabel inkooporderregels maar....

Het subformulier geeft o.a. de waarde van Aantal * Kostprijs wat ik in de tabel orderregels niet kwijt kan (volgens mij lukt dat niet met SQLserver) uiteraard wel op het formulier maar waar laat je die waarde dan en hoe haal ik de waardes op bij keuze van het juiste artikel?

Wat betreft de korte aliassen... ik heb ze niet verzonnen maar ze worden zo geproduceert door MSSQL kan d'r niks aan doen, ze werken in ieder geval.

Michiel

p.s. het is dus niet de bedoeling dat de kostprijs van voorgaande inkopen aangepast wordt als de artikelprijs verandert.
 
Laatst bewerkt:
De tip van wampier is niet gebaseerd op een Access commando, dus dat kan je gelijk vergeten.

Onjuist.
SELECT INTO is wel degelijk een standaard SQL statement in MS Access.
Niet dat je daar iets aan hebt in dit geval, daarvoor zul je inderdaad een toevoegquery moeten gebruiken.

Tardis
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan