skhan547
Aerospace
- May 18, 2016
- 7
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!
Have an excellent Christmas!![[santa] [santa] [santa]](/data/assets/smilies/santa.gif)
"Simplicity is the ultimate sophistication." ~ Leonardo Da Vinci
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] [santa] [santa]](/data/assets/smilies/santa.gif)
"Simplicity is the ultimate sophistication." ~ Leonardo Da Vinci