Visual Basic - Problema al introducir datos en la BD

Life is soft - evento anual de software empresarial
 
Vista:

Problema al introducir datos en la BD

Publicado por Manelnight (69 intervenciones) el 09/11/2002 02:16:18
Mi problema es que tengo un formulario con varios textbox donde el usuario pone los datos, unos númericos,fechas y texto. El problema viene en los de texto, si el usuario en el txtNombre pone un nombre con un' por ejemplo ( L'andreu) el programa me peta pq al hacer la consulta SQL , me coje el caracter " ' " y se piensa que ahí se acaba la comparación. No se si me he explicado bien. Os pongo la sentencia sql:

Set RsPersonal = Bd.OpenRecordset("SELECT PERSONAL.* FROM PERSONAL WHERE PERSONAL.Nombre='" & TxtNombre.Text & "'")

Si en TxtNombre.text pone un apostrofe ( L'Andreu) por ejemplo quedaría esto y peta:

Set RsPersonal = Bd.OpenRecordset("SELECT PERSONAL.* FROM PERSONAL WHERE PERSONAL.Nombre=' L ' Andreu ' '")
Aqui ---^ petara pq la sentencia estaría mal construida.
Como lo puedo hacer para que si me introducen el caracter ' funcione.

en el error pone lo siguiente:
Error '3075' en tiempo de ejecución:
Error de sintaxis (falta operador) en la expresión de consulta ' PERSONAL.Nombre='L'Andreu".

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema al introducir datos en la BD

Publicado por Juan (27 intervenciones) el 09/11/2002 09:58:35
Debes poner antes y después de los campos que puedan contener ' otra comilla, no recuerdo si doble o simple.

Set RsPersonal = Bd.OpenRecordset("SELECT PERSONAL.* FROM PERSONAL WHERE PERSONAL.Nombre=''" & TxtNombre.Text & "''")

o así:

Set RsPersonal = Bd.OpenRecordset("SELECT PERSONAL.* FROM PERSONAL WHERE PERSONAL.Nombre="'" & TxtNombre.Text & "'"")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

No FUNCIONA, alguna otra sugerencia?

Publicado por Manelnight (69 intervenciones) el 10/11/2002 00:27:27
He probado lo que me has dicho pero no me funciona ninguna de las dos formas.
A ver si alguien sabe como hacerlo que ya no se que probar.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:No FUNCIONA, alguna otra sugerencia?

Publicado por alberto (278 intervenciones) el 11/11/2002 11:29:09
El problema está en: Nombre=' L ' Andreu ' .
SQL Server y Access interpretan los apostrofos "'" como el inicio o final de una cadena por lo tanto cuando escribes 'L' el segundo apostrofo es interpretado como el Final de la cadena y Andreu no se considera como parte de dicha cadena, la solución pasa por sustituir el apostrofo posterior a la L por un doble apostrofo "''" y Sql Server y Access lo interpretarán como un apostrofo sencillo incluido en la cadena.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:No FUNCIONA, alguna otra sugerencia?

Publicado por Manelnight (69 intervenciones) el 11/11/2002 17:38:26
Ya se que el access lo interpreta como un final de cadena, lo que quiero saber es como poder poner el apostrofe y que el access sepa que no es final de cadena.
Voy a provar de introducir dos apostrofes como tu dices pero no se si funcionará

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar