Toon posts:

[acces]naam mag niet meer dan 2 keer

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik weet niet hoe ik dit moet realiseren.
In tabel 1 staan namen van verkopers met NAW-gegevens.
In tabe 2 staan hobbies met prijzen.

Tabel drie staat de naam van de verkoper en de naam van de hobby.
Deze namen staan in een één op veel relatie met de andere twee tabellen.
Zowel hobby als verkoper kan oneindig vaak in tabel 3 voorkomen, maar ze moeten wel bestaan in tabel 1 en 2.

Nu wil ik eigenlijk dat de verkopernaam maar 2 keer in tabel 3 mag voorkomen en niet vaker. Ik weet alleen niet hoe ik dit moet realiseren.

Eén optie die ik heb gevonden is, tabel 3 niet aanmaken, maar in tabel 1 twee colommen hobby1 en hobbie2 aanmaken en hier een relatie maken met tabel 2, maar zo doe ik het liever niet eigenlijk.

Moet dit via een validatieregel? Dat je aan kunt geven dat een naam in tabel drie niet vaker dan 2 keer mag voorkomen? Ik heb hier al naar gezocht maar kon niks vinden.

Als je denkt waar gaat dit over; ik ben aan het leren voor mijn tentamen, dus het is een fictiedatabase wat niet daadwerkelijk gebruikt gaat worden. Bovendien heb ik nu pas 2 weken kennis van het programma acces en ik doe mijn best.

edit:
in tabel 1 staat de sleutel op de naam van de verkoper
in tabel 2 staat de sleutel op de naam van de hobbie
in tabel 3 staat de sleutel op bijde namen, dus de combinatie

Verwijderd

Topicstarter
Niemand een idee? ik heb me al te pletter gegoogled, bovendien heb ik in de edit nog wat extra info geplaatst.
edit:
misschien een beetje vroeg gekicked, maar ik ga zo naar bed, en morgenochtend heb ik mijn tentamen, dus als ik nu geen antwoord op krijg haal ik morgen maar een 9 :P :'(

Verwijderd

als je met dingen aankomt met tabel 1, tabel 2, tabel 3 dan gaan de meeste van ons denk ik niet eens de moeite nemen om het te lezen..
Ja ik en wil gewoon met m'n thingy de dinges aansturen als ik op dat geval klik...
Snap je?

  • ErikRo
  • Registratie: Juni 2001
  • Laatst online: 26-08 18:02
Het verhaal is me na 3 x lezen nog niet helemaal duidelijk maar ik doe een poging ;)

>Nu wil ik eigenlijk dat de verkopernaam maar 2 keer in tabel 3 mag voorkomen en niet vaker. Ik weet alleen niet hoe ik dit moet realiseren.
>Eén optie die ik heb gevonden is, tabel 3 niet aanmaken, maar in tabel 1 twee colommen hobby1 en hobbie2 aanmaken en hier een relatie maken met tabel 2, maar zo doe ik het liever niet eigenlijk.

Volgens mij heb je geen keus.


>Moet dit via een validatieregel? Dat je aan kunt geven dat een naam in tabel drie niet vaker dan 2 keer mag voorkomen? Ik heb hier al naar gezocht maar kon niks vinden.

Dat bestaat niet in access (volgens mijn bescheiden mening).


>Ik nu pas 2 weken kennis van het programma acces en ik doe mijn best.

Ach we hebben allemaal wel eens een duwtje in de rug nodig.

>in tabel 1 staat de sleutel op de naam van de verkoper
>in tabel 2 staat de sleutel op de naam van de hobbie
>in tabel 3 staat de sleutel op bijde namen, dus de combinatie

Ik hoop voor je dat je niet echt denkt, dat "bijde" met een lange ij geschreven wordt :)

"I don't have any solution but I certainly admire the problem." -- Ashleigh Brilliant


  • gorgi_19
  • Registratie: Mei 2002
  • Nu online

gorgi_19

Kruimeltjes zijn weer op :9

Kan je deze validatieregel anders niet omzeilen ( * gorgi_19 gaat nu even flink fantaseren, graag vriendelijk eventueel dit verhaaltje de grond in boren.. ;) )

Als je een query neemt, met als output alle namen die minder dan 2 maal voorkomen in de table 3 en deze vult in een dropdownlist op een form.

Op deze manier kan je nooit meer dan 2 namen hebben. Immers, meer dan 2 namen worden niet in de dropdownlist weergegeven.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 12-08 16:04

Jaspertje

Max & Milo.. lief

gorgi_19 schreef op 06 november 2002 @ 00:12:
Kan je deze validatieregel anders niet omzeilen ( * gorgi_19 gaat nu even flink fantaseren, graag vriendelijk eventueel dit verhaaltje de grond in boren.. ;) )

Als je een query neemt, met als output alle namen die minder dan 2 maal voorkomen in de table 3 en deze vult in een dropdownlist op een form.

Op deze manier kan je nooit meer dan 2 namen hebben. Immers, meer dan 2 namen worden niet in de dropdownlist weergegeven.
Denk inderdaad dat dat een goede oplossing is, dan moet je alleen niet in de db zelf gaan frutten, maar de oplossing die de starter zelf gaf was ook goed, een tabel met 2 hobbies, en dan mijn vraag, waartom zou dat niet goed zijn, of waarom wil je dan niet??

Verwijderd

gorgi_19 schreef op 06 november 2002 @ 00:12:
Kan je deze validatieregel anders niet omzeilen ( * gorgi_19 gaat nu even flink fantaseren, graag vriendelijk eventueel dit verhaaltje de grond in boren.. ;) )
Als je een query neemt, met als output alle namen die minder dan 2 maal voorkomen in de table 3 en deze vult in een dropdownlist op een form.

Op deze manier kan je nooit meer dan 2 namen hebben. Immers, meer dan 2 namen worden niet in de dropdownlist weergegeven.
Prima idee Gorgi_19, alleen worden verkopers die nog helemaal niet zijn gekoppeld aan hobbies niet getoond. Als je deze weet samen te voegen, is je validatie in orde. In de grond boren is dus niet nodig ;)

[Edit] Dit kan door Join Properties op 2 te zetten (left join).

SELECT Verkoper.Naam, Verkoper.Verkoper_ID, Count(HobbyVerkoper.Verkoper_ID) AS CountOfVerkoper_ID
FROM Verkoper LEFT JOIN HobbyVerkoper ON Verkoper.Verkoper_ID = HobbyVerkoper.Verkoper_ID
GROUP BY Verkoper.Naam, Verkoper.Verkoper_ID
HAVING (((Count(HobbyVerkoper.Verkoper_ID))<2));

Vergeet na de invoer van een record niet de ComboBox.Requery uit te voeren in vba code.

code:
1
2
3
Private Sub Form_AfterInsert()
  Me.Verkoper_ID.Requery
End Sub

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 21-08 21:44

MBV

Als je toch in het form wilt blokkeren, kan je bij de property's van de dropdownbox een validatieregel invoeren? Dat lijkt mij een betere oplossing.

Verwijderd

Eén optie die ik heb gevonden is, tabel 3 niet aanmaken, maar in tabel 1 twee colommen hobby1 en hobbie2 aanmaken en hier een relatie maken met tabel 2, maar zo doe ik het liever niet eigenlijk.
Een hulptabel (tabel 3) is inderdaad helemaal niet nodig als je toch maximaal twee hobbies invuld. Gebruik dan gewoon velden hobbie1 en hobbie2 in tabel verkoper. Tabel 3 is alleen nodig als je extra info aan de relatie wilt vastleggen, bijvoorbeeld datum waarop de verkoper deze hobbie is gaan aanbieden.

Jaspertje, goed opgemerkt!

Verwijderd

Topicstarter
gorgi_19 schreef op 06 november 2002 @ 00:12:
Kan je deze validatieregel anders niet omzeilen ( * gorgi_19 gaat nu even flink fantaseren, graag vriendelijk eventueel dit verhaaltje de grond in boren.. ;) )

Als je een query neemt, met als output alle namen die minder dan 2 maal voorkomen in de table 3 en deze vult in een dropdownlist op een form.

Op deze manier kan je nooit meer dan 2 namen hebben. Immers, meer dan 2 namen worden niet in de dropdownlist weergegeven.
Goed plan, dat ga ik eens proberen.

Op de vraag waarom ik persee die derde tabel wilde aanmaken was omdat ik het pakket aan het bestuderen was. Ik maak het mezelf dan graag moeilijk :).

Ik heb overigens vannochtend het tentamen gehad over Acces, dat was echt te makkelijk. Het was weer duidelijk dat ik veels te geavanceerde dingen aan het leren ben, maar boeie, ik ben terug naar school gegaan om tijd te hebben om te leren, leer liever meer dan minder.

P.S. Beide idd :X (spelling en zinsbouw is niet mijn sterkste kant)

  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 12-08 16:04

Jaspertje

Max & Milo.. lief

Ben je nu zoiets aan het maken om acces goed te leren of ga je dit ook werkelijk gebruiken? Want als het om het eerste gaat. tja dan ben ik nu klaar met deze reply,. maar ga je het ook gebruiken? Dan is het belangrijker om een goede structuur neer te zetten ipv het jezelf moeilijk maken.....

Verwijderd

Verwijderd schreef op 05 november 2002 @ 20:53:
Nu wil ik eigenlijk dat de verkopernaam maar 2 keer in tabel 3 mag voorkomen en niet vaker. Ik weet alleen niet hoe ik dit moet realiseren.
Zoiets moet het ongeveer worden...
ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<%
sql="SELECT verkopernaam FROM tabel3 WHERE verkopernaam='ingevoerdewaarde'"
totaal=0
If Rsiets.EOF Then
'voer je query uit om toe te voegen
Else
Do Until Rsiets.EOF
totaal=totaal+1
Rsiets.MoveNext
Loop
End If

If totaal>2 then
'mag niet worden toegevoegd
Else
'voer je query uit om toe te voegen
End if
%>

Verwijderd

Topicstarter
Jaspertje schreef op 06 november 2002 @ 14:00:
Ben je nu zoiets aan het maken om acces goed te leren of ga je dit ook werkelijk gebruiken? Want als het om het eerste gaat. tja dan ben ik nu klaar met deze reply,. maar ga je het ook gebruiken? Dan is het belangrijker om een goede structuur neer te zetten ipv het jezelf moeilijk maken.....
Puur om te leren.

Verwijderd

Topicstarter
Verwijderd schreef op 06 november 2002 @ 14:54:
[...]

Zoiets moet het ongeveer worden...
ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<%
sql="SELECT verkopernaam FROM tabel3 WHERE verkopernaam='ingevoerdewaarde'"
totaal=0
If Rsiets.EOF Then
'voer je query uit om toe te voegen
Else
Do Until Rsiets.EOF
totaal=totaal+1
Rsiets.MoveNext
Loop
End If

If totaal>2 then
'mag niet worden toegevoegd
Else
'voer je query uit om toe te voegen
End if
%>
Bedankt. Ik ga het eens uit proberen te zoeken.
Ik ken acces net 2 weken en ik ken een beetje de basisprincipes van Visual Basic, maar ik ga gewoon verder :), moet het toch ooit leren nietwaar :).
Maar eerst maar eens mijn tentamen voor morgen leren (en die is helaas iets minder interessant, vergadertechnieken :| )

  • MMUilwijk
  • Registratie: Oktober 2001
  • Laatst online: 15:12
Ehh om toch nog even terug te komen op die derde tabel, ontwerp technisch gezien is ie wel noodzakelijk..
Ga je bijvoorbeeld in een ERD model deze relaties vastleggen (voor het ontwerpen van een DB) dan blijkt dat er tussen de relatie verkoper -- hobby een zogenaamde
m-n relatie bestaat..Immers een hobby kan bij meerdere verkopers horen en een
verkoper kan meerdere hobby's hebben....En in zo'n geval heb je een tabel voor opslag van deze gegevens nodig..
Goed, ik dacht, laat ik even mijn geleerde kennis spuien, ter ondersteuning van de topic starter ;)

Everytime I suffer I become a better man because of it


  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 12-08 16:04

Jaspertje

Max & Milo.. lief

MMUilwijk schreef op 06 november 2002 @ 15:31:
Ehh om toch nog even terug te komen op die derde tabel, ontwerp technisch gezien is ie wel noodzakelijk..
Ga je bijvoorbeeld in een ERD model deze relaties vastleggen (voor het ontwerpen van een DB) dan blijkt dat er tussen de relatie verkoper -- hobby een zogenaamde
m-n relatie bestaat..Immers een hobby kan bij meerdere verkopers horen en een
verkoper kan meerdere hobby's hebben....En in zo'n geval heb je een tabel voor opslag van deze gegevens nodig..
Goed, ik dacht, laat ik even mijn geleerde kennis spuien, ter ondersteuning van de topic starter ;)
Technisch gezien heb je inderdaad gelijk.. Alleen zal al snel blijken als je met UML de database structuur gaat maken, dat je maar 2 hobbies mag toevoegen en dan kan je er ook voor kiezen om het op de andere manier op te lossen. Die manier is overzichtelijker (tenzij er nog andere dingen mee gaan gebueren)

Ik ben het wel met je eens dat (ook met het oog op de toekomst) het wel netter en beter is om een apparte tabel te maken... Maar als het bij iets kleins blijft hoeft het dus niet


[nutteloos]
Als je 21 hobbies hebt, kan je ook in de 1e tabel 21 velden maken voor hobbies :P
[/nutteloos]

  • MMUilwijk
  • Registratie: Oktober 2001
  • Laatst online: 15:12
Jaspertje schreef op 06 november 2002 @ 15:44:
[...]


Technisch gezien heb je inderdaad gelijk.. Alleen zal al snel blijken als je met UML de database structuur gaat maken, dat je maar 2 hobbies mag toevoegen en dan kan je er ook voor kiezen om het op de andere manier op te lossen. Die manier is overzichtelijker (tenzij er nog andere dingen mee gaan gebueren)

Ik ben het wel met je eens dat (ook met het oog op de toekomst) het wel netter en beter is om een apparte tabel te maken... Maar als het bij iets kleins blijft hoeft het dus niet


[nutteloos]
Als je 21 hobbies hebt, kan je ook in de 1e tabel 21 velden maken voor hobbies :P
[/nutteloos]
Klopt, ik zeg ook nergens dat het fout is....als het daadwerkelijk bij 2 hobbies blijft is het geen probleem...

[nutteloos]
Hehe goed plan, 21 velden voor de hobbies, vooral als 90% 1 hobby heeft...gaat je DB leuk vinden...om maar niet te spreken van de snelheid....
[/nutteloos]

Everytime I suffer I become a better man because of it

Pagina: 1