Idtabel1 koppelen aan Idtabel2

Status
Niet open voor verdere reacties.

dirkdrent

Gebruiker
Lid geworden
3 jan 2006
Berichten
382
Ik heb 2 tabellen. Het eerste tabel [tabel1] deze haal ik uit het programma van mijn werk. Hier staan velden in zoals naam, adres, woonplaats enz. maar ook een veld genaamd perscode dit is de ID die hoort bij dat record of wel desbetreffende klant deze veranderd nooit voor deze en blijft altijd gekoppeld aan deze klant.

De gegevens in het programma van mijn werk veranderd steeds dus ook de exportfile die ik gebruik voor het importeren van de gegevens voor de tabel1. De gegevens van tabel1 worden dus continue ververst door het importeren van gegevens uit het programma van mijn werk echter blijven er 2 dingen altijd gelijk;

het aantal velden of wel veldbenamingen (naam, adres, woonplaats enz.) de waarde van deze velden kan wel veranderen. De waarde die nooit veranderd is de naam met de hieraan verbonden perscode. Het kan dus zijn dat een klant genaamd de heer Bakker met perscode 12345 woont op adres damsterdiep 105, 4583 BB, Zoetemeer. Maar wanneer ik de gegevens van tabel1 update (importeren van de file uit het programma van mijn werk) dat de heer Bakker met perscode 12345 woont op adres Nieuweweg 31, 5623 ZB, Amsterdam.

De tweede tabel die ik heb [tabel2] is een tabel die ik zelf heb gemaakt, hierin staan velden als doelstelling, opmerking, overig maar ook IDtabel2 dit is de ID code voor elke record in tabel 2.


Ik wil nu eigenlijk een query maken met hierin alle velden van tabel1 en alle velden van tabel2 waarin ik de perscode van tabel 1 kan koppelen aan de ID van tabel 2 [IDtabel2].
Wanneer nu de gegevens veranderen in tabel 1 dat deze gegevens meteen worden aangepast maar dat de gegevens die ik heb ingevoerd in de velden behorend van tabel 2 nog steeds gekoppeld zijn aan de juiste klant.

Wat ook nog weleens voor kan komen is dat er een perscode bij komt of uit de lijst verdwijnt de gegevens in de query moeten dan ook geupdate worden.

Wie wil en kan mij helpen dat ik dit zo goed mogelijk kan uitvoeren waardoor ik de gegevens van tabel2 niet voordurend opnieuw hoef te knippen in te plakken in een excelsheet?
 
Met welke Access versie werk je?

Je tabellen moeten een gemeenschappelijk 'iets' hebben (bijvoorbeeld klantnummer) welke als basis dient. Een klantnummer moet voor een klant altijd hetzelfde blijven.

Als ik het goed begrijp is de inhoud van tbl 1 variabel en afhankelijk van een import file.
Wat ik zelf met dit soort file's doe is een import routine maken (zo noem ik het zelf, klinkt interessant hahaha).
In die import-routine doe ik eerst de inhoud van tbl 1 wissen (inhoud, niet de tabel zelf)
Vervolgens doe ik vanuit de textfile alles opnieuw importeren.
Dit alles kan simpel door 2 query's. 1 om te wissen, 1 om te vullen.

Vervolgens kan je de data gaan vergelijken, een handig hulpmiddel hierbij is de query wizard. maak gebruik van de Niet Gerelateerde wizard. Hiermee kan je snel zien of klanten wel in tabel 2 staan maar niet in tabel 1 (of andersom natuurlijk).

Zet deze query's, rapporten enz in een macro en het is helemaal appeltje eitje.

Zolang de sleutel van je klant niet veranderd (dat zou nooit mogen anders mag het geen sleutel zijn) kan je doen en laten wat je wil en kunnen je rapporten volledig dynamisch zijn.

Excel is dan passe. Want wat doe je in excel? iets knippen en plakken. Dat kan Access ook.
 
Laatst bewerkt:
Het zou geweldig zijn als ik het zo voor elkaar zou krijgen. Is het dan ook zo dat in tabel2 alle velden van tabel1 ook staan omdat u aangeeft dat in de query de namen worden vergeleken.
 
Ik heb een voorbeeld gemaakt en de opmaak van de excelfile erbij gedaan met fictieve gegevens hierin. Nu weet ik niet zeker of ik de velden van tabel1 moet kopieeren (incl. de inhoud) en hierin dan mijn eigen velden aanmaken en deze dan tabel2 moet noemen.
In het voorbeeld heb ik dit niet gedaan, in het voorbeeld heb ik in tabel2 alleen een aantal voorbeeld velden gemaakt waarvan ik denk die ga ik gebruiken en die ik niet heb in tabel1.
Heb in tabel 2 nog geen gegevens ingevoerd omdat ik nog niet weet of ik dit wel of niet moet doen.

Bij het importeren van de excelsheet heb ik Data type van perscode staat op DOUBLE en indexed staat op NO. Bij het importeren weet ik niet of ik access nu een sleutel moet laten aanmaken of dat ik een sleutel moet kiezen uit mijn excelbestand voor nu heb ik ervoor gekozen om een sleutel aan te wijzen namelijk Perscode als ID.

Als extra heb ik een tabel gamaakt genaamd tabel3 met hierin de velden van zowel tabel1 als tabel2 waarbij ik de perscode van tabel1 op datatype "nummer" heb gezet en IDtabel2 ook op datatype "nummer" heb gezet. De sleutel van tabel 3 is IDtabel3.

In de bijlage heb ik het voorbeeld geplaatst incl. de excelsheet.
 

Bijlagen

Tabel 3 is overbodig omdat de gegevens al in tabel 1 en in tabel 2 staan. Zie query in het meegestuurde bestand

Wat ik in tabel 2 mis is de Perscode.
Deze code is een vaste code die gekoppeld is aan een persoon en ook altijd gekoppeld blijft aan deze persoon? Ik heb deze daarom even aangemaak. Tevens heb ik een voorbeeld query aangemaakt zodat e.e.a duidelijk is.

Ik heb de bestandsnaam even aangepast zodat niets overschreven wordt.
 

Bijlagen

Super, leuke voorbeelde ook die je hebt ingevuld. Enige vraag die nu blijft hoe vul ik de gegevens in. Wanneer ik dus voor Arts 6 mijn eigen gemaakte velden wil invullen dan moet ik de persoonscode onthouden van Arts 6 dan tabel2 openen en dan in het veld persoonscode 6 invullen om zodoende de gegevens te vullen.

Is het ook mogelijk dat ik alle info in 1 tabel of in 1 form. kan laten zien. Ik kan wel een formulier maken op basis van de query maar dan krijg je als resultaat alleen die adressen waar de velden van tabel 2 op ingevuld zijn.
 
Ik heb weer een recepje voor je uitgeschreven : :D

Je kan dit op verschillende manieren doen:
(access2007)
Ga op table 2 staan, klik boven in op Maken > Formulier ontwerp
In de ontwerpweergave van het formulier klik dan op tabblad Ontwerpen (bovenin) > bestaande velden toevoegen.
Ik heb voor je een formulier aangemaakt als voorbeeld.

Tevens heb ik een kopietje gamaakt van de query qry-KoppelTbl1EnTbl2 en qry-Overzicht genoemd. Het enige wat ik veranderd heb zijn de Join eigenschappen (klik in het queryontwerp met de rechtermuisknop op het verbindingsstreepje tussen de 2 tabellen)
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan