meerdere records in 1 tekstvak opslaan

Status
Niet open voor verdere reacties.

J.-L.

Gebruiker
Lid geworden
15 aug 2005
Berichten
52
Ik wil een database opbouwen waarbij lessen, evaluties, doelen, … aan mekaar gekoppeld zijn voor gebruik in het onderwijs.

Ik stel een formulier op, waarbij ik onderwerp, evalutie, … kan invullen in tekstvelden.

Nu zou ik ook meerdere doelen willen kunnen selecteren uit een tabel (via een keuzelijst met invoervak)

Het is de bedoeling dat ik, via een keuzelijst met invoervak, doelen selecteer (uit een tabel met doelen die aangemaakt is), en deze “kopieer” naar een tekstvak in het formulier. Deze handeling zou ik willen kunnen herhalen, zodat er meerdere doelen in dit tekstvak opgeslagen worden.

Achteraf wil ik deze opsomming kunnen gebruiken, bijvoorbeeld om een rapport weer te geven wanneer ik welke doelen heb gebruikt.

Mijn vraag is dus:
- op welke manier kan ik doelen vanuit een keuzelijst kopiëren naar een tekstvak
- op welke manier kan ik meerdere doelen opslaan
- op welke manier moet ik deze weergeven (opslaan, scheiden) in het tekstvak
- is het mogelijk dat ik deze records later terug kan scheiden en als aparte delen zien?

Dank.
 
Maak een tabel met mogelijk doelen (een soort referentietabel dus)
Maak een tabel met doelen gekoppeld aan lessen (neem ik aan). Deze tabel bevat dus de velden IDDoel en IDLes).

Zet op je venster een listbox met de mogelijke doelen en een listbox met de gekoppelde doelen van de les waarover je venster gaat.

Maak een knopje waarmee je doelen kunt toevoegen aan een les.
Dit knopje moet het volgende doen:
- Controleer of er een doel geselecteerd is in de listbox met mogelijke doelen
- Voeg het geselecteerde doel toe aan de tabel met gekoppelde doelen als deze hier nog niet in voorkomt bij de les.
- Ververs de listbox met gekoppelde doelen op het scherm

Met een tweede knopje kun je dan de gekoppelde doelen verwijderen.

Jawel, dit is een leuk stukje programmeerwerk in VBA.
Ik heb zoiets ook wel eens gedaan en dat zag er zo uit:

Dim db As Database
Dim strSQL As String

If IsNull(Me.lstBouwblokken) Then
MsgBox "Wel eerst een bouwblok selecteren!", vbCritical, "Foutmelding"
Me.lstBouwblokken.SetFocus
Exit Sub
End If

Dim strMessage As String

If fnValidateFrmTestScenario(strMessage) Then
'Doe niets, alles is goed
Else
MsgBox strMessage, vbCritical, "foutmelding"
Exit Sub
End If
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70

strSQL = "INSERT INTO tblBouwblokInScenario "
strSQL = strSQL & "(IDTestScenario, IDBouwblok, fldVolgnummer, "
strSQL = strSQL & "InvoerParameters, UitvoerParameters, VerwachtResultaat, Bijzonderheden) VALUES("
strSQL = strSQL & CStr(Me.txtID) & ", "
strSQL = strSQL & CStr(Me.lstBouwblokken) & ", "
strSQL = strSQL & CStr(Nz(DMax("fldVolgnummer", "tblBouwblokInScenario", "IDTestScenario=" & CStr(Me.txtID)), 0) + 1) & ", "
strSQL = strSQL & "'" & Nz(DFirst("InvoerParameters", "tblBouwblok", "ID=" & CStr(Me.lstBouwblokken))) & "', "
strSQL = strSQL & "'" & Nz(DFirst("UitvoerParameters", "tblBouwblok", "ID=" & CStr(Me.lstBouwblokken))) & "', "
strSQL = strSQL & "'" & Nz(DFirst("VerwachtResultaat", "tblBouwblok", "ID=" & CStr(Me.lstBouwblokken))) & "', "
strSQL = strSQL & "'" & Nz(DFirst("Bijzonderheden", "tblBouwblok", "ID=" & CStr(Me.lstBouwblokken))) & "' "
strSQL = strSQL & ");"

Set db = CurrentDb
db.Execute strSQL, dbFailOnError
Set db = Nothing

Me.lstBouwblokkenInScenario.Requery
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan