Het aantal karakters tellen in een veld waarvan de letter ij geteld moet worden als 1

Status
Niet open voor verdere reacties.

Saalk

Gebruiker
Lid geworden
3 jan 2011
Berichten
85
Wie kan mij helpen? Ik heb 2 velden de een heet (woorden) en de ander (aantal).
Nu is het de bedoeling dat in het veld (woorden) een woord komt te staan er komen geen spaties in voor want het zijn alleen maar woorden dus geen zinnen. Als ik nu het woord "kijk" type moet in het veld (Aantal) 4 komen te staan. Ik ga de woorden gebruiken voor kruiswoordpuzzels. Aangezien een kruiswoordpuzzel geen letter ij kent zal er dus altijd een letter teveel geteld worden. Ik heb een stukje code gevonden op internet wie dus wel de letters telt maar niet de ij min 1 karakter. Ik hoop dat ik duidelijk ben geweest. Ik heb Access 2003 en heb er een beetje verstand van. Bijvoorbaat hartelijk dank.
 

Bijlagen

  • Letters tellen.zip
    79,5 KB · Weergaven: 106
Laatst bewerkt:
Probeer het eens met deze functie:
Code:
Function Tellen(Woord As String) As Integer
Dim i As Integer, Num As Integer
    Woord = Replace(Woord, "IJ", "\")
    Woord = Replace(Woord, "Ij", "\")
    Woord = Replace(Woord, "ij", "/")
    Num = Len(Woord)
    Woord = Replace(Woord, "/", "ij")
    Woord = Replace(Woord, "\", "IJ")
    Tellen = Num
End Function
Je gebruik hem zo in een query:
Letters: Tellen([Woord])
 
Probeer het eens met deze functie:
Code:
Function Tellen(Woord As String) As Integer
Dim i As Integer, Num As Integer
    Woord = Replace(Woord, "IJ", "\")
    Woord = Replace(Woord, "Ij", "\")
    Woord = Replace(Woord, "ij", "/")
    Num = Len(Woord)
    Woord = Replace(Woord, "/", "ij")
    Woord = Replace(Woord, "\", "IJ")
    Tellen = Num
End Function
Je gebruik hem zo in een query:
Letters: Tellen([Woord])
 

Sorry snap het niet. Moet ik die andere tekst vervangen door deze die u gemaakt heeft?
Iedergeval bedankt voor de snelle reactie. Of moet ik de database als zip bestand op het forum zetten?
 
Die andere tekst gebruik ik niet, zoals je vermoedelijk al gezien hebt. De functie <Tellen> (de code tussen Function ... End Function) moet je in zijn geheel in een Module plakken. waarschijnlijk heb je nog geen module, dus je kunt zonder probleem een nieuwe maken. Heb je al modules, dan kun je de functie daar bij plakken. Maakt allemaal niet uit.

Het voorbeeld dat ik erbij heb gezet gaat uit van een query. Hij kan ook op je formulier gebruikt worden, want zo te zien heb je e.e.a. nu op een formulier gemaakt. In een tekstveld zet je dan de formule =Tellen([Woord]) bij het besturingselementbron. In een query gebruik je de syntaxis zoals ik 'm gepost heb. Je selecteert dan de tabel met woorden, sleept het veld [Woord] naar het veldenraster, en plakt de code in een leeg veld ernaast. Dan werkt-ie.
 

Bijlagen

  • Query.jpg
    Query.jpg
    23,3 KB · Weergaven: 150
Die andere tekst gebruik ik niet, zoals je vermoedelijk al gezien hebt. De functie <Tellen> (de code tussen Function ... End Function) moet je in zijn geheel in een Module plakken. waarschijnlijk heb je nog geen module, dus je kunt zonder probleem een nieuwe maken. Heb je al modules, dan kun je de functie daar bij plakken. Maakt allemaal niet uit.

Het voorbeeld dat ik erbij heb gezet gaat uit van een query. Hij kan ook op je formulier gebruikt worden, want zo te zien heb je e.e.a. nu op een formulier gemaakt. In een tekstveld zet je dan de formule =Tellen([Woord]) bij het besturingselementbron. In een query gebruik je de syntaxis zoals ik 'm gepost heb. Je selecteert dan de tabel met woorden, sleept het veld [Woord] naar het veldenraster, en plakt de code in een leeg veld ernaast. Dan werkt-ie.

Supper!!!! Geweldig hij doet het ik ben trots op U. :d:d
In het veld staat als het leeg is #Fout maar als ik wat type dan word het vervangen door een juiste getal. Is dat nog weg te krijgen? Is niet noodzakelijk hoor. Nogmaals dank!!!
 
Ik heb geen fouten afgevangen, dat klopt... Je kunt dit proberen in je tekstvak:
=IIF([Woord] Is Null;"";Tellen([Woord])
In een query:
Tekens:IIF([Woord] Is Null;"";Tellen([Woord])
 
Ik heb geen fouten afgevangen, dat klopt... Je kunt dit proberen in je tekstvak:
=IIF([Woord] Is Null;"";Tellen([Woord])
In een query:
Tekens:IIF([Woord] Is Null;"";Tellen([Woord])

Er was een haakje of een sluisteken vergeten werd gemeld.
Dat verholpen toen de melding De expressie die u hebt opgegeven, bevat een functie met een ongeldig aantal argumenten.
Ik weet het niet maar nomaals heelveel dank.
 
Ik heb 'm net uitgetest in een query, en bij mij geen probleem:
Code:
Letters: IIf([woord] Is Null;"";Tellen([Woord]))
Het zou kunnen, dat je geen woord hebt staan, maar bijvoorbeeld nog wel een spatie. En dan gaat het ook fout.
 
Ik heb 'm net uitgetest in een query, en bij mij geen probleem:
Code:
Letters: IIf([woord] Is Null;"";Tellen([Woord]))
Het zou kunnen, dat je geen woord hebt staan, maar bijvoorbeeld nog wel een spatie. En dan gaat het ook fout.

Is perfect gelukt u service gaat ver mijn hartelijke dank. Ondanks dat ik pas lid ben geweldig :d:d
Groet Klaas
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan