Count dots/periods in a text string

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

I need validate that there are no more than 3 dots anywhere in a text
string. If there are at least 3 then there needs to be an error message and
the information gets cleared from the field.

Cheers
 
Public Function correctPeriods(ByVal s As String) As Boolean
Dim finished As Boolean
finished = False
dim count as Integer
count = 0
Do While Not finished
If (InStr(s, ".") <> 0) Then
count = count + 1
s = Mid$(s, InStr(s, ".") + 1)
Else
finished = True
End If
Loop
correctPeriods = (count < 4)
End Function

Hope this helps.
 
How would I declare this in the field?

Stwange said:
Public Function correctPeriods(ByVal s As String) As Boolean
Dim finished As Boolean
finished = False
dim count as Integer
count = 0
Do While Not finished
If (InStr(s, ".") <> 0) Then
count = count + 1
s = Mid$(s, InStr(s, ".") + 1)
Else
finished = True
End If
Loop
correctPeriods = (count < 4)
End Function

Hope this helps.
 
In the text box's BeforeUpdate event, try:

Private Sub MyTextbox_BeforeUpdate(Cancel As Integer)

If IsNull(Me!MyTextbox) = False Then
If Len(Me!MyTextbox) - Len(Replace(Me!MyTextbox, ".", "")) > 3 Then
MsgBox "You have too many dots in the text."
Cancel = True
End If
Else
MsgBox "You must supply some text"
Cancel = True
End If

End Sub
 
Now that I have thought about it, what I thought I wanted isn't correct. The
text box is used for entering process document reference points and I want to
ensure that only one reference is being entered.

Maybe it would better to search for a space?
 
It should work. It is an elegant expression. To do it any other way would
require more code. Post your code as you have it.
 
What does "didn't do anything" mean?

I did notice a slight error: it should be >= 3, rather than simply >3, if
you're trying to catch strings with exactly three periods in them.

(Your original spec is ambiguous: in one place you say "validate that there
are no more than 3 dots", where in another place you say "if there are at
least 3 then there needs to be an error message")
 
Doug's is better, but just for grins, here is another way. The number of
periods in the string will be returned:

If Ubound(Split(strSomeString,".")) > 3 Then
"I'm seeing spots again"
End If
 
To test whether they are Polka Dots, use the IsAccordian() function.

(I'ts Friday, it's raining, I'm bored)
 
The text box is used for entering process documentation reference points and
I would like to ensure that only one reference is being entered but there is
one case where that will not be correct:

1.2 1.3 1.4

That is why I am now asking to request code to search for a space
 
Syntax is the same for spaces as for dots, Polka or otherwise!

Replace

If Len(Me!MyTextbox) - Len(Replace(Me!MyTextbox, ".", "")) > 3 Then

with

If Len(Me!MyTextbox) - Len(Replace(Me!MyTextbox, " ", "")) > 3 Then

and change the 3 to the number of spaces you're testing for.

--
There's ALWAYS more than one way to skin a cat!

Answers/posts based on Access 2000

Message posted via AccessMonster.com
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top