John W. Colby
jwcolby at colbyconsulting.com
Wed Jan 5 09:49:51 CST 2005
That is a NICE function!
John W. Colby
www.ColbyConsulting.com
Contribute your unused CPU cycles to a good cause:
http://folding.stanford.edu/
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert
Sent: Wednesday, January 05, 2005 9:40 AM
To: 'Access Developers discussion and problem solving'; 'Jim Lawrence'
Subject: RE: [AccessD] tabs in memo fields
I use this function to get rid of Tabs and other pesky characters in memo
fields. I usually run it in the LostFocus event of the textboxes where memos
are edited, but it should work just fine in a query too.
Function ConvertToPlainAscii(sString As String) As String
' Converts TAB characters to spaces and curly quote characters to standard
quote characters. ' some users may paste such data into memo fields and this
causes problems with reports Const TABCHAR = 9 Const LEFTSINGLEQUOTE = 145
Const RIGHTSINGLEQUOTE = 146 Const LEFTDOUBLEQUOTE = 147 Const
RIGHTDOUBLEQUOTE = 148
Const TABSPACES = " "
If Nz(sString) > "" Then
While InStr(sString, Chr(TABCHAR)) > 0
sString = ReplaceString(sString, Chr(TABCHAR), TABSPACES)
Wend
While InStr(sString, Chr(LEFTSINGLEQUOTE)) > 0
sString = ReplaceString(sString, Chr(LEFTSINGLEQUOTE), "'")
Wend
While InStr(sString, Chr(RIGHTSINGLEQUOTE)) > 0
sString = ReplaceString(sString, Chr(RIGHTSINGLEQUOTE), "'")
Wend
While InStr(sString, Chr(LEFTDOUBLEQUOTE)) > 0
sString = ReplaceString(sString, Chr(LEFTDOUBLEQUOTE), """")
Wend
While InStr(sString, Chr(RIGHTDOUBLEQUOTE)) > 0
sString = ReplaceString(sString, Chr(RIGHTDOUBLEQUOTE), """")
Wend
End If
ConvertToPlainAscii = Nz(sString, "")
End Function
and this is the ReplaceString function it uses..
Function ReplaceString(strData As String, strFind As String, strReplace As
String) As String
'============================================================
' Purpose: Replaces the first occurrence of strFind in strData with
strReplace
'============================================================
Dim strTemp1 As String, strTemp2 As String
On Error GoTo strReplace_Err
If InStr(strData, strFind) > 0 Then
strTemp1 = Left(strData, InStr(strData, strFind) - 1)
strTemp2 = Mid(strData, InStr(strData, strFind) + Len(strFind))
strData = strTemp1 & strReplace & strTemp2
End If
strReplace_Exit:
ReplaceString = strData
Exit Function
strReplace_Err:
Select Case Err
Case Else
' replace with a call to your favorite error reporting
routine
ReportError Err.Number, Err.Description, "ReplaceString",
"Module : String handling Tools"
Resume strReplace_Exit
End Select
End Function
HTH
Lambert
> -----Original Message-----
> From: accessd-bounces at databaseadvisors.com
> [SMTP:accessd-bounces at databaseadvisors.com] On Behalf Of Jim Lawrence
> Sent: Wednesday, January 05, 2005 9:20 AM
> To: 'Access Developers discussion and problem solving'
> Subject: RE: [AccessD] tabs in memo fields
>
> Hi Roz:
>
> Thanks for your help. I have been playing with tracking the tabs
> (chr(9)) with 'instr' but have been having some issues handling the
> fields through a function as the memo content is so large.
>
> Thanks again for your help.
> Jim
>
> -----Original Message-----
> From: accessd-bounces at databaseadvisors.com
> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Roz Clarke
> Sent: Wednesday, January 05, 2005 1:23 AM
> To: 'Access Developers discussion and problem solving'
> Subject: RE: [AccessD] tabs in memo fields
>
> Hi Jim
>
> I hope some bright spark who actually slept last night will come up
> with an elegant solution because the only thing I can come up with at
> the moment is
> rather clunky.
>
> Do an INSTR to find the first tab character (CHR(9) iirc). Keep doing
> this on the same memo until you don't find a tab, then move on to the
> mext memo. You could use a flag to indicate whether a tab was found on
> the last pass or
> not, so that your code knows whether to look at the same memo again or
> move
> on to the next one.
>
> Untested, ungraceful... if there's a neat way of doing it I'd like to
> know too
>
> Roz
>
> -----Original Message-----
> From: Jim Lawrence [mailto:accessd at shaw.ca]
> Sent: 05 January 2005 07:52
> To: 'Access Developers discussion and problem solving'
> Subject: [AccessD] tabs in memo fields
>
>
> Hi All:
>
> It seems simple but, is there a way to replace tab characters within a
> memo field using a query or function? Note, memo field can be many
> hundreds of characters.
>
> TIA
> Jim
>
> --
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
>
> --
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com