Keypress

Le hago la siguiente consulta...
Estoy utilizando el evento keypress y lo que aprieto lo guardo en una variable del tipo string, mi problema surge cuando al apretar backspace para borrar un carácter no se como sacar dicha letra de la cadena
Ejemplo:
En cadena esta almacenada la palabra "hola" y al apretar backspace tendría que quedar "hol"

3 respuestas

Respuesta
1
Martin, creo que anteriormente me preguntaste lo del operador LIKE en la sentencia SQL y guardabas lo que ibas presionando en el cuadro de texto como : Cadena = Cadena + chr(keyascii), en esa oportunidad te iba a comentar que utilizando este método ibas a tener problemas con ese carácter, pues ademas de que en la variable cadena no se borra la letra, también te queda el carácter especial del backspace en la variable cadena, la solución es muy sencilla, utiliza en vez de la variable cadena, el valor que tienes en el cuadro te texto, o sea cadena=text1.text, yo lo probé de esa manera y funciona bien, a menos que haya una razón especial para que estés usando cadena=cadena+chr(keyascii)
Muchas gracias juan, apenas lo pruebe te comento que paso!1, excelente tus respuestas
Juan :
Gracias por responderme, te hago una consultita sobre lo que me explicas.
De la forma que me dices, ¿no lo puedo hacer con el evento key press?... en el caso de que se pueda, le pido por favor que me oriente para hacerlo. Esto lo utilizo para lo siguiente
si tengo guardado en la variable "per" buesco todo los apellidos que empiezan con "per", si borro la r, busco los que empiezna con "pe"... esto lo implemento, el drama sale cuando quiero
borrar, es por eso de mi pregunta
Muchísimas gracias...
Martin si puedes hacerlo con el evento Keypress, de hecho ES el evento donde debes colocar este código, lo que te digo es que no utilices la variable cadena como la utilizas tu, sumando cada carácter que escribe el usuario, acá te envío como lo uso yo y aparece como quieres según vas incluyendo letras van saliendo los nombres que se acercan y si borras una letra pues regresa al nombre que más se acerque a las letras que quedaron (yo lo asocio a un dbgrid), el código es el siguiente:
Dim Base As Database
Dim rs As Recordset
Dim CADENA As String
Private Sub Form_Load()
Set Base = OpenDatabase("c:\tetbna\adm.mdb")
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
CADENA = Text1.Text
Set rs = Base.OpenRecordset("SELECT * FROM CLIENTES WHERE NOMBRE >=" & "'" & CADENA & "'", dbOpenDynaset)
Set Data1.Recordset = rs
End Sub
Respuesta
1
Prueba con esto:
cadena = left(cadena, len(cadena)-1)
Respuesta
1
Suponiendo que la cadena la tienes en una variable sCadena.
En el evento keypress:
scadena=mid(scadena,1,len(scadena)-1)
Es decir asigna a la cadena su propio contenido menos el último carácter.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas