Tabel updaten met gegevens uit het vorige record

Status
Niet open voor verdere reacties.

nieuwenhof

Gebruiker
Lid geworden
7 jul 2015
Berichten
16
Goedemorgen,

Ik heb een tabel in Access en wil in deze tabel een kolom updaten met gegevens uit een vorig record.

Bijgaand een voorbeeld van de tabel voor bewerking en een tweetal voorbeelden van het gewenste resultaat na bewerking. Mijn voorkeur gaat uit naar optie 2, maar met optie 1 ben ik ook erg tevreden!

Wie kan mij hierbij helpen? Alvast bedankt voor jullie hulp en input.

Gr. Erik
 

Bijlagen

  • GegevensVoorBewerking.rar
    47,1 KB · Weergaven: 27
  • ResultaatNaBewerking.rar
    95,7 KB · Weergaven: 17
  • GegevensVoorBewerking.zip
    47,6 KB · Weergaven: 21
  • ResultaatNaBewerking.zip
    97,7 KB · Weergaven: 19
Laatst bewerkt:
Allereerst natuurlijk welkom bij HelpMij!
Ik kan je bestanden niet openen op het werk, dus ik kan er vanavond pas naar kijken. Maar misschien kun je er nog een zipje van maken, dan lukt het zo nog wel.
 
Je kunt heel makkelijk van situatie 1 naar situatie 2 (bijwerkquery die de records met lege velden Veld2, Veld 3 etc weggooit), maar de vraag is : moet je die situatie überhaupt wel willen? Je hebt namelijk een uitgelezen kans om de db te normaliseren. Dat gezegd hebbende: Veld 1 is nu een samenstelsel van in wezen 3 velden, en die moet je dus ook splitsen. Maar je zit eigenlijk naar 2 tabellen te kijken: Hoofdtabel op basis van Veld 1 (met dus 3 velden) en gekoppelde tabel met de data (vanaf veld 2). En het lijkt mij dat je dat dus moet scheiden. Ik denk niet dat je het met een query kunt doen, maar dat je een recordset moet maken die de tabel inleest en opschoont.
Daarbij zou ik dus voor de tabel Kunden een KundenID aanmaken, en dat moet dan ook in Veld1 worden teruggezet. Dus, in stappen:

1. Maak een tabel Kunden aan
2. Maak een procedure die een recordset opent op basis van de tabel Kunden, en een op basis van de gegevenstabel
3. Loop door de records van de recordset van de gegevenstabel
4. Als een KundenID wordt gevonden, voeg dan een record toe aan KundenID en haal het KundenID op. Als je zelf nummert, is dat simpel
5. Verwijder het record uit de gegevenstabel.
6. Het nu actieve record is dan een detailrecord; veld1 is leeg. Vul dat met het KundenID
7. Loop door naar het volgende record; is dat leeg: KundenID bijwerken, is dat niet leeg: ga naar stap 4.

Loop zo door de hele tabel heen tot je bij het eind bent. Als het goed is, heb je dan de situatie zoals plaatje 2 hem beschrijft. Maar dan beter :).
 
Bedankt voor je reactie OctaFish.
De oplossing die je geeft begrijp ik functioneel gezien, maar hoe vertaal ik dit naar een werkende procedure?
Kan je me hierbij ook helpen?
 
Daarvoor is het het handigst als je een voorbeeldje maakt met tabellen; ik sta niet te popelen om jouw voorbeeldje zo in te kloppen :).
 
Dat kan ik me goed voorstellen!

Ik heb daarom dan ook een voorbeeld van de database toegevoegd (op basis van je eerdere input). Hopelijk kan je hier iets mee.
 

Bijlagen

  • Database1.zip
    22,8 KB · Weergaven: 21
Even samenvatten wat je nu gemaakt hebt :).
Ik zie een tabel Klanten met een aantal dummyrecords. De codes in het veld [Bedrijfscode] zie ik terug in [Veld1] van de tabel [TblTempTabel]. Ik vermoed dat het de bedoeling is dat je de bestaande klant gebruikt als die in tblKlanten staat, en dat de klant wordt toegevoegd als die nog niet bestaat. Is dat logisch?
De tabel [TblKlantFacturen] bevat 9 velden, en ik vermoed dat die matchen met de velden [Veld2] t/m [Veld10] uit [TblTempTabel]. Staan die velden in de correcte volgorde? En moeten die velden dus worden toegevoegd aan [TblTempTabel] met het veld [Bedrijfscode] in [fkBedrijfscode]?
 
Klopt bijna helemaal, alleen een paar kleine opmerkingen:

Ik zie een tabel Klanten met een aantal dummyrecords. De codes in het veld [Bedrijfscode] zie ik terug in [Veld1] van de tabel [TblTempTabel]. Ik vermoed dat het de bedoeling is dat je de bestaande klant gebruikt als die in tblKlanten staat, en dat de klant wordt toegevoegd als die nog niet bestaat. Is dat logisch? Ik denk het wel of heb jij een beter idee?
De tabel [TblKlantFacturen] bevat 9 velden, en ik vermoed dat die matchen met de velden [Veld2] t/m [Veld9] uit [TblTempTabel]. Staan die velden in de correcte volgorde? Ja En moeten die velden dus worden toegevoegd aan [TblKlantFacturen] met het veld [Bedrijfscode] in [fkBedrijfscode]? Klopt. Het veld ImportDatum zou ik graag gevuld hebben met de huidige datum.
 
Dan had ik dat goed begrepen :). De Importdatum zou ik ook inderdaad vullen met de actuele datum van import, anders heb je er weinig aan :). Ben al bezig :D.
 
Volgens mij heb ik 'm zo wel...
 

Bijlagen

  • Database1.zip
    43,8 KB · Weergaven: 22
Dit ziet er goed uit! Morgen ga ik het verder testen. In ieder geval bedankt voor zover!
 
@OctaFish: enorm bedankt voor je hulp, dit is precies wat ik bedoelde! Ik ga het item op gesloten zetten :D
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan