Log In

Come Join Us!

Are you an
Engineering professional?
Join Eng-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!
  • Students Click Here

*Eng-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here


bApostropheChrs - Macro to deploy correct CATIA search query syntax

bApostropheChrs - Macro to deploy correct CATIA search query syntax

bApostropheChrs - Macro to deploy correct CATIA search query syntax

Hello all!

I use V5R20, and the search function, while powerful, uses different query formatting depending on which characters are in the search string. The bApostropheChrs was made through trial and error through all ASCII characters, seeing which ones CATIA surrounded with double quotations (""), and which ones it didn't.

I didn't build a function to use bApostropheChrs (it'd be very simple if you're inclined), but my reusable code snippet is included below!

Hope this helps anyone looking to use the search function more easily in VBA!


' Mod       : Reusable Search snippet
' Author    : Sameh Khan
' Date      : 03.06.2016
' Purpose   : Calls bApostropheChrs to ascertain which query syntax to use, then deploys 
'           : based on result.

If bApostropheChrs(ItemName) = True Then
   Call oSel.Search("InitialSearchQuery" & Chr(39) & ItemName & Chr(39) & "Scope")
   Call oSel.Search("InitialSearchQuery" & ItemName & "Scope")
End If 


Function bApostropheChrs(str As String) As Boolean

' Function  : bApostropheChrs
' Author    : Sameh Khan
' Date      : 03.06.2016
' Purpose   : Ascertains whether the search string includes a character that causes
'           : CATIA to change it's query syntax to include double quotations.
'           : Returns TRUE if quotation marks are needed in Search query.

    Dim strApostropheCharSet(12) As String 'Charset that requires a different Search query structure
    Dim i As Integer

    strApostropheCharSet(1) = " "
    strApostropheCharSet(2) = "&"
    strApostropheCharSet(3) = "("
    strApostropheCharSet(4) = ")"
    strApostropheCharSet(5) = "+"
    strApostropheCharSet(6) = ","
    strApostropheCharSet(7) = "-"
    strApostropheCharSet(8) = "."
    strApostropheCharSet(9) = ";"
    strApostropheCharSet(10) = "<"
    strApostropheCharSet(11) = "="
    strApostropheCharSet(0) = ">"

    For i = LBound(strApostropheCharSet) To UBound(strApostropheCharSet)
        If InStr(str, strApostropheCharSet(i)) > 0 Then
            bApostropheChrs = True
            Exit For
        End If
End Function 

Have an excellent Christmas! santa

"Simplicity is the ultimate sophistication." ~ Leonardo Da Vinci

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Eng-Tips Forums free from inappropriate posts.
The Eng-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Eng-Tips forums is a member-only feature.

Click Here to join Eng-Tips and talk with other members! Already a Member? Login


White Paper - The Evolving Landscape of Commercial Battery-Powered Trucks
What’s driving the evolving landscape of truck electrification? What are the barriers, motivators and strategies for accelerating the electric transition? What insights and resources are available for today’s design engineers working to achieve industry disruption and evolution? For answers to these and other pertinent questions, read this white paper. Download Now
eBook - Rethink Your PLM
A lot has changed since the 90s. You don't surf the Web using dial-up anymore, so why are you still using a legacy PLM solution that's blocking your ability to innovate? To develop and launch products today, you need a flexible, cloud-based PLM, not a solution that's stuck in the past. Download Now

Close Box

Join Eng-Tips® Today!

Join your peers on the Internet's largest technical engineering professional community.
It's easy to join and it's free.

Here's Why Members Love Eng-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close