Access - Como dejar seleccionado un texto en un textbox

 
Vista:
Imágen de perfil de Maria

Como dejar seleccionado un texto en un textbox

Publicado por Maria (11 intervenciones) el 28/03/2015 01:21:48
Hola, mi pregunta es la siguiente;
(Estoy trabajando con acces 2010)

Tengo 1 textbox llamado DNIPcipal
Lo que quiero hacer es que una vez colocado el número de dni, al darle enter, no pase el foco al siguiente textbox, sino que se quede en el textbox DNIPcipal y con el texto del mismo seleccionado.

Se puede hacer eso?

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
Imágen de perfil de Toni

Como dejar seleccionado un texto en un textbox

Publicado por Toni (129 intervenciones) el 01/04/2015 19:27:47
Hola María

Hasta donde yo se....no se puede, ya que la tecla -Enter- está configurada para realizar un salto de campo, un salto de registro o nada. Ésta configuración la puedes modificar en las opciones Avanzadas de Access, si la configuras para que no haga -nada- entonces sí que obtendrás lo que quieres, pero me temo que a cambio de perder su utilidad más básica que es la de pasar al siguiente campo, puedes hacer la prueba.


1.-Configuras esa tecla en Opciones Avanzadas de Access para que no haga -nada-
2.- En el evento "Al bajar una tecla" de tu textbox DNIPcipal pones este código:

1
2
3
4
If KeyCode = vbKeyReturn Then
        Me.DNIPcipal.SelStart = 0
        Me.DNIPcipal.SelLength = Len(Me.DNIPcipal.Text)
End If

Pruébalo y verás que funciona tal y como tu quieres, pero a cambio la tecla intro en el resto de campos te va a quedar inutilizada, por lo que no te lo aconsejo.

Otra opción que puedes hacer es colocar un pequeño botón de comando justo al lado de ese textbox y ponerlo en el orden de tabulación para que vaya después de ese campo, con lo que con sólo pulsar dos veces la tecla -Enter- podrás conseguir lo que buscas, para hacerlo pones el siguiente código en el evento al hacer click en dicho botón.

1
2
3
Me.DNIPcipal.SetFocus
Me.DNIPcipal.SelStart = 0
Me.DNIPcipal.SelLength = Len(Me.DNIPcipal.Text)

Pruébalo y verás que funciona y de esta manera no perderás la funcionalidad de la tecla -Enter-

Saludos.
Toni
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
Imágen de perfil de Maria

Como dejar seleccionado un texto en un textbox

Publicado por Maria (11 intervenciones) el 28/04/2015 17:36:10
Hola Toni, primero que nada muchas gracias por tomarte el trabajo de responder.
Probé lo que me dijiste de anular la función de la tecla enter, pero la verdad, me complicaba luego al trabajar con otros botones y otros textbox. No lo recomiendo tampoco.

Luego probé la segunda opción pero no logré que me funcionara, sin embargo, pude solucionarlo de la siguiente manera.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub DNIPcipal_AfterUpdate()
 
Dim longtext As Integer
 
    If (Not IsNull(DLookup("[DNIPcipal]", "Principal", "[DNIPcipal]=" & Me.DNIPcipal))) Then
        MsgBox "El DNI ya existe en el padrón" & vbCrLf & vbCrLf & "Ingrese otro DNI.", vbInformation, "DNI Duplicado"
        Cancel = True
 
        Me.DNIPcipal.Value = 99999999
        Me.Apellido_Pcipal.SetFocus
        Me.DNIPcipal.SetFocus
        'Me.DNIPcipal.SelectionStart = 0
        'Me.DNIPcipal.SelectionLength = TextBox1.Text.Length
        'Me.DNIPcipal.OnGotFocus
    End If
 
End Sub

Esto lo saqué de otro lado y traté de adaptarlo a mi BD. Lo paso porque seguro tiene errores o se puede llegar a mejorar.
Por lo pronto me funciona, si bien me deja el textbox DNIPcipal con el valor 99999999, me permite dejar el foco en dicho textbox.

En este código como verán, lo que se hace es controlar,(con DLookup) , que el valor de DNI introducido en el textbox DNIPcipal, no esté repetido, si lo está, aparece un cuadro de advertencia, no permite seguir y vuelve el foco al textbox DNIPcipal, para esto obligo al foco a pasar por el textbox Apellido_Pcipal y luego regresar al textbox DNIPcipal.

Si alguno quiere mejorarlo, no me enojo.
Puede tambien que haya cosas de mas, como el cancel o la variable. No estoy segura. Soy muy básica en programar en VB.

Espero que le pueda ayudar a alguien mas.

Saluditos
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