acties op verschillende records in keuzebox

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

anor

Gebruiker
Lid geworden
11 okt 2011
Berichten
9
Sinds kort werk ik met access en probeer een vragenlijst te maken. Op een van mijn vragen is een antwoord in een keuzebox te vinden. Ik heb deze aanmaak van de keuzebox onder de knie. Echter het lukt mij niet in vba per select case een andere handeling uit te laten voeren.
Als voorbeeld:
"Private Sub soortonderzoek_AfterUpdate()

If Me.soortonderzoek = 5 Then
Me.protocolDEC__Bijschrift.Visible = True
Me.protocolDEC.Visible = True
Me.indieningDEC_Bijschrift.Visible = True
Me.indieningDEC.Visible = True
Me.goedkeuringDEC_Bijschrift.Visible = True
Me.goedkeuringDEC.Visible = True
Else
Me.soortonderzoek = False
End If

If Me.soortonderzoek = 6 Then
Me.soortonderzoekanders.Visible = True
Me.soortonderzoekanders_Bijschrift.Visible = True
Else
Me.soortonderzoekanders.Visible = False
End If

End Sub"

De afzondelijke "If Me" werken wel, maar als ik ze samen voeg werken ze geen van beiden.
Is er iemand die mij hiermee kan helpen?
Wat ik wil bereiken: bij keuze case 5 dat er nieuwe vragen zichtbaar worden, bij keuze case 6 dat er achter het antwoord een verklaring gegeven kan worden.
Hulp wordt zeer op prijs gesteld!
 
Je geeft aan hoe het zou moeten, maar doet iets anders.

Code:
Select Case Me.soortonderzoek.Value
    Case 5
        Me.protocolDEC__Bijschrift.Visible = True
        Me.protocolDEC.Visible = True
        Me.indieningDEC_Bijschrift.Visible = True
        Me.indieningDEC.Visible = True
        Me.goedkeuringDEC_Bijschrift.Visible = True
        Me.goedkeuringDEC.Visible = True
    Case 6
        Me.soortonderzoekanders.Visible = True
        Me.soortonderzoekanders_Bijschrift.Visible = True
    Case Else
        Me.soortonderzoekanders.Visible = False
End Select

Maak een volgende keer de VBA code op met de Code tag (knop #) zodat hij leesbaarder wordt :)
 
Hartelijk dank, het werkt! Ik snapte al niet waarom het niet lukte. Op de manier hoe ik het beschreef lukte het namelijk wel met 1 enkele opdracht.
En wat betreft je opmerking over de Code tag knop. Ik ben vast heel dom om te vragen hoe ik dit dan zou moeten doen?!

Er is nog een probleem waar ik tegen aan loop. Mogelijk is dit ook simpel op te lossen en kan je mij hierbij helpen.
Als je een keuzebox hebt waar meerdere antwoorden aangevinkt kunnen worden, hoe beschrijf je dit in de eigenschappen van de keuzebox van het formulier en in de ontwerpweergve van de tabel? Noteer je dan in de tabelontwerp bij de afhankelijke kolom het aantal mogelijke antwoorden of doe je dit bij het aantal kolommen?
Alvast dank voor je reactie.
 
Als je een reactie op een vraag schrijft met de opte <Ga geavanceerd>, heb je meer opmaak knoppen. Een daarvan is de knop [ # ] en dat is de Code knop. Of, dat doe ik meestal, ik typ de code ervoor en er achter. De begincode is dan [ code ] en aan het eind van je code typ je: [ /code ]. Overigens zonder spatie, dus [c en o]. Zou ik het hier ook hebben gedaan dan was de code gelijk uitgevoerd, en dat schiet natuurlijk niet op. Dus het voorbeeld met een overbodige spatie is dan: [co de] en [/co de]

Je tweede vraag snap ik niet helemaal; een Keuzelijst kun je op twee manieren gebruiken: om één waarde te selecteren, of om meerdere waarden te selecteren. De manier waarop je de selectie uitleest is jammer genoeg behoorlijk verschillend. Ook wat je er mee wilt doen.... Overigens kun je in de nieuwere versies van Access meerere waarden in één veld opslaan, maar dat raad ik je ten zeerste af: die optie is vermoedelijk door de privé-aap van Bill Gates bedacht, en niemand heeft het aangedurfd om tegen Bill te zeggen dat je dat toch echt niet moet doen.... Je verziekt daarmee je hele normalisatie van de database! Niet doen dus!
 
Ik zal proberen iets duidelijker te zijn. Ik ben een vragenlijst aan het maken waar de antwoorden uiteindelijk in een SPSS bestand terecht moeten komen. Dit betekent dus dat als er in een vaste keuzebox meerdere waarden goed kunnen zijn deze in het gegevensbestand in aparte kolommen terecht moeten komen. Als voorbeeld bijvoorbeeld mijn eerdere vraag, waarop een of/of waarde aangevinkt moest worden (Case 5 of 6 of 1), maar nu dezelfde soort vraag met de mogelijkheid meerdere waarden aan te vinken (Case 1 en 3 en 6).
Ik werk met de 2003 versie dus hoef niet bang te zijn voor meerdere antwoorden in 1 veld. Zoals ik nu de gegevensbladweergave heb opgezet komt er bij een of/of waarde van de keuzebox in 1 kolom in 1 veld de gekozen keuze. Mijn vraag is nu: hoe krijg ik bij en/en waarden van de keuzebox de verschillende gekozen keuzes in velden van verschillende kolommen. Ik neem aan dat ik hier al iets aan moet doen bij het maken van de tabel die ik bij een formulier ga gebruiken.
Ik hoop dat ik nu iets duidelijker ben.

Code:
ik heb het gebruik van de tags door
 
Is er nog iemand die mij kan helpen met mijn hiervoor gestelde vraag?
 
Er zijn twee opties om de uitkomsten op te slaan, al vind ik de tweede (jou idee) eigenlijk niet geschikt. Dat is dus het opslaan van elk antwoord in een eigen kolom. Ik zou dat niet doen, omdat je daarmee een niet-genormaliseerde tabel krijgt, waarin het vervelend is om later overzichten of exporten te maken. Dus ik zou elk antwoord apart opslaan in een eigen record. En dan heb je maar één veld nodig voor het antwoord. het probleem is dat je de keuzelijsten moet uitlezen. Dit voorbeeldje doet iets anders als wat jij wilt (jij moet records bij elk antwoord toevoegen aan een tabel) maar de techniek voor het uitlezen is hetzelfde.

Code:
Private Sub lstCat1_AfterUpdate()
    sCat = ""
    i = 0
    For Each itm In Me.lstCat1.ItemsSelected
        If Me.lstCat1.ItemsSelected.Count > 0 Then
            sCat = sCat & "(ParentID = " & Me.lstCat1.ItemData(itm) & ") "
            i = i + 1
            If i < Me.lstCat1.ItemsSelected.Count Then sCat = sCat & "OR "
        Else
            Exit Sub
        End If
    Next itm
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan