Toevoegquery

  • Onderwerp starter Onderwerp starter musti
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

musti

Gebruiker
Lid geworden
26 feb 2006
Berichten
143
Ik heb de volgende tabellen

Klas,Leerling en Leerling/klas

Ik heb een formulier gemaakt met 3 keuzelijsten, namelijk een van klas,leerling en leerling klas. Ik wil dat de gebruiker de gewenste klas en de leerlingen selecteert en daarna op toevoegen klikt waardoor ze dan worden toegevoegd.

Later heb ik ook een toevoegquery gemaakt maar geeft aan dat er 0 rijen worden toegevoegd.

Zie database

form LeerlingenToevoegenAanKlas
 

Bijlagen

Het probleem zit hem in je toevoegquery. Je hebt daarvoor een selectie-achtige query gemaakt, met criteriums. Dat werkt dus in dit geval niet zo jofel.

Je query moet er ongeveer zo uit zien:

Code:
INSERT INTO [leerling/klas] ( id_leerling, id_klas )
SELECT Forms!LeerlingenAanKlasToevoegen!Keuzelijst134 AS Expr1, Forms!LeerlingenAanKlasToevoegen!Keuzelijst138 AS Expr2;

Hierbij gebruik je dus alleen de waarden uit het formulier, die je opslaat in de tabel [Leerlingen/Klas].

Overigens zit hier nog geen controle in of de combinatie al bestaat. Dat zu ik dus nog wel doen...
 
Het probleem zit hem in je toevoegquery. Je hebt daarvoor een selectie-achtige query gemaakt, met criteriums. Dat werkt dus in dit geval niet zo jofel.

Je query moet er ongeveer zo uit zien:

Code:
INSERT INTO [leerling/klas] ( id_leerling, id_klas )
SELECT Forms!LeerlingenAanKlasToevoegen!Keuzelijst134 AS Expr1, Forms!LeerlingenAanKlasToevoegen!Keuzelijst138 AS Expr2;

Hierbij gebruik je dus alleen de waarden uit het formulier, die je opslaat in de tabel [Leerlingen/Klas].

Overigens zit hier nog geen controle in of de combinatie al bestaat. Dat zu ik dus nog wel doen...

bedankt
ik heb ook daarna een verwijderquery gemaakt maar dat werkt ook niet zo jofel.
Maar is ook de vraag dat wanneer ik de querys uitvoer dat tabel niet wordt geupdate. ik heb wel een selectiequery gemaakt voor het keuzelijst leerling/klas maar wil graag ook een update.
Alvast bedankt voor al de moeite
 

Bijlagen

Wat bedoel je met

ik heb ook daarna een verwijderquery gemaakt maar dat werkt ook niet zo jofel.

Een verwijderquery werkt, of werkt niet..... Je moet uiteraard wel opgeven welk record moet worden vewijderd. En je moet het sterretje selecteren als te verwijderen velden, want bij het verwijderen van een record moet wel het hele record weg. Misschien kun je anders de SQL van de query posten? (<Beeld>, <SQL> in je queryontwerpweergave)

Het bijwerken van je formulier gebeurt pas als je daar een opdracht voor geeft, bijvoorbeeld in de code die je bij de knop gebruikt. Als laatste regel voeg je dan toe:
Me.Requery
Dan wordt het formulier opnieuw ingelezen.
 
Wat bedoel je met



Een verwijderquery werkt, of werkt niet..... Je moet uiteraard wel opgeven welk record moet worden vewijderd. En je moet het sterretje selecteren als te verwijderen velden, want bij het verwijderen van een record moet wel het hele record weg. Misschien kun je anders de SQL van de query posten? (<Beeld>, <SQL> in je queryontwerpweergave)

Het bijwerken van je formulier gebeurt pas als je daar een opdracht voor geeft, bijvoorbeeld in de code die je bij de knop gebruikt. Als laatste regel voeg je dan toe:
Me.Requery
Dan wordt het formulier opnieuw ingelezen.

Ik heb de verwijderquery gemaakt. wanneer ik dan de gewenste leerling wil verwijderen verwijdert hij alles. Ik kom er niet uit
en ten tweede : waar moet ik de my.requery toevoegen(is dat na bijwerken of voor bijwerken)
 
Je hebt in de db een verwijderquery zitten. Is dat de query die niet werkt?
(antwoord: deze query werkt inderdaad niet....) Zo nee, waar vind ik de query, en op welk formulier?
 
Je hebt in de db een verwijderquery zitten. Is dat de query die niet werkt?
(antwoord: deze query werkt inderdaad niet....) Zo nee, waar vind ik de query, en op welk formulier?

formulier: leerlingen aan klas toevoegen. met het knop verwijderen wordt de query uitgevoerd.
 
Ik heb een beetje lopen spelen met het formulier, en e.e.a. met VBA opgelost.
(heb een gruwelijke hekel aan macro's.......) (echt een gruwelijke hekel....)

In eerste instantie heb ik de keuzelijst met klasindeling geen bron gegeven, omdat de bron eigenlijk afhankelijk is van de keuzelijst Klas. Als je dus een klas aanklikt, zie je wie er in die klas zitten.
Verder zul je zien, dat er wat extra (onzichtbare) velden aan de query zijn toegevoegd. Die heb je nodig om te kunnen bepalen welke persoon moet worden verwijderd.
Zoals je ziet, wordt de standaardquery nu ook niet meer gebruikt.
 

Bijlagen

Ik heb een beetje lopen spelen met het formulier, en e.e.a. met VBA opgelost.
(heb een gruwelijke hekel aan macro's.......) (echt een gruwelijke hekel....)

In eerste instantie heb ik de keuzelijst met klasindeling geen bron gegeven, omdat de bron eigenlijk afhankelijk is van de keuzelijst Klas. Als je dus een klas aanklikt, zie je wie er in die klas zitten.
Verder zul je zien, dat er wat extra (onzichtbare) velden aan de query zijn toegevoegd. Die heb je nodig om te kunnen bepalen welke persoon moet worden verwijderd.
Zoals je ziet, wordt de standaardquery nu ook niet meer gebruikt.

volgens heeft u de database van mij toegevoegd en niet die van jou wat jij veranderd hebt. Als ik klik op een klas dan zie ik niks.
 
Kon wel eens waar zijn.... Hier dus de andere versie!
 

Bijlagen

Kon wel eens waar zijn.... Hier dus de andere versie!

Bedankt voor al het moeite, maar dan is er nog een probleempje helaas!!
Sorry voor het overlast.

Een leerling mag meerdere keren aan een klas toegevoegd worden, maar niet aan dezelfde activiteit

bijv,

mag niet

groep: 8a activiteit: WPO
groep: 8b activieit: WPO


mag wel

groep 8a activieit: wpo
groep 8a activiteit: cito training

Kan dit ook gedaan worden zonder de primaire sleutel te veranderen in de tabel.
 
Ik denk dat je nu een denkfout maakt. Een leerling kan volgens mij maar één keer in een klas zitten, en niet twee of meer keren.
Hij/zij kan natuurlijk wel meerdere keren aan een activiteit worden toegevoegd, omdat een leerling aan meerdere activiteiten kan meedoen.
Het is nu de vraag, hoe je de activiteiten definieert en koppelt. Als je activiteiten koppelt aan een klas, wat mij logisch zou lijken, dan kan een leerling uit een klas dus aan de aan de klas toegewezen activiteiten worden gekoppeld. In dat geval heb je een één-op-veel relatie tussen Leerling en Klas, waarbij dus één leerling meerdere keren aan een klas kan worden toegewezen. Ik zou overigens wel nog een veld Leerjaar aan de tabel Klas/Leerling toevoegen, omdat iemand misschien wel een jaar doubleert. En zonder jaartal kom je dan in de problemen met de sleutel. Die bestaat dan dus uit: KlasID, Leerlingid, en Leerjaar.
Tussen Klas en Activiteiten heb je dan ook een één-op-veel relatie, waarbij aan één klas meerdere activiteiten worden gekoppeld.
 
Ik denk dat je nu een denkfout maakt. Een leerling kan volgens mij maar één keer in een klas zitten, en niet twee of meer keren.
Hij/zij kan natuurlijk wel meerdere keren aan een activiteit worden toegevoegd, omdat een leerling aan meerdere activiteiten kan meedoen.
Het is nu de vraag, hoe je de activiteiten definieert en koppelt. Als je activiteiten koppelt aan een klas, wat mij logisch zou lijken, dan kan een leerling uit een klas dus aan de aan de klas toegewezen activiteiten worden gekoppeld. In dat geval heb je een één-op-veel relatie tussen Leerling en Klas, waarbij dus één leerling meerdere keren aan een klas kan worden toegewezen. Ik zou overigens wel nog een veld Leerjaar aan de tabel Klas/Leerling toevoegen, omdat iemand misschien wel een jaar doubleert. En zonder jaartal kom je dan in de problemen met de sleutel. Die bestaat dan dus uit: KlasID, Leerlingid, en Leerjaar.
Tussen Klas en Activiteiten heb je dan ook een één-op-veel relatie, waarbij aan één klas meerdere activiteiten worden gekoppeld.

Een leerling kan in meerdere klassen zitten.

Het zit als volgt: een klas heeft een activiteit(activiteit is keuzelijst dat wordt opgehaald uit de tabel activiteiten) dat wordt uitgevoerd, bijv. huiswerkbegeleiding, maar kan ook een klas zijn met als activiteit cito training.
Dus een een leerling kan in meerdere klassen zitten.

maar ik wil niet dat een leerling in 2 klassen zit met dezelfde activiteit.

dit mag niet:
bv. groep 8a huiswerkbegeleiding
bv. groep 8b huiswerkbegeleiding

dit mag wel

groep 8a huiswerkbegeleiding
groep 8a cito training

ik hoop dat u het begrijpt, zo niet excuses voor mijn uitleg

ik dacht aan indexxen, maar ik heb het probleem dat
er een veel op veel relatie is.

een leerling kan in meerdere klassen zitten en in een klas kunnen meerdere leerlingen bevinden.

dus heb ik een tussentabel gemaakt. leerling/klas waar de primaire keys leerling_id en Klas_id zijn.


en hoe kom ik van de berichten af bij het toevoegen van de leerling aan klas
 
Laatst bewerkt:
Ik denk dat je nu een denkfout maakt. Een leerling kan volgens mij maar één keer in een klas zitten, en niet twee of meer keren.
Hij/zij kan natuurlijk wel meerdere keren aan een activiteit worden toegevoegd, omdat een leerling aan meerdere activiteiten kan meedoen.
Het is nu de vraag, hoe je de activiteiten definieert en koppelt. Als je activiteiten koppelt aan een klas, wat mij logisch zou lijken, dan kan een leerling uit een klas dus aan de aan de klas toegewezen activiteiten worden gekoppeld. In dat geval heb je een één-op-veel relatie tussen Leerling en Klas, waarbij dus één leerling meerdere keren aan een klas kan worden toegewezen. Ik zou overigens wel nog een veld Leerjaar aan de tabel Klas/Leerling toevoegen, omdat iemand misschien wel een jaar doubleert. En zonder jaartal kom je dan in de problemen met de sleutel. Die bestaat dan dus uit: KlasID, Leerlingid, en Leerjaar.
Tussen Klas en Activiteiten heb je dan ook een één-op-veel relatie, waarbij aan één klas meerdere activiteiten worden gekoppeld.

Een leerling kan in meerdere klassen zitten.

Het zit als volgt: een klas heeft een activiteit(activiteit is keuzelijst dat wordt opgehaald uit de tabel activiteiten) dat wordt uitgevoerd, bijv. huiswerkbegeleiding, maar kan ook een klas zijn met als activiteit cito training.
Dus een een leerling kan in meerdere klassen zitten.

maar ik wil niet dat een leerling in 2 klassen zit met dezelfde activiteit.

dit mag niet:
bv. groep 8a huiswerkbegeleiding
bv. groep 8b huiswerkbegeleiding

dit mag wel

groep 8a huiswerkbegeleiding
groep 8a cito training

ik hoop dat u het begrijpt, zo niet excuses voor mijn uitleg

ik dacht aan indexxen, maar ik heb het probleem dat
er een veel op veel relatie is.

een leerling kan in meerdere klassen zitten en in een klas kunnen meerdere leerlingen bevinden.

dus heb ik een tussentabel gemaakt. leerling/klas waar de primaire keys leerling_id en Klas_id zijn.


en hoe kom ik van de berichten af bij het toevoegen van de leerling aan klas
 
Ik denk dat je nu een denkfout maakt. Een leerling kan volgens mij maar één keer in een klas zitten, en niet twee of meer keren.
Hij/zij kan natuurlijk wel meerdere keren aan een activiteit worden toegevoegd, omdat een leerling aan meerdere activiteiten kan meedoen.
Het is nu de vraag, hoe je de activiteiten definieert en koppelt. Als je activiteiten koppelt aan een klas, wat mij logisch zou lijken, dan kan een leerling uit een klas dus aan de aan de klas toegewezen activiteiten worden gekoppeld. In dat geval heb je een één-op-veel relatie tussen Leerling en Klas, waarbij dus één leerling meerdere keren aan een klas kan worden toegewezen. Ik zou overigens wel nog een veld Leerjaar aan de tabel Klas/Leerling toevoegen, omdat iemand misschien wel een jaar doubleert. En zonder jaartal kom je dan in de problemen met de sleutel. Die bestaat dan dus uit: KlasID, Leerlingid, en Leerjaar.
Tussen Klas en Activiteiten heb je dan ook een één-op-veel relatie, waarbij aan één klas meerdere activiteiten worden gekoppeld.

Een leerling kan in meerdere klassen zitten.

Het zit als volgt: een klas heeft een activiteit(activiteit is keuzelijst dat wordt opgehaald uit de tabel activiteiten) dat wordt uitgevoerd, bijv. huiswerkbegeleiding, maar kan ook een klas zijn met als activiteit cito training.
Dus een een leerling kan in meerdere klassen zitten.

maar ik wil niet dat een leerling in 2 klassen zit met dezelfde activiteit.

dit mag niet:
bv. groep 8a huiswerkbegeleiding
bv. groep 8b huiswerkbegeleiding

dit mag wel

groep 8a huiswerkbegeleiding
groep 8a cito training

ik hoop dat u het begrijpt, zo niet excuses voor mijn uitleg

ik dacht aan indexxen, maar ik heb het probleem dat
er een veel op veel relatie is.

een leerling kan in meerdere klassen zitten en in een klas kunnen meerdere leerlingen bevinden.

dus heb ik een tussentabel gemaakt. leerling/klas waar de primaire keys leerling_id en Klas_id zijn.


en hoe kom ik van de berichten af bij het toevoegen van de leerling aan klas
 
Om met iets algemeens te beginnen: als je je vraag weer onder de aandacht wilt brengen, dan zou ik niet het vorige antwoord knippen en plakken.... Een simpel: "Weet iemand misschien antwoord?" is wel zo netjes..

Je laatste vraag is in te stellen via <Extra>, <Opties>, tabblad <Bewerken> optie <Actiequeries> uitzetten.
Voor de eigenlijke vraag: ik vind je tabellenstructuur een beetje te ingewikkeld in elkaar zitten; ik zou hem dus versimpelen.
Ik ging er vanuit, dat een klas een vast activiteitenprogramma heeft, waar elke leerling van die klas aan meedoet. Blijkbaar is dat bij jou niet het geval, en kiest een leerling zelf activiteiten, die dan wel aan een klas zijn gekoppeld.
Je zou dat op kunnen lossen door door de tabel Klas/Leerling uit te breiden met het veld ActiviteitenID, en de tabel Activiteiten dus ook aan die tabel te koppelen. De sleutel moet je dan ook uitbreiden naar drie velden, want je wilt voorkomen dat een leerling van een klas een activiteit meer dan één kan kiezen.
Op je formulier heb je de keuzelijst Activiteiten ook gekoppeld aan de klas, dus je zou dan alleen maar moeten kunnen kiezen uit activiteiten die nog niet in de tabel Leerling/Klas/Activiteit voorkomen.
 
Om met iets algemeens te beginnen: als je je vraag weer onder de aandacht wilt brengen, dan zou ik niet het vorige antwoord knippen en plakken.... Een simpel: "Weet iemand misschien antwoord?" is wel zo netjes..

Je laatste vraag is in te stellen via <Extra>, <Opties>, tabblad <Bewerken> optie <Actiequeries> uitzetten.
Voor de eigenlijke vraag: ik vind je tabellenstructuur een beetje te ingewikkeld in elkaar zitten; ik zou hem dus versimpelen.
Ik ging er vanuit, dat een klas een vast activiteitenprogramma heeft, waar elke leerling van die klas aan meedoet. Blijkbaar is dat bij jou niet het geval, en kiest een leerling zelf activiteiten, die dan wel aan een klas zijn gekoppeld.
Je zou dat op kunnen lossen door door de tabel Klas/Leerling uit te breiden met het veld ActiviteitenID, en de tabel Activiteiten dus ook aan die tabel te koppelen. De sleutel moet je dan ook uitbreiden naar drie velden, want je wilt voorkomen dat een leerling van een klas een activiteit meer dan één kan kiezen.
Op je formulier heb je de keuzelijst Activiteiten ook gekoppeld aan de klas, dus je zou dan alleen maar moeten kunnen kiezen uit activiteiten die nog niet in de tabel Leerling/Klas/Activiteit voorkomen.

Ik heb bij het keuzelijst bij het na bijwerken nog een strSQL gemaakt dat vervolgens de activiteitgegevens naar keuzelijst 156 moet brengen. Maar het lukt niet.
Hiermee kan ik de klasid van keuzelijst 138, leerling id van de andere keuzelijst en tenslotte activiteit id van een andere keuzelijst samenbrengen waardoor het wordt toegevoegd.(formulier leerling aan klas toevoegen)
 

Bijlagen

Zal er vanavond een blik op werpen!
 
Zal er vanavond een blik op werpen!

Ik heb het bijna gedaan, maar er is een klein probleempje. Kan je er daarna kijken.
formulieren:
AbsentMenu
AbsentMakenVoorbereiding
AbsentMaken
 

Bijlagen

Ik heb een beetje lopen spelen met het formulier, en e.e.a. met VBA opgelost.
(heb een gruwelijke hekel aan macro's.......) (echt een gruwelijke hekel....)

In eerste instantie heb ik de keuzelijst met klasindeling geen bron gegeven, omdat de bron eigenlijk afhankelijk is van de keuzelijst Klas. Als je dus een klas aanklikt, zie je wie er in die klas zitten.
Verder zul je zien, dat er wat extra (onzichtbare) velden aan de query zijn toegevoegd. Die heb je nodig om te kunnen bepalen welke persoon moet worden verwijderd.
Zoals je ziet, wordt de standaardquery nu ook niet meer gebruikt.

De desbetreffende leerling wordt ook verwijdert, maar het probleem is dat dezelfde leerling die in een andere klas zit ook wordt verwijderd.
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan