Invoermasker

Status
Niet open voor verdere reacties.

Colombe

Gebruiker
Lid geworden
28 jan 2001
Berichten
754
Soms loop je in Access tegen dingen aan die misschien simpel zijn, maar voor een beginner als ik toch niet direct duidelijk: Kan je in de eigenschappen van een veld ook aangeven dat de eerste letter altijd een HOOFDLETTER wordt / het hele veld in HOOFDLETTERS?
Met ">" lukt mij dit laatste niet!
Bedankt voor een reactie.
 
Hai, :D

>L< ? ? ? ? ? ? ? ? ? ? ? ? ? ?
(vraagtekenst achterelkaar spaties wissen anders pakt het forum hem niet..of te wel aan elkaar schrijven)

See Yah! :thumb:
 
Laatst bewerkt:
Joost,

Dit type invoermasker was mij totaal onbekend. Ik voeg het aan mijn notities toe!!!!!

Colombe,

Het teken > in het invoermasker zou ALLE tekens in hoofdletters moeten plaatsen. Krijg je een foutmelding?

Ik persoonlijk maak weinig geruik van het invoermasker.
Bij een invoer die niet 100% voldoet aan de regels gedefinieerd in het voermakser geeft ACCES immers tamelijk abstracte boodschappen naar de gebruiker toe.
Daarom geef ik er de voorkeur aan om de uiteindelijke voorstelling van de ingetypte gegevens "netjes te maken" in een kwerrietje ...... maar........... wie ben ik?????

Groetjes van Marrosi
 
Geplaatst door Marrosi
Joost,

Dit type invoermasker was mij totaal onbekend. Ik voeg het aan mijn notities toe!!!!!
Hai, :D

Is dat positief of....? :thumb:

Als je alleen > invoegt kun je in dat veld NIETS invoeren het masker bepaalt immers ook het aantal tekens..

Dus bij >L wordt er één Hoofdletter toegestaan
Vervolgens weer naar klein dus >L<
Nog steeds alleen één Hoofdletter toegestaan...

Dus dan alle vraagtekens erachter voor het aantal tekens dat je denkt nodig te hebben...

Het is echt een veel gebruikt invoegmasker hoor! :thumb:
 
Joost,

HELE DUIDELIJKE UITLEG!!!!

Waarom solliciteer jij niet bij "den Bill G"????

Deze man zou beter enkele van zijn huidige help-tekst schrijvers afdanken en iemand met jou kwaliteiten aanvaarden.

Ik ben er overigens van overtuigd dat Colombe er na het lezen van jou uitleg ook zo zal over denken.

Groetjes van Martin en Rosine
 
Joost, weer hartelijk dank voor je snelle reactie!
Helaas werkt het niet helemaal zoals ik me had voorgesteld. Kennelijk werkt een invoermasker zeer streng: er moet precies het aantal tekens van het masker worden ingevoerd anders krijg je een foutmelding. Ik wil dat alléén het eerste teken altijd een hoofdletter is en de rest mogen willekeurige tekens zijn en een willekeurig aantal, uiteraard beperkt door de veldlengte. Is dat mogelijk?
Nog een ander vraagje: Is er verschil tussen het aanpassen van de eigenschappen in de tabelmode of in de formuliermode? Bij de laatste zie je de veldlengte nl niet.
 
Kun je dan niet beter bij het verlaten van het veld middels een stukje code de eeste letter omzetten naar een hoofdletter?
Je moet die code dan plaatsen op het bij verlaten event.
De code ziet er ongeveer als volgt uit:

If Len(Me![txtJouwVeld]) > 0 Then
Me![txtJouwVeld] = UCase(Left(Me![txtJouwVeld], 1)) & Right(Me![txtJouwVeld], Len(Me![txtJouwVeld]) - 1)
End If
 
Private Sub achternaam_AfterUpdate()
Dim Tekst As String
Tekst = Me!achternaam
Me!achternaam = UCase(Tekst)
End Sub
 
Bedankt Bartuls en Spina.
Hoewel ik nauwelijks thuis ben in VBA is het me gelukt. In eerste instantie gebruikte ik de simpele regels van Spina, dat werkte bij één veld, maar zodra er méér velden zijn (geloof ik) zetten ze alles om in hoofdletters. De regels van Bartuls werken altijd goed.
Nogmaals bedankt.
Toch vraag ik me nog steeds af of het niet - véél simpeler- met een masker kan.
 
Die manier van Verdaasdonk werkt perfect hoor! Wat je ook kunt doen is die ? te wisselen met een C. Vul wel genoeg C'tjes in het invoermasker in!

Op een andere manier zou het niet echt kunnen werken via een masker helaas. De < en > bepalen de hoofdlettergevoeligheid. Andere tekens niet, en deze combi met < en > werkt perfect.
 
