Wil je je pizza in 4 of 8 stukken? .......Doe maar in 4, 8 krijg ik niet op.
Vaak duidt een recordset met een fixed aantal records die bovendien gelijktijdig getoond moeten worden op een beetje brak ontwerp. En een standaard doorlopend formulier voldoet niet?
Je kunt je probleem eventueel oplossen met een niet afhankelijk formulier. Vervolgens vul je de tekstboxen dmv een loopje in VBA of een =dlookup() als gegevensbron voor de diverse textboxen
De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland
Anyway, zoals Niesje zegt pak je een formulier en geef je als recordsource van het formulier je tabel op. Daarna zet je de default view op Continuous Forms (doorlopend formulier). Daarna sleep je uit de fieldlist je textvelden het details vlak op.
Het is een programma waar studenten een keuze moeten maken uit 4 sporten.
( formulier 1 waarbij mogelijkheden om geen of 3 of andere verkeerde keuzes zijn uitgelosten door hierop te controleren)
De docent moet dan uit deze 4 sporten er 1 weghalen.
Ik wil dus 4 txt velden vullen met de sporten die de student heeft uitgekozen en dan
een knop naast elk txtvaak waarbij de docent er 1 weg kan gooien.
Dit wordt dan ook verwerkt in de database.
Ik heb een tabel met studenten en een met sporten.
En dan een tussentabel waar de id van de student en die van de sport staat.
Dit is mijn sql statement die ik met een
Set MyRs = dbase.OpenRecordset(MYSQL)
SQL
1
2
3
| MYSQL = "SELECT Tsn_Tbl_Stud_Sport.[ID_Sport], tbl_Sport.[NaamSport], tbl_Sport.[SportOmschrijving] " _
& "FROM Tsn_Tbl_Stud_Sport INNER JOIN tbl_Sport ON Tsn_Tbl_Stud_Sport.[ID_Sport] = tbl_Sport.[ID_Sport]" _
& "WHERE OvNummer = " & StrOvNummerZkClinics & ";" |
vul en dan wil ik de textvakken vullen met de diverse sporten.
1
2
3
4
| .TxtClinic1 = RSDocentMaakKeuzeClinicsDefinitief.Fields("NaamSport")
.TxtClinic2 = RSDocentMaakKeuzeClinicsDefinitief.Fields("NaamSport")
.TxtClinic3 = RSDocentMaakKeuzeClinicsDefinitief.Fields("NaamSport")
.TxtClinic4 = RSDocentMaakKeuzeClinicsDefinitief.Fields("NaamSport") |
Dan kan de docent zijn keuze maken en kan de student 3 sporten gaan doen.
Wil je je pizza in 4 of 8 stukken? .......Doe maar in 4, 8 krijg ik niet op.
Do you speak english( formulier 1 waarbij mogelijkheden om geen of 3 of andere verkeerde keuzes zijn uitgelosten door hierop te controleren)
Dus de leerling kan 4 sporten kiezen uit 4?? Leek mij logischer dat de leerling maar 1 sport kan kiezen?De docent moet dan uit deze 4 sporten er 1 weghalen.
Ik kan je wel helpen, maar ik snap dit verhaal niet, misschien ligt het aan mij
Kun je het nog een keer uitleggen?
[ Voor 9% gewijzigd door TXC op 29-08-2005 13:12 ]
Ik doe mijn best:
Een leerling moet 4 sporten uit een stuk of 15 kiezen maar ivm de planning blijven er na selectie door de docent maar 3 over. (hier moet dan een planning voor gemaakt worden maar dat doet even niet ter zake)
De docent maakt dus de keuze van de student definitief door 1 sport weg te halen.
Dat laatste zorgt bij mij voor de problemen.
Ik heb een formulier gemaakt met daarop 4 textvelden.
Hier staan de 4 sporten die de student gekozen heeft.
Naast elk tekstveld staat een knop met verwijder deze sport.
(dan blijven er dus de gewenste 3 over.)
Dan als de docent op een andere knop (maak definitief) klikt dan kan er een planning voor gemaakt worden.
Het probleem is dus:
Ik heb een recordset met 4 sporten
(het zijn er altijd 4 aangezien er bij het selecteren van de leerling op gecontroleerd word dat het er altijd 4 worden. )
die moet de txtvelden vullen. Elke record (sport) moet in een textveld gestopt worden.
1
2
3
| me.TxtVakSport1 = Myrecordset.Fields("NaamSport")
me.TxtVakSport2 = Myrecordset.Fields("NaamSport")
enz |
Maar ik zoek naar de methode om dus de 4 records te verdelen over de 4 textvelden.
Als de docent op de knop "verwijder deze sport" klikt moet de waarde van dat txtveld aangeven welke
sport verwijderd word.
Ik heb al geprobeerd met een for each, maar dat werkt niet echt.
Ik heb al gezocht op diverse forums (fora?) maar ik zoek verkeerd of ik ben de eerste die deze
(misschien domme?) vraag stelt.
Ik hoop dat het zo wat duidelijker is?
Wil je je pizza in 4 of 8 stukken? .......Doe maar in 4, 8 krijg ik niet op.
Dus in die tussentabel staat 4x het studentID met 4x een andere sport. Klopt dat?En dan een tussentabel waar de id van de student en die van de sport staat.
En je gebruikt een query als recordset waar je per leerling de 4 sporten select, vandaar dat je recordset maar 4 records bevat. Klopt dat ook?
If so dan kun je door je recordset bladeren. Omdat je textvelden niet in een array staan zul je het handmatig moeten doen (niet erg want maar 4 records):
zoiets dan denk ik:
1
2
3
4
5
6
7
8
9
10
11
| txt1 = Myrecordset.Fields("NaamSport")
Myrecordset.MoveNext
txt2 = Myrecordset.Fields("NaamSport")
Myrecordset.MoveNext
txt3 = Myrecordset.Fields("NaamSport")
Myrecordset.MoveNext
txt4 = Myrecordset.Fields("NaamSport")
'Einde recordset |
Als je het op deze manier geordend hebt kun je het beter nog zo doen:
- Query aan formulier koppelen
- Formulier als doorlopend instellen
- Textvelden slepen in detailssectie uit field list
- Knoppen ernaast zetten
[ Voor 15% gewijzigd door TXC op 29-08-2005 13:26 ]
of te wel, maak het jezelf makkelijk
De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland
Ik zat weer veel te moeilijk te denken.
Dankjewel TXC
Wil je je pizza in 4 of 8 stukken? .......Doe maar in 4, 8 krijg ik niet op.
Nu ben ik nog niet zo ver dat ik dit allemaal helemaal begrijp maar ik ga dit verder uitwerken.TXC schreef op maandag 29 augustus 2005 @ 13:24:
[...]
Als je het op deze manier geordend hebt kun je het beter nog zo doen:
- Query aan formulier koppelen
- Formulier als doorlopend instellen
- Textvelden slepen in detailssectie uit field list
- Knoppen ernaast zetten
Wil je je pizza in 4 of 8 stukken? .......Doe maar in 4, 8 krijg ik niet op.