opslaan tekst na checkbox

Status
Niet open voor verdere reacties.

Tamara27

Gebruiker
Lid geworden
1 mrt 2010
Berichten
224
Ik heb een onafhankelijk formulier waarop zich een heel deel keuzelijsten, tekstvakken en checkboxen bevinden. Deze worden opgeslaan in verschillende tabellen.

Concreet kan de gebruiker op een bepaald deel van een formulier eigenschappen over een voorwerp invullen. Sommige (veelvoorkomende) eigenschappen, zijn al opgelijst. De gebruiker kan hier gewoon het vinkje aanduiden:

bijv:

Eigenschappen:
- Rood
- Groen
- Geel
- Blauw
- Paars

Die vinkjes worden opgeslaan door de volgende code:

Code:
For Each ctl In Controls
                      With ctl
                      Select Case .ControlType
                          Case acCheckBox
                                If .Value = -1 Then
                                  sEigenschap = Mid(.Name, 6, Len(.Name) - 5)
                                  sTabel = .Tag
                                  On Error Resume Next
                                  With CurrentDb.OpenRecordset("GegevensEigenschappen")
                                      .AddNew
                                      ![Unieke Code] = cmbUniekeCode
                                      ![Voorwerp] = cmbVoorwerp
                                      ![Eigenschap] = sEigenschap
                                      .Update
                                      .Close
                                  End With
                              End If

                      End Select
                  End With
              Next ctl
            End If

Nu zou ik de gebruiker graag toelaten een laatste vinkje aan te duiden, met "andere", waarachter dan een leeg tekstvak staat, waar ze een vrije tekst in kunnen zetten. Dit maken op een formulier is geen probleem, alleen kan ik het opslaan van dit tekstvak precies niet zo goed in de code verwerken.

kan iemand me hierbij helpen

Bedankt!!
 
In elk veld moet de optie "andere" worden opgeslagen? En hoe heet het tekstvak?
 
Dat veld "anderen" moet opgeslagen worden, als ze in het tekstvak iets typen (in dit geval bij: Oranje, een optie die niet voldoende voorkomt om ze op te lijsten). Het kan dus zijn dat de gebruiker 3 vinkjes zet bij de keuzes uit de lijst, maar ook nog een extra optie wil toevoegen...

Dat tekstvak heet voorlopig checkAndere (omdat de andere opties bijv CheckRood, CheckGroen... zijn).
De inhoud moet opgeslagen worden in het veld Eigenschap, net zoals de opties Rood, Groen...

Bedankt!
 
Dat is een kleine aanpassing:
Code:
For Each ctl In Controls
    With ctl
    Select Case .ControlType
        Case acCheckBox
            If .Value = -1 Then
[B][COLOR="blue"]                If .Name = "chkAnders" Then
                    sEigenschap = StrConv(Me.txtAnders.Value, vbProperCase)
                Else
                    sEigenschap = Mid(.Name, 6, Len(.Name) - 5)
                End If[/COLOR][/B]
                sTabel = .Tag
                On Error Resume Next
                With CurrentDb.OpenRecordset("GegevensEigenschappen")
                    .AddNew
                    ![Unieke Code] = cmbUniekeCode
                    ![Voorwerp] = cmbVoorwerp
                    ![Eigenschap] = sEigenschap
                    .Update
                    .Close
                End With
            End If
    End Select
    End With
Next ctl
 
Beste

Dit in de code veranderd, maar het werkt nog niet helemaal.
Wat ik dan als eigenschap opgeslagen krijg, is "Anders", terwijl ik graag de inhoud van het vak txtAnders had..
Al een beetje rondgeneusd op het www ( ;) ) en volgende variant toegepast:

Code:
sEigenschap = StrConv (Me.txtAnders.Value, 3)

dit blijkt wel te werken. Mag ik aannemen dat dit juist hetzelfde is, of zit er toch een verschil tussen die voor mij niet meteen zichtbaar is?

Dank!!!
 
De parameter vbProperCase zorgt ervoor dat de tekst wordt omgezet naar de juiste opmaak. Dus oranje wordt Oranje, maar ORANJE wordt ook Oranje. De getalswaarde van vbProperCase is inderdaad 3, en hou zou niet uit moeten maken of je vbProperCase of 3 typt in de StrConv formule. Dus als 3 werkt, en vbProperCase niet, dan gebruik je 3 :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan