Selectie query besturen vanuit een formulier

Status
Niet open voor verdere reacties.

BromsnorII

Gebruiker
Lid geworden
27 sep 2006
Berichten
94
Hallo,

Een db heeft twee tabellen. Een tabel met gegevens van een verenging waaronder de naam van de vereniging. In een tweede tabel bevat de naam van de vereniging en de groepen binnen die verenging. Nu wil ik een formulier met een combobox die namen van de verenigingen bevat. En een listbox met de groepen van de in de combobox geselecteerde naam. De combobox kan ik maken is niet het probleem. Nu neem ik aan dat e.e.a. via een query en of SQL gerealiseerd moet worden. Beide heb ik geprobeerd maar het leidt niet tot de oplossing. SQL geeft alleen maar foutmeldingen en een query vind ik niet zo mooi als een formulier.

Weet iemand een oplossing of een site met SQL voorbeelden?

Bij voorbaat dank,

Sietse Keun
 
Een tabel met gegevens van een verenging waaronder de naam van de vereniging. In een tweede tabel bevat de naam van de vereniging en de groepen binnen die verenging.
Dit riekt al als een foute insteek; tabellen koppel je nooit op een naamveld maar op het sleutelveld. Dat zou bijvoorbeeld een Autonummerveld kunnen zijn in tVereniging, en een numeriek veld in tGroepen. Tussen de twee tabellen leg je dan een relatie met Referentiële Integriteit.
Daarnaast het volgende: waarom zo ingewikkeld? Als je een hoofdformulier maakt op basis van tVereniging, maakt Access hoogstwaarschijnlijk (als je bovenstaande hebt uitgevoerd) een doorlopend subformulier op dat hoofdformulier met keurig de gekoppelde groepen. Hoef je helemaal niks voor te doen :).
Maar wil je in je eigen techniek verder, plaats de db dan mee in het forum, dan kunnen we zien wat er fout gaat. Op basis van je verhaal is er weinig van te zeggen.
 
Prima; we zien het wel als je toch kiest voor de keuzelijst en daar hulp bij nodig hebt :). In hoofdstuk 18 van de Access cursus staat de door jou gewenste techniek verder beschreven.
 
Hallo Octafish,

Het slepen van een doorlopend formulier naar een hoofdformulier is gelukt. Echter dit lukt maar een keer (Hoofdform = Vereniging ). Bij het formulier sporters zou het ook moeten. Op het moment dat een bijbehorende verenging is gekozen moet de groepskeuze beperkt worden tot de groepen van de gekozen vereniging, dit wil maar niet lukken. In het formulier "ISA talent selector" moet een verenigign gekozen worden en ook daar een keuze uit de bij die vereniging behorende groepen. Ook dit wil niet lukken. Uiteindelijk moeten alle sporters uit de geselecteerde vereniging en groep gerangschikt naar talent worden opgesomd in de keuzelijsten.

Ik wil graag het access bestand bijsluiten, maar weet niet hoe.

Groet,
Sietse
 
Tussen twee haakjes, hoofdstuk 18 heeft mij veel geleerd, maar niet geleid tot de oplossing.
 
Plaats een voorbeeldje, zou ik zeggen!
 
Hallo Octafish,

