Resumen Sentencia SQL con comilla simple   (3 mensajes )

HOla a todos Listeros

        Yo para solventar el problemas de la comilla simple uitlizo esta funcion y me va bien.

Public Function DobleComilla(Valor As Variant) As String
Dim cmpvalor As String
Dim aux As Integer
Dim comilla As String * 1
    If IsNull(Valor) Then
        cmpvalor = ""
    Else
        cmpvalor = Valor
        comilla = Chr(39)
        aux = InStr(cmpvalor, comilla)
        Do While aux <> 0
            cmpvalor = Left$(cmpvalor, aux) & comilla & Right$(cmpvalor, Len(cmpvalor) - aux)
            aux = InStr(aux + 2, cmpvalor, comilla)
        Loop
    End If
    DobleComilla = cmpvalor
End Function

Espero que os sirva.

Un saludo. ALberto.

Buenas

La funcion abajo codificada es similar al Replace de VB6. Las versiones de VB5 y anteriores no tienen una funcion como la Replace. Ahi aporto la funcion MyReplace para aquellos que deseen utilizarlo.
Usa dos caracteristicas poco usadas por los programadores (variables estaticas y funciones recursivas).


Cualquier duda o mejora por favor comuniquenmelo.


Saludos


Oswaldo A D'Acevedo
Oswaldo@heuristika.com


Public Function MyReplace(myText As String, Str1 As String, Str2 As String)
As String
 '' myText es el texto en que se Reemplazara el String Str1 por el String Str2
'' No importa cuantas veces se repita el Str1 y tampoco si estan juntos, este sera
'' reemplazado las veces que aparezaca en myText
'' un caso particular sera el reemplazar el "'" con el "''" para efectos de comandos SQL
'' Oswaldo D'Acevedo , 09/24/1998
Static MyStrTemp
Static MyBool As Boolean
If Not MyBool Then
    MyStrTemp = ""
    MyBool = True
End If
If InStr(myText, Str1) > 0 Then
    MyStrTemp = MyStrTemp & Left(myText, InStr(myText, Str1) - 1) & Str2
    myText = Right(myText, Len(myText) - (Len(Left(myText, InStr(myText,
Str1)))))
    MyReplace myText, Str1, Str2
End If
MyReplace = MyStrTemp & myText
MyBool = False
End Function

Alejandro:

Para cambiar los apóstrofes simples por dobles


Function CambiarApo( s as String ) as String
Dim iApo as integer


iApo = InStr( s, "'")
If iApo = 0 Then
    CambiarApo = s
    Exit Function
End If

Do
    CambiarApo = CambiarApo & Mid( s, 1, iApo ) & "'"
    s = Mid( s, iApo + 1 )
    iApo = InStr( s, "'")
Loop While iApo > 0
CambiarApo = CambiarApo & s
End Function


Saludos,


Diego Buendía
Barcelona, Spain
diegobb@teleline.es



Resumen Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com