Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Count instances of comma in a string

Posted on 2014-03-25
4
Medium Priority
?
780 Views
Last Modified: 2014-03-25
I have strings like this:
"236 A 100, 236 A 100 B, A 100, A 100 R, A 100 S"

I would like to filter in access query grid for strings containing more than two comma's.

So above would get shown:

"236 A 100, 236 A 100 B" this would not.
0
Comment
Question by:PeterBaileyUk
4 Comments
 
LVL 20

Accepted Solution

by:
clarkscott earned 668 total points
ID: 39952787
I'd create a function.  This function splits your text into "sections".  You can count the sections. Since the array will start at zero, the numer that's actually returned should be the correct count.  
Put this in a query along with your text field to examine and query for the number of commas you're looking for. It will return a number.

Function CountCommas (byref YourField as string) as long
dim vArray () as string

vArray = Split(YourField, ",")
CountCommas = ubound(varray)

End Function


You query:  CommaCount:  = CountCommas([YourField])

if CommaCount > 2 then - do something.


Scott C
0
 
LVL 49

Assisted Solution

by:Dale Fye
Dale Fye earned 668 total points
ID: 39952821
easiest way is something like:

CommaCount: Len([yourField] & "") - LEN(Replace([YourField] & "", ",", ""))
Criteria: > 2

This simply counts the number of characters in the string, and then the number of characters in the string after having replaced all of the commas with a zero length string.

I tend to add the:

& ""

inside all of my string function calls to avoid the possibility that the function will raise an error if a NULL is passed to it.
0
 
LVL 16

Assisted Solution

by:Kalpesh Chhatrala
Kalpesh Chhatrala earned 664 total points
ID: 39952838
you can count  like below

Function CntCharacterInString(strToSrch As String, strCharToCount As String) As Long
   Dim lPos As Long
   Dim lnTotal As Long
   For lPos = 1 To Len(strToSrch)
      If Mid$(strToSearch, lPos, Len(strCharToCount)) = strCharToCount Then
         lnTotal = lnTotal + 1
      End If
   Next
   CntCharacterInString = lnTotal
End Function

Open in new window

0
 

Author Closing Comment

by:PeterBaileyUk
ID: 39952850
thank you all equally valid, so shared
0

Featured Post

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Traditionally, the method to display pictures in Access forms and reports is to first download them from URLs to a folder, record the path in a table and then let the form or report pull the pictures from that folder. But why not let Windows retr…
This article shows how to get a list of available printers for display in a drop-down list, and then to use the selected printer to print an Access report or a Word document filled with Access data, using different syntax as needed for working with …
Add bar graphs to Access queries using Unicode block characters. Graphs appear on every record in the color you want. Give life to numbers. Hopes this gives you ideas on visualizing your data in new ways ~ Create a calculated field in a query: …
Visualize your data even better in Access queries. Given a date and a value, this lesson shows how to compare that value with the previous value, calculate the difference, and display a circle if the value is the same, an up triangle if it increased…
Suggested Courses

877 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question