Inderdaad Japsur de methode van Verdaasdonk werkt goed, ik heb misschien de vorige keer ergens een foutje gemaakt. Nu accepteert Access in ieder geval ook minder tekens dan in het masker staan.
Nu rest mij nog een klein probleempje: In een adres komt het regelmatig voor dat je naast de eerste letter ook een willekeurige volgende letter graag als hoofdletter wil zoals in: "Jacob Marislaan" Hoe kan dat dan? Of is het simpele antwoord op deze vraag; dan maar geen invoermasker of procedure na invoer?

Het werkt dus aardig voor wat betreft het formulier. Doch als je in de tabel iets invoert werkt het weer niet en ook de oplossingen van de anderen lijken dan niet te werken! Wiet weet raad?

Bedankt weer voor een reactie!
 
Laatst bewerkt:
Het kan in een tabel ook goed functioren, ga naar de ontwerpweergave, klik het veld aan en tada, als je het goed ziet staat daar ook ergens een invoermasker!
Je kunt het beste altijd beginnen een tabel met invoermasker in te voeren, dit werkt namelijk door naar de queries en formulieren zodat je nooit met twee verschillende invoermaskers zit.

Je tweede probleem lijkt me het simpelst opgelost te worden door de shifttoets in te drukken en dan de desbetreffende letter.
Ik denk dat het wel kan om na een spatie te zeggen van hoofdletter, maar dan zit je weer met namen die een tussenvoegsel hebben zonder hoofletter. Het simpelst is de shifttoets te gebruiken;)
 
Als je perse hoofdletter wilt hebben voor achternaam en voornaam, maak er dan twee velden van in je tabel
 
Beste oplossing is volgens mij gewoon zelf een hoofdletter typen, je kunt ook een dubbelen achter of voornaam hebben ……. :8-0:
 
OK Japsur, je hebt gelijk, in de ontwerpmode voor de tabel vind je inderdaad ook de mogelijkheid een invoermasker te definiëren. Wat je niet vindt is de mogelijkheid "na bijwerken", maar dat heb je dan ook niet meer nodig in dit geval.
Wat de hoofdletters betreft: ik ben een beetje lui en wil graag dat de software zoveel mogelijk voor me doet, kan ik me ook niet vergissen. Liever dus een invoermasker dan de shifttoets. Maar als Access geen mogelijkheid heeft om een masker als "L?????????????" waar "L" dus staat voor een hoofdletter en ? voor ieder willekeurig teken, dan moet ik het daar maar mee doen.
Ik ben dus nog steeds zoekende. Toch allemaal bedankt voor jullie bijdragen.
 
Hai Colombe, :D

Ben even weggeweest..

Graag gedaan!
Moet eerlijk zeggen dat het mij nog niet geheel duidelijk is wat je nu wilt.

Invoermaskers zijn idd strikt gebonden aan wat regels en weinig flexibel.

Ergens las ik dat jij bijvoorbeeld bij invoer van: joost verdaasdonk eigenlijk conversie wil naar: Joost Verdaasdonk

In dit geval ga je naar het tekstvak van het formulier toe en in gebeurtenis na bijwerken plaats je:
Code:
Private Sub test_AfterUpdate()
ConvertToProper
End Sub

Public Sub ConvertToProper()
'Controleren of veld gegevens bevat
If IsNull(Screen.ActiveControl) = False Then
'convert text to Proper Case
Screen.ActiveControl = StrConv(Screen.ActiveControl, vbProperCase)
End If
End Sub

Met de regel ConvertToProper in de gebeurtenis na bijwerken stuur je de algemene subprocedure aan om het actieve control ProperCase te maken.

Probeer het maar eens.

See Yah! :thumb:
Ps..helaas kent een naamveld zoveel variabelen dat je deze waarschijnlijk nooit allemaal in één keer kunt afdwingen...
 
Idd joost,

Problemen treden al spoedig op: tussenvoegsel, dubbele achternaam, dubbele voornaam, meerdere voorletters.
Misschien hier ook nog een oplossing voor zodat hij deze problemen niet kent? Het zal wel moeilijk worden denk ik.
 
Geplaatst door Japsur
Idd joost,

Problemen treden al spoedig op: tussenvoegsel, dubbele achternaam, dubbele voornaam, meerdere voorletters.
Misschien hier ook nog een oplossing voor zodat hij deze problemen niet kent? Het zal wel moeilijk worden denk ik.
Hai Japsur, :D

Hiervoor is maar één oplossing en dat is of geen beperkingen op het tekstveld...of alles in een apart tekstveld (en dan per veld de gewenste restricties)

Of je overigens alle uitzonderingen in Namen en de gewenste schrijfwijze kunt afdwingen lijkt mij nogal ambitieus....zoals jij zelf al aangeeft;)

Zal idd lastig worden....:thumb:
 
Ja, dat is het joost. Gewoon alles in een apart tekstveld.
En dan een extra kolom aanmaken met daarin de complete naam. Dit zou wel kunnen werken, weet niet of colombe dit een prettige manier van werken vindt.....
Andere oplossingen zijn er naar m'n mening niet
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan