Veldnaam "TextBox1" wijzigen & Velden toevoegen

Status
Niet open voor verdere reacties.

Ed1234

Gebruiker
Lid geworden
28 nov 2014
Berichten
9
Hallo,
Ben aan het experimenteren met visual basic in excel (newbie). Gebruik daarvoor voorbeelden van internet als leermateriaal.

Ik wil de namen van de invoervelden (Textbox1, Textbox2 , Textbox3) aanpassen, zodat deze meer beschrijvend zijn. In dit voorbeeld (zie bijlage) krijg ik dan een foutmelding, formulier werkt dan niet meer. Noot: versie in bijlage werkt nu nog OK.

Kan iemand me uitleggen wat er fout gaat & hoe ik het oplos?

Het is m'n bedoeling een groot aantal invoervelden (met label) aan te maken. Zijn daarvoor nog handige tips? Bijvoorbeeld om het overzichtelijk te houden?
 

Bijlagen

  • test.xlsm
    25,3 KB · Weergaven: 43
In dit voorbeeld (zie bijlage) krijg ik dan een foutmelding, formulier werkt dan niet meer. Noot: versie in bijlage werkt nu nog OK.
Je vindt het hopelijk niet vreemd dat ik nu een beetje confuus ben.... Overigens doet je formulier het nu prima. Maar waarom zou je de namen in het formulier willen veranderen? Een code als
Code:
For j = 1 To 12
    Me("TextBox" & j).Value = ""
Next j
kun je dan nooit meer gebruiken. Is toch veel makkelijker dan:
Code:
    Me.txtID.Value = ""
    Me.txtNaam.Value = ""
...
    Me.txtAdres.Value = ""
    Me.txtPlaats.Value = ""

Niet handig dus! Ik deed vroeger meestal wèl wat je nu wilt: tekstvakken etc. een logische naam geven. Maar het blijkt dan ongelooflijk lastig om ze in simpele code uit te lezen, dus ik ben er juist vanaf gestapt.
 
Hallo Michel,

Bedankt voor je reactie!
Ik begrijp dat ik de code beter kan houden zoals hij is, dus het label náást het invoerveld gebruiken om te weten waar tekstveld voor staat. :d

Nog een vraagje over het stukje code dat je aanhaalt:
Code:
For j = 1 To 12
    Me("TextBox" & j).Value = ""
Next j
Kan ik, voor andere typen invoervelden, het woordje "Textbox" simpelweg vervangen voor "Combobox", "Listbox", "Checkbox", "OptionButton"?
 
Dat kan, mits je objecten uiteraard allemaal hetzelfde voorvoegsel hebben. En bij Listbox heb je misschien een andere techniek nodig om hem leeg te maken, omdat een listbox meerdere geselecteerde waarden kan bevatten. En een checkbox zet je op 0 als je hem leeg wilt maken.
Overigens gebruikte ik vroeger dus ook namen met een voorvoegsel, zodat ik wist dat het veld txtAchternaam in de database het veld [Achternaam] was. In de code haal je dan gewoon het voorvoegsel er af om de echte naam terug te halen. Dat werkt nu natuurlijk niet. Als alternatief gebruik ik nu de Tag eigenschap. Dus als ik de veldnaam wil weten die achter textbox12 zit, dan vraag je dat uit met:
Code:
 sVeldnaam = Me.Textbox12.Tag
En zo kun je toch in een lus weten waaraan iets gekoppeld is.
 
Handige tip OctaFish!

De code
Code:
sVeldnaam = Me.Textbox1.Tag 
sVeldnaam = Me.ComboBox1.Tag
sVeldnaam = Me.ListBox1.Tag
lijkt me wel handig... Als ik met een knop een overzicht wil krijgen van alle Tags met bijbehorende Veldnamen, hoe moet dat stukje code er dan uit zien?
 
Dan maak je een lus die door alle objecten loopt, controleert of het een tekstvak, keuzelijst etc. is en daar lees je dan de Tag van uit.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan