Toon posts:

[Access] relaties tussen tabellen

Pagina: 1
Acties:
  • 215 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hallo mensen,

Ben nu al een tijdje bezig om een database op odre te krijgen en kom er niet uit. heb inmiddels al een boek Access 2003 van John L.Viescas aangeschaft, maar het mag maar niet lukken. Dit is dus iig niet voor mij weggelegd. Voor mijn gevoel volg ik netjes de instructies,..........

Het is volgens mij heel simpel... Ik heb meerdere tabellen en ik wil dat die gekoppeld worden. Enkel krijg ik of de mededeling: klopt niet want aantal velden moeten overeen komen. Of hij doet het totdat ik data in één van de tabellen toevoeg en dan stopt die weer......arghhhh

Hoe ziet het eruit:

Ik heb allereerst de tabbellen sector (hierin profit en non-profit), contributie (hierin een lijstje met de verschillende bedragen) en nog een tabel status ( hierin of het bedrijf lid, geen lid, prospect, etc). Deze drie zouden aan mijn tabel Leden gekoppeld moeten worden.......lukt dus niet....wat me wel lukt is om te zorgen dat ze in een keuzemenu verschijnen in de tabel leden. Alleen dan ga ik naar dat veld relaties en krijg ik enkel fout meldingen en heb zowat alle combinatie (een naar veel, etc) al geprobeerd want dat zijn er niet eens zoveel.

Naast deze tabellen is er een tabel contactpersonen.....je raad het al dat zijn de contactpersonen van de tabel leden. Leden zijn namelijk de bedrijven en die kunnen lid zijn en die bedrijven hebben contactpersonen.

Als laatste heb ik nog één tabel contactmomenten. Deze bestaat uit een lijstje wanneer er contact is geweest met het betreffende contactpersoon.

Zodra ik deze &*^%$ tabellen eindelijk gekoppeld heb kan ik relaxed beginnen aan het maken van de formulieren......enkel het wil dus niet lukken en heb al het nodige af gegoogled en nu zelfs een boek aangeschaft van een dikke €60,- waar IK niet veel verder mee kom.

Wie van jullie zou alsjeblieft er even naar willen kijken, want overal hoor ik geluiden dat dit toch niet al te moeilijk moet zijn.......Yeah right....maar daar ben ik niet mee geholpen ;-)

Alvast bedankt, groeten,
Ard


ps. Ik weet niet hoe ik het bestandje kan toevoegen...uiteraard kan ik het mailen. Het is 1.65mb groot.

  • Masch
  • Registratie: Augustus 2002
  • Laatst online: 24-07 17:37
Je moet gaan normaliseren. Hier zijn heel veel instructies over te vinden op het net. Kijk bijvoorbeeld eens op de onderstaande sites;

http://www.sum-it.nl/cursus/dbdesign/hollands/scope010.htm
http://home.student.utwen...%22normalisatie%20codd%22

(\__/) Ik wist totaal niet wat hier neer te zetten....
(='.'=) Dus het werd....
("")("") Een konijn!!


Verwijderd

Topicstarter
Bedankt voor je twee linkjes, heb ze beide even doorgenomen.....maar damn....

Wat ik wil is dus dat ik één van de tabellen open en zo door kan klikken. Dus bv de tabel sector openen en dan zie ik z'n "+" en kom ik bij de bedrijven uit dan weer een "+" en kom ik bij de contactpersonen van dat betreffende bedrijf uit en vervolgens nog één "+" en dan zie ik alle contactmomenten......


Het beste resultaat had ik met dat blad relaties en dan bv StatusID oppakken en slepen naar StatusID van de tabel Leden. Dan krijg je een veld met allerlei optie en dan zegt ie "een tot veel" en verder niks aangevinkt. Dan doet het "+'" het wel. Echter enkel als er geen data in de tabellen staat. Zodra ik er data in ga zetten geeft die een fout melding over expresies etc.

Nu heb ik een andere database kunnen downloaden van het interenet en zie dat daar alles precies hetzelfde staat....alhoewel zover ik kan zien.....

Hmmm.....

edit:

Nieuwe foutmeleding:

Deze expresie is niet correct getypet of te complex voor evaluatie. Een numerieke expresie kan bv. te veel gecompliceerde elementen bevatten. Probeer de expressie te vereenvoudigen door verschillende delen van de expressie toe te wijzen aan variabelen.

]

[ Voor 13% gewijzigd door Verwijderd op 22-08-2006 09:17 ]


  • Masch
  • Registratie: Augustus 2002
  • Laatst online: 24-07 17:37
Verwijderd schreef op dinsdag 22 augustus 2006 @ 09:12:
Bedankt voor je twee linkjes, heb ze beide even doorgenomen.....maar damn....

Wat ik wil is dus dat ik één van de tabellen open en zo door kan klikken. Dus bv de tabel sector openen en dan zie ik z'n "+" en kom ik bij de bedrijven uit dan weer een "+" en kom ik bij de contactpersonen van dat betreffende bedrijf uit en vervolgens nog één "+" en dan zie ik alle contactmomenten......


Het beste resultaat had ik met dat blad relaties en dan bv StatusID oppakken en slepen naar StatusID van de tabel Leden. Dan krijg je een veld met allerlei optie en dan zegt ie "een tot veel" en verder niks aangevinkt. Dan doet het "+'" het wel. Echter enkel als er geen data in de tabellen staat. Zodra ik er data in ga zetten geeft die een fout melding over expresies etc.

Nu heb ik een andere database kunnen downloaden van het interenet en zie dat daar alles precies hetzelfde staat....alhoewel zover ik kan zien.....

Hmmm.....

edit:
Nieuwe foutmeleding:

Deze expresie is niet correct getypet of te complex voor evaluatie. Een numerieke expresie kan bv. te veel gecompliceerde elementen bevatten. Probeer de expressie te vereenvoudigen door verschillende delen van de expressie toe te wijzen aan variabelen.
]
Ik snap dat je al graag gelijk aan het ontwerpen wilt; maar het aanmaken van de database (dus de tabellen/ velden/ relaties) is het belangrijkste van het hele proces. Als je databaseontwerp uiteindelijk niet goed is (niet goed genormaliseerd dus), krijg je later op zeker problemen met het ontwerpen. Normalisatie is een methode om via een aantal stappen een goed databaseontwerp te krijgen. Zo te zien wordt het een zakelijke database, dus het lijkt me handig om daar even wat tijd in te steken.

(\__/) Ik wist totaal niet wat hier neer te zetten....
(='.'=) Dus het werd....
("")("") Een konijn!!


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Kun je je database niet ergens online zetten?
Dan kunnen we allemaal meedoen. :)

mailen vind ik géén goed plan. 't is een forum, geen helpdeskje ;)

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Verwijderd

Topicstarter
Oh yes, ben weer een stapje verder!!!
In de tabel die ik wil koppelen bv bij leden had ik in het veld van sector (waar dus ook een tabel van is) netjes een tekstvak van gemaakt met een keuzelijstje en daarin de kolom geselecteerd van de tabel sector. Op deze manier als je tabel leden gaat invullen zie je bij sector een keuzelijstje. Nu ik dat helemaal weg heb gelaten en het veld op numeriek heb gezet en er bv 1 invoer (staat voor Profit) dan kan ik wel doorklikken op het "+" enkel staat er dan weer alleen een cijfer i.p.v. de letterlijke tekst Profit.

Hier zit dus waarschijnlijk het probleem...........alleen hoe fix ik dat.

Verwijderd

Topicstarter
Niesje schreef op dinsdag 22 augustus 2006 @ 09:25:
Kun je je database niet ergens online zetten?
Dan kunnen we allemaal meedoen. :)

mailen vind ik géén goed plan. 't is een forum, geen helpdeskje ;)
Uiteraard wil ik dat.....hoe doe ik dat?

Ben al aan het googlen met de term uploaden.....

[ Voor 7% gewijzigd door Verwijderd op 22-08-2006 09:28 ]


  • Blacksnak
  • Registratie: Oktober 2001
  • Laatst online: 07-07-2024
Masch schreef op dinsdag 22 augustus 2006 @ 09:25:
[...]

Ik snap dat je al graag gelijk aan het ontwerpen wilt; maar het aanmaken van de database (dus de tabellen/ velden/ relaties) is het belangrijkste van het hele proces. Als je databaseontwerp uiteindelijk niet goed is (niet goed genormaliseerd dus), krijg je later op zeker problemen met het ontwerpen. Normalisatie is een methode om via een aantal stappen een goed databaseontwerp te krijgen. Zo te zien wordt het een zakelijke database, dus het lijkt me handig om daar even wat tijd in te steken.
Inderdaad, heb het gevoel dat je nu gewoon met trial & error bezig bent en dat levert bij databases meestal een hoop problemen op. Een basiskennis over DB-ontwerp is echt wel nodig hoor (zie linkjes hierboven)

Verwijderd

Topicstarter
Blacksnak schreef op dinsdag 22 augustus 2006 @ 09:30:
[...]


Inderdaad, heb het gevoel dat je nu gewoon met trial & error bezig bent en dat levert bij databases meestal een hoop problemen op. Een basiskennis over DB-ontwerp is echt wel nodig hoor (zie linkjes hierboven)
Moet eerlijk zeggen dat het helemaal waar is wat je zegt...... Ik heb enkel deze soort van database nodig en blijf dan ook verder van Access af. Helaas heb ik niet de tijd om rustig het mega dikke boek door te nemen. Begrijp dat dit natuurlijk verre van ideaal is.

Ik heb wel de tijd genomen om te kijken hoe ik de data het beste kon splitsen. Een sjabloon bestand op de microsoft site is zowat identiek aan degene die ik nodig heb. Het enige wat ontbrak was dat het bestand gebruikte maken van enkel contactpersonen en ik nog de toevoeging van bedrijven had. Had eerst geprobeerd deze te wijzigen, echter schoot dat niet op omdat die dan alle namen etc, door elkaar ging halen. De indeling van dit bestand heb ik verder wel aangehouden.

Vervolgens ben ik begonnen aan één tabel en dat ging allemaal zoals het hoort incl. het maken van formulieren ed.


Ben alleen yousendit tegen gekomen en heb nu wel een linkje waar het bestand staat:
http://www.yousendit.com/...oad&ufid=6987F2072AB65E4B

[ Voor 8% gewijzigd door Verwijderd op 22-08-2006 09:45 ]


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Even één database in elkaar knutselen die ook nog live moet gaan is een hopeloos project. Dan ben je voordeliger uit als je het iemand laat doen. Als ik je database bekijk en ik lees je opmerkingen hier dan weet je er, nofi, idd niets van af.

Als je toch verder wilt: begin met een klein boekje als access for dummies zodat je in ieder geval de basis beheerst en doe vooral één ding tegelijk.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Verwijderd

Topicstarter
Niesje schreef op dinsdag 22 augustus 2006 @ 09:58:
Even één database in elkaar knutselen die ook nog live moet gaan is een hopeloos project. Dan ben je voordeliger uit als je het iemand laat doen. Als ik je database bekijk en ik lees je opmerkingen hier dan weet je er, nofi, idd niets van af.

Als je toch verder wilt: begin met een klein boekje als access for dummies zodat je in ieder geval de basis beheerst en doe vooral één ding tegelijk.
Hmmmm....oke

Waar kan ik iemand vinden die iets dergelijks in elkaar kan zetten? Het is niet aan mij besteed om te beginnen met Access mede omdat ik het verder toch niet ga gebruiken.......

Alvast bedankt,

  • Boss
  • Registratie: September 1999
  • Laatst online: 27-07 14:21

Boss

+1 Overgewaardeerd

Als je toch aan de slag wilt gaan: kijk eens naar de voorbeeldddatabase "noordenwind.mdb" die bij Access (NL) zit. Is een hoop uit te halen.

En anders moet je het laten doen, maar als je 60,- voor een boek al duur vindt kom je met een vergelijkbaar budget niet echt ver :)

offtopic:
wil je het toch proberen moet je me maar even een PM sturen

[ Voor 12% gewijzigd door Boss op 22-08-2006 11:30 ]

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


Verwijderd

Topicstarter
Boss schreef op dinsdag 22 augustus 2006 @ 11:29:
Als je toch aan de slag wilt gaan: kijk eens naar de voorbeeldddatabase "noordenwind.mdb" die bij Access (NL) zit. Is een hoop uit te halen.

En anders moet je het laten doen, maar als je 60,- voor een boek al duur vindt kom je met een vergelijkbaar budget niet echt ver :)

offtopic:
wil je het toch proberen moet je me maar even een PM sturen
Daar was ik al bang voor.......moet het 1 sep af hebben.

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 11:06

Dido

heforshe

Ik heb hier geen access, dus ik kan je db niet bekijken.

Ik vraag me af of het volgende voor jou iets nieuws bevat:

Stel, ik heb een tabel bedrijf en een tabel sector.

Bedrijf: BedrijfID, naam, SectorID, andere velden
Sector: SectorID, omschrijving

De onderstreepte velden zijn Primaire Keys (PK's), SectorID in tabel Bedrijf is een Foreign Key (FK). Die moet dus in beide tabellen staan en hetzelfde type zijn!

Als je dit in Acces invoert (Alleen de PK's heof je in he tabeldefinitie aan te geven), dan kun je in je Relaties-scherm gewoon het veld Sector:SecortID naar het veld Bedrijf:SectorID trekken, een 1-op-veel relatie maken en klaar is Klara. Let wel dat je de "richting" goed legt: 1 sector kan meerder bedrijven hebben.

Dit is vrij basaal; begin daar eens mee. Als dit niet lukt heeft het geen zin om over je andere tabellen na te denken, namelijk.

Wat betekent mijn avatar?


Verwijderd

Topicstarter
Dido schreef op dinsdag 22 augustus 2006 @ 11:45:
Ik heb hier geen access, dus ik kan je db niet bekijken.

Ik vraag me af of het volgende voor jou iets nieuws bevat:

Stel, ik heb een tabel bedrijf en een tabel sector.

Bedrijf: BedrijfID, naam, SectorID, andere velden
Sector: SectorID, omschrijving

De onderstreepte velden zijn Primaire Keys (PK's), SectorID in tabel Bedrijf is een Foreign Key (FK). Die moet dus in beide tabellen staan en hetzelfde type zijn!

Als je dit in Acces invoert (Alleen de PK's heof je in he tabeldefinitie aan te geven), dan kun je in je Relaties-scherm gewoon het veld Sector:SecortID naar het veld Bedrijf:SectorID trekken, een 1-op-veel relatie maken en klaar is Klara. Let wel dat je de "richting" goed legt: 1 sector kan meerder bedrijven hebben.

Dit is vrij basaal; begin daar eens mee. Als dit niet lukt heeft het geen zin om over je andere tabellen na te denken, namelijk.
Bedankt voor je toevoeging, dit lukt me idd.

Het is mezelfs al gelukt!!! Het probleem wat ik telkens had was dat het veld bv SectorID een numeriek veld is (wat overigens wel goed was) en ik de keuzelijst enkel op cijfers kreeg. Nu heb ik de settings van een andere database (gevonden op internet) overgenomen en nu werkt het. Ik krijg netjes het lijstje te zien met de tekst uit de juiste kolom.

Als ik nu een relatie aanvink doet hij het gewoon. De richting lukt me. Het zijn allemaal één op veel lijntjes......

Pfjoei,......ben blij dat die het doet....

Nu kan ik iig de data al kwijt en kan ik rustig beginnen aan het maken van een formulier. Gelukkig vind ik dat niet heel erg lastig. Kwestie van uitlijnen logootje erbij en klaar.

Daarna wil ik nog een paar rapportjes kunnen draaien en voila.....afijn.....moet goed gaan komen nu.

Nogmaals bedankt.

Verwijderd

Topicstarter
Hallo mensen,

Ik ga jullie nog één keer lastig vallen met mijn kleine database:

Gisteravond tot even nog lopen knallen en ben een heel eind verder. Heb alle formulieren af incl. bijbehorende knoppen met de juiste gebeurtenissen erachter.....jullie voelen hem al aankomen maaarrrr.

Ik heb nu een formulier leden met een knop "contactmomenten". Als ik daarop klik zou het formulier van contactmomenten moeten openen. Dit gebeurt ook allemaal prima, enkel is het niet gekoppeld met de data van het formulier contacten. Kortom je moet elke keer een de juiste ID invoeren om te zorgen dat het contactmoment dat je invoegd ook bij de juiste contactpersoon terecht komt. Dit wil me dus niet lukken. Een dergelijke knop wil ik dan ook nog voor het formulier "leden" die dan zorgt dat ik bij de contactpersonen kom van het betreffende lid (bedrijf)!!!

De andere knoppen heb ik simpelweg afgekeken van een andere database en is relatief eenvoudig door simpelweg de juiste opties te kiezen in de "gebeurtenissen opbouw". De andere daabase die ik gevonden heb heeft echt exact dezelfde knop en het werkt. Echter als ik daar dan kijk wat ze hebben ingevuld bij de gebeurtenissen is het iets te veel van het goede voor mij!!!

Wie wil mij nog even helpen met de juiste macro of taal toe tevoegen aan dit knopje??

Beide bestanden heb ik even via yousendit online gezet, zodat jullie mee kunnen kijken/helpen.

Ik weet dat ik hier niet voor 1 sep achter ga komen hoe het werkt, dus wellicht dat iemand me kan helpen. Hieronder nog even de tekst die ik vind bij de gebeurtenis van "dezelfde" knop van het andere bestand. De knop heet staat meteen links in beeld en heet daar "dial contact".

edit:

Private Sub DialContact_Click()
On Error GoTo Err_Dial_Click

Dim strDialStr As String
Dim ctlPrevCtl As Control
Const ERR_OBJNOTEXIST = 2467
Const ERR_OBJNOTSET = 91

DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70

Set ctlPrevCtl = Screen.PreviousControl

If TypeOf ctlPrevCtl Is TextBox Then
strDialStr = IIf(VarType(ctlPrevCtl) > V_NULL, ctlPrevCtl, "")
ElseIf TypeOf ctlPrevCtl Is ListBox Then
strDialStr = IIf(VarType(ctlPrevCtl) > V_NULL, ctlPrevCtl, "")
ElseIf TypeOf ctlPrevCtl Is ComboBox Then
strDialStr = IIf(VarType(ctlPrevCtl) > V_NULL, ctlPrevCtl, "")
Else
strDialStr = ""
End If

Application.Run "utility.wlib_AutoDial", strDialStr

Exit_Dial_Click:
Exit Sub

Err_Dial_Click:
If (Err = ERR_OBJNOTEXIST) Or (Err = ERR_OBJNOTSET) Then
Resume Next
End If
MsgBox Err.Description
Resume Exit_Dial_Click
End Sub


Alvast bedankt voor jullie tijd!!!


Linkje van mijn database:
http://www.yousendit.com/...oad&ufid=8102C91B379C3842

Linkje van het vb die de knop bevat die ik nodig heb:
http://www.yousendit.com/...oad&ufid=7B5CF15974945373

  • PromoX
  • Registratie: Februari 2002
  • Laatst online: 24-07 09:39

PromoX

Flying solo

Dit is vrij basic en kun je best zelf oplossen met behulp van de help:
Als u een formulier wilt openen en de records in dit formulier wilt beperken tot de records die voldoen aan de waarde van een besturingselement op een ander formulier, gebruikt u de volgende expressie.

[veldnaam] = Forms![formuliernaam]![naam van besturingselement in ander formulier]

Het argument veldnaam is de naam van een veld in de onderliggende tabel of query van het formulier dat u wilt openen. Het argument naam van besturingselement in ander formulier is de naam van het besturingselement in het andere formulier dat de waarde bevat waaraan de records in het eerste formulier moeten voldoen.

[ Voor 10% gewijzigd door PromoX op 23-08-2006 14:11 ]

And I'm the only one and I walk alone.


Verwijderd

Topicstarter
PromoX schreef op woensdag 23 augustus 2006 @ 13:58:
code:
1
[ContactenID]=[Forms]![tblContacten]![ContactenID]

Bovenstaande code instellen als where-argument van de gebruikte macro.

Dit is vrij basic en had je ook best zelf op kunnen lossen met behulp van de help:

[...]
Dus ik hoef die hele tekst van mijn "voorbeeldbestand" niet te gebruiken?

Ga zodra ik thuis ben er direct weer mee aan de slag....
Pagina: 1