Tekstvakken gebruiken m.b.h. van een variabele.

Status
Niet open voor verdere reacties.

ReilingJ

Gebruiker
Lid geworden
31 mei 2007
Berichten
168
Hallo,

ik ben bezig om een applicatie te maken waarbij ik gebruik wil maken van een module om tekstvakken om de beurt te gebruiken.
Hiervoor wil ik een variabele meegeven om telkens een nieuwe rij tekstvakken te openen.

De hiervoor door mij bedachte code werkt niet. Kan iemand mij zeggen of dit uberhaubt mogelijk is en zo ja hoe moet ik dat dan doen?

Onderstaande de code maakt het hopelijk duidelijk:

Private Sub BtnRegel1_Click()

Dim nummer As short
nummer = 1

TxtA(nummer).Visible = True
TxtB(nummer).Visible = True
TxtC(nummer).Visible = True
TxtD(nummer).Visible = True
End Sub

Private Sub BtnRegel2_Click()
Txta2.Visible = True
TxtB2.Visible = True
TxtC2.Visible = True
TxtD2.Visible = True
End Sub

Uiteraard: Bij gebruik eerste button loopt het fout en hiervoor zoek ik mogelijk iets dat wel werkt,

groet Jan.
 
Gebruik de TAG property van je controls die je wilt doorlopen. Als de TAG property aan een bepaalde waarde voldoet dan kan je die uitvragen o.i.d.
Onderstaande code loopt door alle controls heen opzoek naar een waarde en maakt de control leeg.
Code:
Public Sub ClearFields(frm As Form, strTag As String)
'Empty fields on the form using the tag property.

    Dim ctl           As Control
    Dim intX          As Integer
    
    For Each ctl In frm.Controls
        If InStr(1, ctl.Tag, strTag) > 0 Then 'Tag found
            Select Case ctl.ControlType
                Case acTextBox, acComboBox, acCheckBox
                    ctl.Value = ""
                Case Else 'Skip all other controls
            End Select
        End If
    Next ctl

End Sub
HTH:D
 
"tag"functie gebruiken.

Guus,
bedankt voor je antwoord. De "tag" functie kende ik nog niet.Ga ik eerst wat preciezer uitzoeken. Dit zet me hopelijk op het goede spoor.
Voorlopig krijg ik ook alleen nog maar foutmeldingen.

Wordt vervolgt,

Jan.
 
Hallo,

bovenstaande uitgetest maar heeft voor mij niet tot oplossing geleid. Met de eigenschap "TAG" is het, voor zover ik kon nagaan, mogelijk extra gegevens over een object op te slaan.
Echter wat ik wil is met behulp van een teller telkens een ander tekstvak aanroepen.
Ik heb in mijn userform de tekstvakken Txta1 t.m. Txta28, TxtB1 t.m. TxtB28 enz.
Wat ik wil bereiken is dat ik niet al deze tekstvakken in mijn programma wil declareren (maakt het programma onnodig lang).
nogmaals het voorbeeld (met de opmerking dat ik een alternatief zoek voor "(regel)" wat natuurlijk niet werkt).

Dim regel As Integer
regel = 1

Txta(regel).Visible = True
TxtB(regel).Visible = True
TxtC(regel).Visible = True
TxtD(regel).Visible = True


Uiteraard, kan het ook zo zijn dat ik de geschetste oplossing niet goed heb toegepast. Natuurlijk wil ik dat graag weten en met deze aanvulling is mijn vraag misschien makkelijker te beantwoorden,

groet Jan.
 
als je de tag hou eens creatief gebruikt en bij control Txta1 er het getal 1 inzet? Als je daar dan doorheen loopt en je controleert je teller met je tag: if intTeller = ctl.tag then...

Daar is de Tag voor bedoeld dus gebruiken.
 
Guus,

Ziet er veelbelovend uit, kan er vrijdag pas echt naar kijken,

wordt vervolgt,

Groet Jan.
 
Hallo,

het is toch zoiets als door bomen ....

zie vaag de oplossing maar krijg het niet op een rijtje. Ik stop het in de bijlage,

groet Jan.

(voor niet WORD programmeurs: Extra, Macro's, Visual Basic Editor)
 

Bijlagen

Check out zip file.
Ik ben geen word programmeur.
Probeer de zip file eens. Userform1
 

Bijlagen

Guus,

nu snap ik het, vergt inderdaad andere wijze van denken.
Kan ik nu ook toepassen.

Toch denk ik dat al die door mij bedachte tekstvakken achteraf bezien niet erg handig zijn.
Ik kies toch maar de gangbare methode, toevoegen, raadplegen, verwijderen. Dan ben ik ook niet afhankelijk van mijn nu maximaal 28 rijen.

Kei bedankt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan