Toon posts:

Relatie in Acces

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een database. Hierin heb ik 2 tabellen. Ik wil een formulier hebben samengesteld uit beide tabellen. In beide tabellen is er een veldnaam "ID", ze zijn primaire sleutel en is het gegevenstype Autonummering. Hoe leg ik dan deze relatie en voeg ik die toe in een formulier.

Ik wil dus dat als ik het ID nummer in typ in het formulier dat die dan automatisch de overge gegevens uit de andere tabel haalt.

Verwijderd

Zou je misschien een datamodel kunnen posten, hier kunnen we weinig mee denk ik...

Tutorial Access zou ook niet misstaan denk ik...

[ Voor 28% gewijzigd door Verwijderd op 04-06-2003 14:59 ]


  • MADG0BLIN
  • Registratie: Juni 2001
  • Laatst online: 10-09 16:58
Je hebt toch gewoon dat scherm relaties. Kan je dat daar niet doen. Is gewoon een knopje bovenin.

  • aardbeix15
  • Registratie: Maart 2001
  • Niet online

aardbeix15

100%fruit pers je er niet uit!

ID nummer al query input gebruiken. In de query laat je de ID matchen en geef je op welke data je wil selecten / updaten, resultaat in formulier en klaar.

of begrijp ik je probleem niet :?

[ Voor 10% gewijzigd door aardbeix15 op 04-06-2003 15:01 ]

snel zeggen: 'De koetsier poetst de postkoets met postkoetspoets'
levensmotto: 'vroeg gedaan is lang gerelaxed!'.


  • bazs2000
  • Registratie: November 2000
  • Laatst online: 04-09 17:40

bazs2000

Pixels zo groot als een atoom

Dan moet je eerst een query maken die de gegevens bij elkaar schraapt.
Op basis van die query maak je vervolgens het formulier. :)

Krankzinnige muziek vind je hier.


Verwijderd

Dit riekt naar een slecht datamodel... Beide tabellen met een id veld. Wanneer een id nummer ingetypt wordt, moet uit beide tabellen het record met dat nummer gehaald worden... zou er dan geen relatie tussen beide tabellen moeten bestaan?

Verwijderd

Verwijderd schreef op 04 juni 2003 @ 15:00:
Dit riekt naar een slecht datamodel... Beide tabellen met een id veld. Wanneer een id nummer ingetypt wordt, moet uit beide tabellen het record met dat nummer gehaald worden... zou er dan geen relatie tussen beide tabellen moeten bestaan?
Het zou gewoon één tabel moeten zijn :) . Zonder relatie dus...

  • aardbeix15
  • Registratie: Maart 2001
  • Niet online

aardbeix15

100%fruit pers je er niet uit!

Verwijderd schreef op 04 June 2003 @ 15:01:
[...]


Het zou gewoon één tabel moeten zijn :) . Zonder relatie dus...
hoe kan je dit nu zeggen zonder de data inhoudelijk te kennen, misschien is de enige overeenkomst wel die ID en hebben gegevens niets met elkaar te maken.

snel zeggen: 'De koetsier poetst de postkoets met postkoetspoets'
levensmotto: 'vroeg gedaan is lang gerelaxed!'.


  • MMUilwijk
  • Registratie: Oktober 2001
  • Laatst online: 21:57
Verwijderd schreef op 04 juni 2003 @ 14:56:
Ik heb een database. Hierin heb ik 2 tabellen. Ik wil een formulier hebben samengesteld uit beide tabellen. In beide tabellen is er een veldnaam "ID", ze zijn primaire sleutel en is het gegevenstype Autonummering. Hoe leg ik dan deze relatie en voeg ik die toe in een formulier.

Ik wil dus dat als ik het ID nummer in typ in het formulier dat die dan automatisch de overge gegevens uit de andere tabel haalt.
Dat doe je door middel van een zogenaamde "reference key"... een verwijzende sleutel

Voorbeeldje :

Tabel Artikel:
Artikelnr - prim. key autonummering
Artikelnaam - tekst

Tabel Orderregel
Orderregelnr - prim. key autonummering
Artikelnr - int (reference key)
Aantal

In de Tabel Orderregel verwijst het Artikelnr dus naar de tabel Artikel...In het scherm relaties leg je dan een relatie tussen Artikel.Artikelnr en Orderregel.Artikelnr

Vrij basic database ontwerp / modellering a.f.a.i.k.

edit:
Gegevens uit de tabellen trekken doe je door middel van SQL...
Wellicht is een basic cursus Access en SQL een ideetje ??

[ Voor 8% gewijzigd door MMUilwijk op 04-06-2003 15:09 ]

Everytime I suffer I become a better man because of it


Verwijderd

Aardbeix15:
In beide tabellen is er een veldnaam "ID", ze zijn primaire sleutel en is het gegevenstype Autonummering.
Toch gewoon een 1 op 1 relatie?!?! Zie niet in waarom deze in meerdere tabellen ondergebracht moet worden...

  • bazs2000
  • Registratie: November 2000
  • Laatst online: 04-09 17:40

bazs2000

Pixels zo groot als een atoom

Verwijderd schreef op 04 juni 2003 @ 15:00:
Dit riekt naar een slecht datamodel... Beide tabellen met een id veld. Wanneer een id nummer ingetypt wordt, moet uit beide tabellen het record met dat nummer gehaald worden... zou er dan geen relatie tussen beide tabellen moeten bestaan?
Nee hoor, zo slecht hoeft dat niet te zijn.

De TS zou in princiepe ook andere gegevens kunnen koppelen (namen bijvoorbeeld). Wanneer hij dan op het ID gaat zoeken uit de éne tabel dan komt de query terug met de gegevens uit beide tabellen (mits geselecteerd) maar dan met een naam als koppelpunt. Dat is gelemaal niet zo slecht hoor. Het wordt alleen erg traag wanneer de DB groot wordt.
aardbeix15 schreef op 04 juni 2003 @ 15:05:
[...]

hoe kan je dit nu zeggen zonder de data inhoudelijk te kennen, misschien is de enige overeenkomst wel die ID en hebben gegevens niets met elkaar te maken.
Inderdaad, in dat geval gaat ook mijn verhaal niet meer op. :)
Verwijderd schreef op 04 June 2003 @ 15:09:
Aardbeix15:

[...]


Toch gewoon een 1 op 1 relatie?!?! Zie niet in waarom deze in meerdere tabellen ondergebracht moet worden...
Niet wanneer de TS een systeem heeft waarbij hij vaste gegevens wil uitdelen aan klanten of iets dergelijks.
In dat geval zijn het geen één op één relaties meer omdat de gegevens kunnen wisselen. Dit kan niet wanneer alles in één tabel staat.

[ Voor 38% gewijzigd door bazs2000 op 04-06-2003 15:13 ]

Krankzinnige muziek vind je hier.


Verwijderd

Topicstarter
Er zijn 2 tabellen (1 keer klantbestand, 1 keer actiebestand). Nu moet er uit beide tabellen informatie gehaald worden en in 1 formulier gestopt worden.

Is dat al wat duidelijker :P

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 10-09 17:04

Dido

heforshe

Nee :P

Geef van beide tabellen eens aan welke velden er in staan (in ieder geval de belangrijkste) en geef aan of er bij 1 klant meerdere acties horen (denk het wel, maar is niet duidelijk)...

Wat betekent mijn avatar?


Verwijderd

Topicstarter
Bij klant staan "algemene klantenbestanden" (naam adres etc) en een ID die op autonummering staat en primair is.

Bij Actie staan wat algemen dingen in over een actie zoals prijs, datum, bijzonderheden etc etc. Ook hier is een ID die op autonummering staat en primair is.

En er horen idd meerdere acties bij 1 klant.

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 10-09 17:04

Dido

heforshe

Dan moet er in je Actietabel een veld staan (numeriek) met daarin het ID van de klant waarheen verwezen wordt.

Je zet dus eerst dat veld erin (hoef je verder nog niets bijzonders te doen) en vervolgens ga je naar dat mooie "relaties" vensterje van Acces, waarin je de Primaire key van
je klantentabel naar je nieuwe veld in de actietabel sleept. Acces vraagt dan of je nog wat wil vranderen, maar je kunt meteen op OK drukken. Er loopt nu een mooi lijtje van de ene naar de ander tabel, en als je in een querywizard beide tabellen laat zien, en van beide tabellen alle velden selecteert (TABEL.*) fabriceert de wizard automagisch wat je wilt.

Je kunt ook zelf de SQL intikken :)

Wat betekent mijn avatar?


Verwijderd

Omdat je een op veel relaties heb ontkom je er niet aan om eerst de relaties te definieren.
Daarna zou ik een query maken die uiteindelijk ook een nieuwe tabel maakt voor het formulier.

Verwijderd

Topicstarter
Yo mensen, het is me gelukt.

Ik heb hem nu idd via een query lopen. Dit werkte eerst niet omdat er in de tabelontwerpweergave bij ID stond "Ja (geen duplicaten)" waardoor die ze niet wilde weergeven in de tabel.

Maar dat maakt verder niet uit, het werkt :D

[ Voor 14% gewijzigd door Verwijderd op 04-06-2003 23:18 ]

Pagina: 1