Ik heb het ook geprobeerd met een query, zou je mij op het goede spoor willen zetten :( ?

Groet,
Sietse Keun
 
Tuurlijk, ik kijk er wel even naar.
 
Ben eerst bezig om de db te fatsoeneren; zo gaan alle keuzelijsten in je tabellen er uit (lees de cursus en de vragen die alleen deze week al gepost zijn er op na voor het waarom). En in de tabel [Verenigingsgroepen] heb je de velden [VerenigingId] en [VerenigingNaam] gezet; ook een heel slecht idee! Niet alleen omdat je maar één veld nodig hebt hier (de verwijzing naar het sleutelveld) maar ook omdat de 2 velden op deze manier tegenstrijdige gegevens kan opleveren. Zo houdt niemand je tegen als je in het veld [VerenigingId] de waarde 2 invult, en in het veld [VerenigingNaam] de waarde "Geen Beweging". En dat is echt een andere vereniging! Dat wil je toch niet?
En ik snap nog niet wat je formulier nu eigenlijk moet doen...
Overigens: als ik de 2e keuzelijst wil koppelen, loop ik gelijk tegen het feit aan dat ik 8 keuzelijsten zie staan, allemaal met dezelfde naam: 'keuzelijst##'. Hoe moet je daar de juiste uit kiezen? En het is zo simpel: geef, als je een keuzelijst hebt gemaakt, die gelijk een logische en herkenbare naam, zoals cboVereniging. Dan kun je de juiste keuze wél maken!
In dit geval moet je de keuzelijst cboGroep de volgende Rijbron geven, gebaseerd op de keuzelijst cboVereniging dus:
Code:
SELECT GroepId, Groep FROM Groepen WHERE (Vereniging_ID=[Formulieren]![ISA Talent Selector]![cboVereniging]);
Om de tweede keuzelijst te verversen, heb je nog een klein stukje vba nodig, bij de gebeurtenis <Bij klikken>. Deze code ververst de keuzelijst cboGroep als je in cboVereniging een andere club kiest.
Code:
Private Sub cboVereniging_Click()
    Me.cboGroep.Requery
End Sub
 
Hallo Octafish,

Dank voor het spoor. Ik ga er weer mee aan de slag. Bedoeling is listboxen te vullen met sporters. Sporters met een rug talent bij elkaar en sporters met een buik talent bij elkaar. Geselecteerd per vereniging en per groep. Omdat er meer talenten vormen zijn moet ik het ook zo dynamisch maken dat er ook geselecteerd kan worden naar talent vormen. Dus als ik alleen wil selecteren op rug en buik moet ik ook alleen maar die listboxen zien. En wil ik middel en schouders erbij hebben moet ik die erbij laten zien. Dit laatste moet ik doen met de eigenschap visible neem ik aan?

Bedankt,
Sietse Keun
 
Ik snap eerlijk gezegd je tabelindeling nog niet; De tabel [tGroepen] bijvoorbeeld zou bij mij opties bevatten als:
Groep
Dames
Dames Recranten
Heren
Heren Recranten
Meisjes
Meisjes Recranten
Jongens
Jongens Recranten
Recreanten
Recranten gemixed

etc. En bij [tVerenigingsgroepen] zou ik dan de koppeling maken tussen [tVerenigingen] en [tGroepen], waarbij je dan voor elke groep een categorie toewijst uit [tGroepen] en een oplopend volgnummer. Dan kun je dus heel makkelijk, en zonder normalisatieproblemen, de groepen [Heren 1], [Heren 2], [Heren 3], [Dames 1] en [Dames 2] maken voor een bepaalde vereniging. En aan die records koppel je dan weer, met een andere koppeltabel, de sporters.
 
Hallo Octafish,,

Dat jij mijn tabel indeling niet snapt begrijp ik. Ongeveer een driekwart jaar geleden heb ik een werkende database gebouwd en daarna niets meer met databases gedaan. Maar steeds meer zie ik het nut van een database in. Dus ben ik weer begonnen maar ik moet helemaal van begin af aan starten. En ik ben ongeduldig van nature..... Ik heb inmiddels jou cursus gedownload en ben bezig dit te doorgronden.

Sorry voor mijn ongeduld en dus mijn warrige db.

Groet,
Sietse
 
Sorry voor mijn ongeduld en dus mijn warrige db.
Nergens voor nodig; iedereen heeft het tenslotte ooit moeten leren :).

En ik ben ongeduldig van nature.....
Dit is minder handig als je databases wilt leren maken :D.

Een goede database begint met een goed ontwerp, zoals hopelijk ook uit de cursus blijkt. Daarbij moet jij, als ontwerper, dus heel goed vastleggen welke gegevensstromen je allemaal hebt, welke processen er lopen en wat er uiteindelijk allemaal uit moet kunnen rollen. De programma-eisen bepalen dus grotendeels welke tabellen je nodig hebt. Pas als dat uitgedacht is, kun je tabellen gaan maken. Jouw eerste opmerking (Een db heeft twee tabellen.) was dus al behoorlijk kort door de bocht, ik heb er voor één aspect al 4 nodig :).
 
Ik snap niet wat Vereniging in Groep doet. Of in Sporter. Eén van de twee mag, maar niet alletwee.
 
Hallo Octafish,

Je scheef;
Ik snap niet wat Vereniging in Groep doet. Of in Sporter. Eén van de twee mag, maar niet alletwee.

Omdat een groep afhankelijk is van een vereniging en een sporter lid is van een verenging en is ingedeeld in een groep.... Zou ik alleen een tbl maken met groepen hoe weet access dan tot welke vereniging de groep behoord. Ik begrijp dat dit te maken heeft met normalisatie, maar dit gaat mijn pet iets te boven. Ik heb het deel van de normalisatie uit je cursus geraadpleegd maar kom er nog niet uit.

ISA db Plan 2.jpg

Groet,
Sietse
 
Omdat een groep afhankelijk is van een vereniging en een sporter lid is van een verenging en is ingedeeld in een groep....
Je zégt het goed, maar je voert het dus niet goed uit :). Als een sporter lid is van een groep, en een groep een onderdeel is van een vereniging, dan ben je er toch? Je hebt dan een tabel Sporters, een tabel Groepen, een tabel Vereniging_Groepen, een tabel Vereniging en een tabel Vereniging_Groepen_Sporters. Die laatste koppelt de tabellen [Vereniging_Groepen] en [Sporters].
 
Hallo Octafish,

Het wil nog niet lukken :confused:. Bij een vereniging kan zonder problemen de groepen toevoegen, dat werkt prima. Maar als dan bij sporters de vereniging selecteer om daarna de bij die vereniging horende groepen wil selecteren gaat het verkeerd. Dan zijn alle groepen geselecteerd i.p.v. die die bij de vereniging horen.

Ik leer veel meer als ik het zelf uit dokter maar het lijkt erop of ik iedere verdwaal. Zou je een voorbeeld kunnen geven waarop ik verder kan borduren?

Bekijk bijlage NieuwISA.rar

Bij voorbaat dank.
Sietse
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan