Toon posts:

[access/VB] VB en accessVB en het checken van txtbox waarden

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben dit probleem al vrij vaak tegengekomen bij het proggen in access forms: je wilt continu checken op de data die is ingevuld in de textboxen (of andere controls), en dan vooral TIJDENS het typen in de textbox.

In VB is dat niet zo moeilijk: gewoon bij elke onchange van een textbox dezelfde subroutine aanroepen die door alle controls loopt en dan je check uitvoeren op de textbox.text property.

In access is het anders, daar MAG je niet refereren aan de .text property als de textbox de focus niet heeft. Als de textbox de focus NIET heeft, dan is de .value property gewoon de ingevulde waarde. Als de textbox WEL de focus heeft, dan wordt de .value waarde pas geupdate met de .text waarde als het record wordt opgeslagen of als de control de focus verliest. De .text property is hetgeen er daadwerkelijk is ingevuld, dus alleen DIE verandert tijdens het typen.

Irritant dus als je een algemene sub wil klussen die door alle controls heenloopt, omdat je de ene keer moet referen aan de .value prop en de andere keer aan de .text. prop. Ik heb het opgelost door gewoon te kijken welke control de focus heeft, dus iets als (versimpeld, aangenomen dat me.controls alleen txtboxen heeft)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Function Check() as boolean

For Each ctl In me.controls
   if ctl.name = me.activecontrol.name then
       <check op ctl.text>
   else
       <check op ctl.value>
Next ctl

End function

Sub txtBox_OnChange()
  cmdOK.enabled = Check
end sub


Dit werkt op zich vrij goed, maar ik heb het gevoel dat het nog beter kan in access. Heeft iemand hier ervaring mee en een betere oplossing??

  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
Heb zo niet zo 123 een oplossing voor je, maar waarvoor zou je dit eigenlijk willen? Als je bang bent dat ze iets verkeerd intypen kun je toch net zo goed een invoermasker gaan gebruiken.

  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
of een controle op alle controls als de gebruiker op een knop drukt. Volgens mij is dit een methode die vaker gebruikt wordt dan checks tijdens typen.

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12:42

Janoz

Moderator Devschuur®

!litemod

Misschien snap ik het wel niet helemaal, maar waneer iemand de inhoud van een tekstbox aan het editen is, dan heeft dat onderdeel toch sowieso de focus?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'