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