veld splitsen over twee velden

Status
Niet open voor verdere reacties.

richard1970

Terugkerende gebruiker
Lid geworden
12 mei 2005
Berichten
2.663
Hoi forummers,

Ik ben een newbie @ access, maar heb eens gehoord dat het volgende mogelijk is.
In een platte tabel met o.a. drie velden ('afdeling'- 'scenario'- 'bedrag') heb ik een veld waarin staat 'begroot' en 'realisatie'. In een veld daarnaast staat het bedrag.
Niet overal waar een bedrag begroot is, is ook een bedrag bij realiteit te vinden, en ook daar waar iets gerealiseerd is kàn het gebeuren dat er niets begroot is.
Hoe kan ik in een query een splitsing maken zodat ik als uitkomst een tabel krijg met vier velden: 'Afdeling' - 'Begroot' - 'Realisatie' - 'Bedrag'. Waarbij dus de velden 'Begroot' en 'Realisatie' beiden gevuld kunnen zijn, of maar eentje.

Groeten,
Richard
 
Hallo,

Is de vraag onduidelijk gesteld, of weet niemand het antwoord?

groeten,
Richard
 
even verduidelijken

Dit lijkt mij op te lossen met queries maar inderdaad je vraagstelling is niet duidelijk. Staan de waarden begroot en realisatie nu in 1 of meerdere velden. Zo ja dan zou dat betekenen dat je soms twee records hebt voor de afdeling enz. Dan zul je eerst een Tabelmaakquerie moeten maken en daarna een bijwerkquerie gebaseerd op een uniek Id (bv afdeling). Geef een simpel voorbeeld met wat data uit de eerste tabel en dan wat de uitkomst zou moeten worden. Dan is dit wel op te lossen lijkt mij.
 
Hoi Anne-Marie,

Morgen zal ik op het werk een voorbeeldje maken. Hopelijk wordt de vraagsteling dan duidelijker.

Richard
 
Bij deze een voorbeeld database bestaande uit twee tabellen.
De tabel 'Data' bestaat uit de gegevens zoals ik ze in Access krijg. De tabel 'Resultaat' is zoals ik het wil hebben via een query.
Het is voor mij -nog- niet mogelijk de aanlevering aan te passen zodat ik in één keer krijg wat ik wil, vandaar deze vraag.

Uitleg.
Begrote en uitgegeven bedragen worden geboekt op een kostenplaats en grootboekrekening. De combinatie van kostenplaats - grootboek - scenario is in de tabel uniek.
Er kan begroot worden zonder realisatie, en er kan een uitgave geboekt zijn (realisatie) waar geen begroting tegenover staat.
Op basis van het scenario 'Begroot' of 'Realisatie' wil ik aparte regels maken zoals in de tebal 'Resultaat'. Er dient dan een veld te komen met de begrote bedragen en een veld met gerealiseerde bedragen. Er dient dan rekening te worden gehouden met de combinatie kostenplaats - grootboekrekening. Per unieke combinatie kan er maar hooguit één keer begroot zijn, en hooguit één keer een realisatie zijn.

Hopelijk is zo mijn vraag wat duidelijker.

Groeten en alvast bedankt voor het meedenken.

Richjard
 

Bijlagen

Met drie queries ben je klaar

Eerst maak je in beide tabellen een veld UniekId. Vervolgens op de datatabel een bijwerkquerie waarbij je UniekId maakt door samenvoeging van Kostenplaats en grootboek. Querie2 is een toevoegquerie van data naar resultaat. Bij criteria van veld scenario zet je begroot. Bij gevoegde bedragen invoegen in tabel resultaat bij begroot. De laatste querie wordt een bijwerkquerie op de tabel resultaat. Criteria veld scenario (tabel data) is nu realisatie. In deze querie leg je een link tussen de velden UniekId van beide tabellen. Criteria aan de resultaat kant UniekId Is not null. Veld realisatie wijzig je in waarde realisatie van tabel data. En Klaar. IK heb nu even geen tijd om bijlage te regelen. Mocht het niet lukken met deze tips dan hoor ik het wel. Suc6
 
Hoi Anne-Marie,

Ik ga er maandag gelijk mee aan de slag.
Bedankt.

Richard
 
Hoi Anne-Marie,

De bijwerkquerie is gelukt, maar met de toevoegquery ben ik nu al meer dan een uur aan het klooien. Ik krijg steeds te zien dat ik 0 rijen toevoeg, terwijl ik er 12 verwacht.
Wat doe ik fout?

Richard
 

Bijlagen

Gelukt

Hoi Anne-Marie,

De tweede querie had ik bijna voor elkaar.
Met jouw voorbeeldje is het gelukt.
Bedankt,

Richard
 
Hoi Richard,

Ik krijg de tweede querie niet voor elkaar/

Ik weil graag hetzelfde voorbeeld uitwerken.

Kun jij de oplossing hier s.v.p. plaatsen.

Ik ben met zo'n dergelijk probleem bezig.

Groet,

Susan
 
Zie bijlage

Het is uiteindelijk gelukt de database te zippen. Hierin tref je de 3 queries aan. Tevens een macro waarin de 3 queries achter elkaar worden uitgevoerd. Suc6
 

Bijlagen

Hoi Anne-Marie,

Bedankt voor je oplossing.

Het lukte me wel met een kruistabelquery.
Het scenario was een kolom. Het ging mij ook om het splitsen van de velden.

De macro werkt ook fijn. Ik kan hiermee goed verder. Nu nog een mooi rapportje maken.
Ik zal eens kijken of dat dit ook lukt.

Bedankt overigens voor de heldere uitleg.

Groet,

Susan
 
Hoi Richard en Anne-Marie,

De realisatie sluit niet aan.
Realisatie Kostenplaats Afdelingsnummer Afdeling Grootboek UniekId Bedrag Scenario
4015 1015 Debiteuren 4072 40154072 € 40,00 Realisatie
4034 1034 Facilitaite dienst 4071 40344071 € 75,00
Er staan 2 regels niet in het resultaat.
Er is wel een realisatie, maar geen begroting.


Het lukt wel in twee query's
query4
SELECT resultaat.Realisatie, data.Kostenplaats, data.Afdelingsnummer, data.Afdeling, data.Grootboek, data.UniekId, data.Bedrag, data.Scenario
FROM resultaat RIGHT JOIN data ON resultaat.UniekId = data.UniekId
WHERE (((resultaat.Realisatie) Is Null) AND ((data.Scenario)="realisatie"));

query4query
INSERT INTO resultaat ( Kostenplaats, Afdelingsnummer, Afdeling, Grootboek, UniekId, Realisatie )
SELECT Query4.Kostenplaats, Query4.Afdelingsnummer, Query4.Afdeling, Query4.Grootboek, Query4.UniekId, Query4.Bedrag
FROM Query4;

Kan dit ook in één query?

Groet,

Susan
:confused:
 
Laatst bewerkt:
Er zijn nogal wat opties afhankelijk van de situatie

Als niet ieder uniek nr een begroting bevat (wat niet uit de vraagstelling bleek) kun je het bv op de volgende manier oplossen. Nadat querie 1 de unieke Id heeft gemaakt laat je querie 2 alleen het uniekeID en de afdeling over zetten. Dan zal Querie 3 de realisatie bijwerken en moet je nog Querie 4 maken (identiek aan 3 maar dan criteria begroot) die het bedrag van begroot bijwerkt.

Heb je de database op hetzelfde netwerk dan kun je beter via bestand -> externe gegevens koppelen, een link leggen naar de betreffende datatabel. Dit heeft voordeel dat je de macro kunt draaien zonder ontwerpen van de tabel data aan te passen. Querie 1 zet alle data over van de gekoppelde tabel naar de hulptabel die je nu data noemt (toevoegquerie waarbij het veld UniekeId natuurlijk leeg blijft. Querie 2 maakt de tabel realisatie leeg (verwijderquerie op de hulptabel data). En dan alle reeds genoemde queries achter elkaar. Suc6
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan