[Access2002/vba]tekstvak.value property opvragen via lus

Pagina: 1
Acties:

  • TrickShot
  • Registratie: Februari 2003
  • Laatst online: 14-12-2023

TrickShot

Veel shots... weinig tricks.

Topicstarter
Deze functie geeft de waarde true als er nog lege tekstvakken of comboboxen in de detailsectie van een formulier staan.
Via de ParamArray kunnen de namen van de tekstvakken die leeg mogen zijn meegegeven worden.
Het is de bedoeling dat deze procedure vanuit verschillend formulieren kan opgeroepen worden.

Probleem:
De functie geeft nooit de waarde 'false' omdat de property 'Value' nooit voorkomt, bij het overlopen van de properties van de comboboxen en tekstvakken.

Vraag:
Kan de eigenschap 'Value' opgeroepen worden in een 'for each... next' lus in een module? zo nee->mss iemand een idee hoe dit dan wel opgelost kan worden


De code in het midden die als commentaar staat geeft het probleem
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Public Function controleVelden(frmFormulier As Form, ParamArray vntArg() As Variant) As Boolean
    'geeft waarde false als er geen lege velden zijn,
     'true als er wel lege velden zijn die niet leeg moegen zijn
    
    Dim vntArgument As Variant
    Dim prp As Property
    
    For Each gctl In frmFormulier.Section(acDetail).Controls
        For Each gprp In gctl.Properties
            If gprp.Name = "Name" Then
                If Left(gprp.Value, 3) = "cbo" Or Left(gprp.Value, 3) = "txt" Then
                    For Each vntArgument In vntArg
                        If gprp.Value = vntArgument Then
                            GoTo volgendeControl
                        End If
                    Next vntArgument
                    
                    'For Each prp In gctl.Properties
                    '     If prp.Name = "Value" Then
                    '         If prp.Value = "" Or IsNull(prp.Value) Then controleVelden = True
                    '         Exit Function
                    '    End If
                    'Next prp
                End If

            Exit For
            End If
        Next gprp
volgendeControl:
    Next gctl
    controleVelden = False
            
End Function


* TrickShot heeft gezocht op got en op msdn.microsoft.com, maar nix gevonden

[ Voor 9% gewijzigd door TrickShot op 10-05-2003 15:02 ]

Athlon 2500+ @ 2230 MHz, 512 MB 3200 kingston, 2 x sata maxtor 120 GB, 1 WD 80 GB, Ti4200, Antec Sonata


  • TrickShot
  • Registratie: Februari 2003
  • Laatst online: 14-12-2023

TrickShot

Veel shots... weinig tricks.

Topicstarter
Dit is dus onmogelijk, ik heb ff een 'debug.print prp.Name' gedaan en daar stond geen value tss, wel een text, maar dan moet de control de focus hebben. Die kan je niet geven in zo'n lus.
Nu heb ik een functie per formulier moeten schrijven. :(

* TrickShot vraagt vergiffenis bij al diegenen die voor nix hun hoofd hierover gebroken hebben. >:)

Athlon 2500+ @ 2230 MHz, 512 MB 3200 kingston, 2 x sata maxtor 120 GB, 1 WD 80 GB, Ti4200, Antec Sonata


  • Lister
  • Registratie: September 2001
  • Laatst online: 15-02-2022
Als het een tekstbox is kan je als volgt je de tekstwaarde uitlezen zonder de focus te zetten:
code:
1
strTekst = txtTekstbox


In dit geval wordt de default property Text geretourneerd.