Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations waross on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

bApostropheChrs - Macro to deploy correct CATIA search query syntax

Status
Not open for further replies.

skhan547

Aerospace
May 18, 2016
7
CA
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!

Code:
[COLOR=#4E9A06]'---------------------------------------------------------------------------------------
' 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.
'---------------------------------------------------------------------------------------[/color]

If [COLOR=#CC0000]bApostropheChrs[/color]([COLOR=#729FCF]ItemName[/color]) = True Then
   Call oSel.Search("[COLOR=#729FCF]InitialSearchQuery[/color]" & Chr(39) & [COLOR=#729FCF]ItemName[/color] & Chr(39) & "[COLOR=#729FCF]Scope[/color]")
Else
   Call oSel.Search("[COLOR=#729FCF]InitialSearchQuery[/color]" & [COLOR=#729FCF]ItemName[/color] & "[COLOR=#729FCF]Scope[/color]")
End If

Code:
    Function [COLOR=#CC0000]bApostropheChrs[/color](str As String) As Boolean

[COLOR=#4E9A06]'---------------------------------------------------------------------------------------
' 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.
'---------------------------------------------------------------------------------------[/color]

    Dim strApostropheCharSet(12) As String [COLOR=#BABDB6]'Charset that requires a different Search query structure[/color]
    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
            [COLOR=#CC0000]bApostropheChrs[/color] = True
            Exit For
        End If
    Next
End Function

Have an excellent Christmas! [santa]


"Simplicity is the ultimate sophistication." ~ Leonardo Da Vinci
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top