[AccessD] FW: CodeL

Eric Starkenburg eric.starkenburg at home.nl
Fri Mar 7 16:47:40 CST 2008


But this way you lose any quotes in the string while these were to be saved
no?


-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of
jeffrey.demulling at usbank.com
Sent: Friday, March 07, 2008 11:41 PM
To: Access Developers discussion and problem solving
Cc: Access Developers discussion and problem solving;
accessd-bounces at databaseadvisors.com
Subject: Re: [AccessD] FW: CodeL

Here is code I use to handle this problem when doing SQL updates on MS SQL
Server DBs

'---------------------------------------------------------------------------
------------
' Module    : mdlReplace
' DateTime  : 2004-Mar-29 16:14
' Author    : Jeffrey F. Demulling
' Purpose   : Used to clean up sql statements with quotes(apostrophes) and
double quotes and make
'             it so it can be used in on the fly statements
' Modified  : 2004-Mar-29 16:14 - Jeffrey F. Demulling
' Notes     : Parts of the code in this module come from Tom Jordan at
TriniDat Software Entwicklung GmbH of Duesseldorf BMGH
'---------------------------------------------------------------------------
------------
Option Compare Database
Public Function AddQuote(vData As Variant) As String
'---------------------------------------------------------------------------
------------
' Procedure : AddQuote
' DateTime  : 2004-Mar-29 16:15
' Author    : Jeffrey F. Demulling
' Purpose   : Adds double quotes to the string passed, and also cleans up
any double
'             and or single quotes within the string passed
' Modified  : 2004-Mar-29 16:15 - Jeffrey F. Demulling
'---------------------------------------------------------------------------
------------
'
    'Const QUOTE = """"    '4 quotation marks in a row
    Const QUOTE = "'"

    On Error GoTo AddQuote_Error

    If IsNull(vData) Then
        AddQuote = "NULL"
    Else
        AddQuote = QUOTE & ReplaceQuotes(vData, QUOTE, QUOTE & QUOTE) &
QUOTE
    End If

    On Error GoTo 0
    Exit Function

AddQuote_Error:

    MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure
AddQuote of Module mdlReplace"

End Function

Public Function ReplaceQuotes(ByVal varValue As Variant, ByVal strFind As
String, ByVal strReplace As String) As Variant
'---------------------------------------------------------------------------
------------
' Procedure : ReplaceQuotes
' DateTime  : 2004-Mar-29 16:15
' Author    : Jeffrey F. Demulling
' Purpose   : Searches the passed string for quotes (double and single) and
cleans them up.
' Modified  : 2004-Mar-29 16:15 - Jeffrey F. Demulling
'---------------------------------------------------------------------------
------------
'
    Dim intLenFind As Integer
    Dim intLenReplace As Integer
    Dim intPos As Integer

    On Error GoTo ReplaceQuotes_Error

    If IsNull(varValue) Then
        ReplaceQuotes = Null
    Else
        intLenFind = Len(strFind)
        intLenReplace = Len(strReplace)

        intPos = 1
        Do
            intPos = InStr(intPos, varValue, strFind, 0)
            If intPos > 0 Then
                varValue = Left(varValue, intPos - 1) & strReplace & _
                           Mid(varValue, intPos + intLenFind)
                intPos = intPos + intLenReplace
            End If
        Loop Until intPos = 0
    End If
    ReplaceQuotes = varValue

    On Error GoTo 0
    Exit Function

ReplaceQuotes_Error:

    MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure
ReplaceQuotes of Module mdlReplace"

End Function

Jeffrey F. Demulling
Project Manager
U.S. Bank Corporate Trust Services
60 Livingston Avenue
EP-MN-WS3C
St. Paul, MN  55107-2292
Ph: 651-495-3925
Fax: 651-495-8103
email: jeffrey.demulling at usbank.com


                                                                          
             "Arthur Fuller"                                              
             <fuller.artful at gm                                            
             ail.com>                                                   To
             Sent by:                  "Access Developers discussion and  
             accessd-bounces at d         problem solving"                   
             atabaseadvisors.c         <accessd at databaseadvisors.com>     
             om                                                         cc
                                                                          
                                                                   Subject
             03/07/2008 04:28          Re: [AccessD] FW: CodeL            
             PM                                                           
                                                                          
                                                                          
             Please respond to                                            
             Access Developers                                            
              discussion and                                              
              problem solving                                             
             <accessd at database                                            
               advisors.com>                                              
                                                                          
                                                                          




If you do both Replace() calls, yes, and the count of occurrences is
irrelevant since it replaces them all.

Arthur

On 3/7/08, Eric Starkenburg <eric.starkenburg at home.nl> wrote:
>
> Arthur,
>
> Does this work when both characters exist in one sentence?
> Maybe the single quote once and two double quotes.
>
>
>
> Regards,
> Eric
>
>
> -----Original Message-----
> From: accessd-bounces at databaseadvisors.com
>
> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Arthur Fuller
> Sent: Friday, March 07, 2008 11:07 PM
> To: Access Developers discussion and problem solving
> Subject: Re: [AccessD] FW: CodeL
>
> This is overkill, I think, Eric. You just have to know how to handle SQL
> containing either single or double quotes or neither. It's quite
> straightforward, really. You can eliminate all the hassle for any column
> that might contain these values by doubling up on the single and double
> quotes, which you can do in exactly one statement each:
>
> Replace( [columnName], Chr(39), (Chr(39) & Chr(39) )
> and similarly
> Replace( [columnName], Chr(34), (Chr(34) & Chr(34) )
>
> You can wrap both calls into a function if you wish. The code does
nothing
> on values that don't contain the offending characters.
>
> Having been bitten by surnames like O'Hara and embedded quotations, if I
> suspect that this might ever occur, I just pre-empt it right from the
> beginning.
>
> hth,
> Arthur
>
--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com



U.S. BANCORP made the following annotations
---------------------------------------------------------------------
Electronic Privacy Notice. This e-mail, and any attachments, contains
information that is, or may be, covered by electronic communications privacy
laws, and is also confidential and proprietary in nature. If you are not the
intended recipient, please be advised that you are legally prohibited from
retaining, using, copying, distributing, or otherwise disclosing this
information in any manner. Instead, please reply to the sender that you have
received this communication in error, and then immediately delete it. Thank
you in advance for your cooperation.



---------------------------------------------------------------------

--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com




  _____  

avast! Antivirus <http://www.avast.com> : Uitgaande bericht is niet besmet. 


Virus Gegevensbestand (VPS): 080307-0, 07-03-2008
Getest op: 7-3-2008 23:47:40
avast! - auteursrecht (c) 1988-2008 ALWIL Software.






More information about the AccessD mailing list