Automatisch nieuwe velden toevoegen

Status
Niet open voor verdere reacties.

lunatic95

Gebruiker
Lid geworden
29 aug 2013
Berichten
36
vakrijstoel.png

In een vrijwilligersdatabase van een voetbalclub wil ik op een formulier de mogelijkheid hebben om een plaats in een stadion aan te geven. Sommigen hebben echter meerdere plaatsen, dus ik wil het volgende bereiken:

- de informatie in de drie tekstvakken (zie afbeelding) opslaan in één cel in de hoofdtabel, m.a.w. als ik bijvoorbeeld 21, 7 en 4 (vak/rij/stoel) invul, dan moet in de tabel, in de cel achter de persoon, iets als "21-7-4" komen te staan;
- als ik deze drie tekstvakken heb ingevuld, moet er automatisch een nieuwe rij met opnieuw drie tekstvakken komen om een extra plaats in te vullen; het zou mooi zijn als ik bijvoorbeeld als tweede plaats vak 11, rij 4, stoel 9 invul, dit in de tabel weergegeven wordt als "21-7-4; 11-4-9".

Kan iemand aangeven of dit haalbaar is en hoe dit eventueel werkt? Ik ben niet bekend met programmacodes, maar ik wil best e.e.a. proberen.

Alvast bedankt!
 
Deze vraag gaat een hele andere kant op dan je suggereert, want je wilt dus helemaal geen nieuwe velden toevoegen, je wilt een nieuw record toevoegen. Maar uit de uitleg die je dan vervolgens geeft, leg je het dan weer zo uit dat je die 2 records weer in één veld wilt zetten. Zonder onaardig te willen doen, begint deze 'oplossing' heel erg veel op je alias naam te lijken... Ik zat al met gefronsde blik te lezen dat je de gegevens van 3 verschillende velden (vak/rij/stoel) in één veld wilt zetten, want dat ís al een hele slechte opzet, maar om dan ook nog eens meerdere records in één cel te willen, dat neigt in mijn ogen naar een hopeloze opzet. Ik kan je alleen maar aanraden: NIET DOEN!!!
 
Nee, dat bedoel ik eigenlijk niet. Kijk, dit formulier vul ik voor iedere vrijwilliger in:

record.png

Onderaan dit formulier zie je een veld staan met de titel "Vak/rij/stoel". In de tabel wordt dit dus ook als zodanig (bijvoorbeeld "16/5/12") overgenomen:

vakrijstoel.png

Dit systeem werkt prima als een vrijwilliger één plaats in het stadion heeft, maar zodra er meer bijkomen, dan moet ik dat oplossen door bijvoorbeeld "16/5/12 + 16/5/13" in het veld in te typen. Wat ik graag zou zien, is dat ik drie velden krijg, dus dat er op het formulier een veld voor "Vak" komt, voor "Rij" en ook voor "Stoel". Deze drie verschillende waarden zouden dan achter elkaar in de tabel moeten komen. Stel ik vul "23" in bij "Vak", "16" bij "Rij" en "5" bij "Stoel", dan moet dit in de tabel bijvoorbeeld als "23/16/5" of "23-16-5" weergegeven worden.

Dan komt misschien nog het lastigste. Als de drie velden onder "Vak", "Rij" en "Stoel" zijn ingevuld, dan moeten er automatisch drie nieuwe velden onder verschijnen om nog een plaats in te kunnen vullen. En die gegevens moeten dan ook weer gekoppeld worden zoals de velden erboven. Een voorbeeld van wat ik bedoel:

vakrijstoel (2).png

Het zou dan mooi zijn als deze waarden, die dus gewoon bij één persoon (oftewel één record) horen, als volgt in de tabel worden overgenomen: "21/13/4; 7/19/8" of iets dergelijks.

Is dit duidelijker? :p Als het niet haalbaar is, dan is het niet anders.

Trouwens, zijn er misschien alternatieven? :)
 
Laatst bewerkt:
Je verhaal is in zoverre duidelijker dat ik er nog meer van overtuigd ben dat je verkeerd bezig bent. Jouw database is zo totaal niet genormaliseerd, nauwelijks te onderhouden en vol foutrisico's. Dit moet je zo echt niet willen aanpakken.
 
Nou ja, goed, voor mij levert het in ieder geval een bruikbare database op.

Ik probeer mijn vraag nog een keer te stellen, maar dan op een andere manier. Stel ik wil in mijn formulier een postcode laten invullen, met één vakje voor de vier cijfers en één vakje voor de letters. Kan ik het dan zo maken dat in de tabel slechts één kolom (postcode) wordt gevormd?
 
Ook weer een jofel voorbeeld :). Postcodes vul je natuurlijk gelijk goed in in één tekstveld; er is geen enkel voordeel te bedenken om dat te scheiden en dan weer samen te voegen. Maar het kan uiteraard prima als je een gebeurtenis op de twee tekstvelden zet. Die tekstvelden zijn dan niet-afhankelijk en het tekstveld waarin de velden worden samengevoegd is dat wel (veld Postcodes namelijk). Ik zou daar de gebeurtenis <Bij wijzigen> voor gebruiken zodat je de postcode 'live' opgebouwd ziet worden.
 
Misschien wel een jofel voorbeeld, maar je uitleg is wel degelijk bruikbaar, waarvoor dank! In dit geval is het echt van groot belang dat de plaatsen op deze manier in kaart worden gebracht. ;)
 
Je maakt echt een stevige denkfout, en ook ontwerpfout. Het kan echt vele malen beter, handiger en (qua data integriteit) veiliger. Het is één ding dat je denkt dat je een slimme oplossing hebt gevonden, het is een ander ding om in een misvatting te blijven volharden ;).
 
Je maakt me wel ongelooflijk nieuwsgierig naar jouw ideeën. Zou je eens kunnen schetsen wat jij zou doen? Ik noem mezelf nog een beginner met Access. :p
 
't Is anders niet zo moeilijk; in een stadion (stadion is een eigen entiteit als je met meerdere stadions werkt) is elke stoel uniek en dus een eigen entiteit. Je hebt dus een tabel stadions, en die koppel je aan een tabel stoelen. Eén op veel, want een stadions kent veel stoelen en een stoel kan maar in één stadion zitten. Een stoel mag je dan ook maar één keer (per wedstrijd, per seizoen) uitgeven. Een persoon kan meerdere plaatsen huren (blijkbaar) maar nooit twee of meer keer dezelfde. Bij jou is daar dus geen enkele controle op. Met een aparte koppeltabel los je dat probleem op.
 
Oh, maar dat is niet de bedoeling hoor, want ik hoef niet te controleren of een plaats wel of niet bezet is. Het gaat er gewoon om dat bepaalde stoelen (gaat in totaal slechts om een fractie van alle stoelen) worden gekoppeld aan een persoon. Ik heb een lijst met 257 personen, van wie ongeveer de helft (een) eigen plaats(en) heeft. Alle stoelen in het stadion in een tabel zetten zou dan onnodig veel werk zijn. Maar volgens mij kan ik jouw idee wel gebruiken door alle stoelen die voor mij relevant zijn in een tabel te zetten, want dezelfde persoon (1 record) bij verschillende stoelen is duizend keer beter dan verschillende stoelen (en dus meerdere records) bij één persoon. Ik ga er morgen even mee puzzelen. ;) In ieder geval bedankt!
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan