tekst zonder spaties

Status
Niet open voor verdere reacties.

doosje

Gebruiker
Lid geworden
5 mei 2006
Berichten
16
Kan iemand mij verder helpen?

Bij de programmatie van een formulier in Access, zou ik graag een ingevuld gegevens (tekst)
omzetten naar diezelfde tekst, doch zonder eventuele spaties.

Als voorbeeld zal ik de term vluchtnummer gebruiken.
Wanneer iemand bvb de vlucht KL 389 naar Curacao wenst te nemen, kan deze vluchtnummer op diverse wijzen worden ingebracht:
kl389 - kl 389 - KL389 - KL 389

Wanneer men naderhand rapporten opvraagt oogt het natuurlijk mooier dat alle vluchtnummers op eenzelfde manier worden weergegeven.

Het omzetten naar Hoofdletters is poepsimpel
Me.Vluchtnummer = UCase(Me.Vluchtnummer)

Het verwijderen van eventuele spaties vooraan en achteraan is eveneens zo opgelost
Me.Vluchtnummer = UCase(Trim(Me.Vluchtnummer))

Voor de eventuele spaties er tussenin zit ik met een probleempje
Er is geen vaste bepaling van het aantal letters of het aantal cijfers.
Zoniet kon men de Left-functie gebruiken, om de tekst te schijden in 2 delen, welke
men daarna aan elkaar kan plakken zonder spaties.

Ik heb reeds een constante bepaald waaraan dient te worden voldaan:
Const AlfabetNumeriek ="abcdefghijklmnopqrstuvwxyz0123456789"

Het was dus mijn bedoeling een LOOP te laten lopen, welke stopte bij het eerste teken welke niet behoorde tot de constante AlfabetNumeriek; daarna het daaropvolgende teken te verwijderen EN zijn LOOP verder te zetten tot er eventueel nogmaals dient gestopt te worden voor een teken welke niet behoort tot de constante.


Coyote,
 
je kan de Replace() functie gebruiken;

Replace(me.Vluchtnummer, " ", "")

zo niet, en je wil het met je constante doen kan je de instr() functie gebruiken; deze kijkt of één string in de ander voorkomt.

Als je wilt maak ik (morrige) wel ergens een voorbeeld.
 
Ik was ook reeds tot de InStr-functie gekomen.
Maar ik kwam er niet uit.

Dim Vorige As Boolean

Vorige= InStr (AlfabetNumeriek, Mid(Me.Vluchtnummer, i, 1)) = 0

ElseIf Vorige Then
Me.Vluchtnummer = UCase(Left(Me.Vluchtnummer, i - 1) & Mid(Me.Vluchtnummer, i + 1, Len(Me.Vluchtnummer)))


Dit gaf geen goed resultaat.
KL 347 werd zodoende omgezet naar KL 47


Een voorbeeldje is altijd meer dan welkom.


Doosje
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan