Visual basic 6 captura de datos

Espero me puedan ayudar ya tengo un formulario de captura que manda los datos capturados a access mis preguntas son las siguientes:
1.¿Se tiene que capturar fechas y necesito un formato 00/00/00 como puedo hacer que el text me capture de esa forma y que ademas después de escribir los dos primeros números se brinque a los otros dos de en medio y después de capturar los dos de en medio me mande a los dos últimos?
¿2.Cómo le hago para que al presionar <enter> se pase al otro text osea como un tab pero con enter?
3.Como puedo hacer que cuando entre a un campo se seleccione todo lo que hay en el como el tipo de entrada que tiene access que al pasar a otra columna se seleccionan todos los datos (esto es en la forma de captura)
4.Donde le modifico o como puedo hacer que al pasar de un text a otro lleve el orden que yo quiero por ejemplo que del text1 se pase al text3 al presionar tab o enter
Gracias espero me ayuden y si esta pregunta ya fue contestada y saben la respuesta agradecería me mandaran un email
[email protected]
Respuesta
1
Para capturar las fechas yo usaría 3 controles TEXT1 con subíndices y pondría el siguiente código.
Private Sub Text1_Change(Index As Integer)
If KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0
End If
A = Len(Text1(Index).Text)
If Index < 2 Then
If A > 1 Then
Text1(Index + 1).SetFocus
End If
Else
If A > 1 Then
text2.SetFocus
End If
End If
End Sub
Con las instrucciones setfocus se moverá al siguiente campo de texto.
-------------------------------
A tu pregunta 2 no se como hacerlo.
-------------------------------
A la pregunta 3, la solución es un códifo como este.
Si quieres seleccionarlo
Private Sub Text2_GotFocus()
Text2.SelLength = Len(Text2.Text)
End Sub
-------------------------------
Si quieres escribir al final
Private Sub Text2_GotFocus()
Text2.SelStart = Len(Text2.Text)
End Sub
A tu pregunta 4, la solución es poner a cada control el número de orden en que lo quieres, esto se hace en las propiedades en la propiedad TABINDEX

1 respuesta más de otro experto

Respuesta
1
Hoy ya es tarde y me tengo que ir. Te envío mañana todas las respuestas. Palabra.
Lo prometido es deuda. En realidad lo que pides no es muy difícil así que presumo que eres novato. No hay problema, aquí tienes las 4 respuestas a tus preguntas.
1. En vez de usar un TextBox lo mejor es usar un control Masked Edit. Para ello debes agregarlo a tu barra de herramientas (componente Microsoft Masked Edit Control 6.0). Luego debes establecer su propiedad Mask con lo siguiente: "##-##-##" (no son necesarias las comillas), automáticamente se establece su propiedad Length a 8. Por ultimo, establece la propiedad AutoTab = True para que luego de escribir los 6 digitos pase al siguiente control. Por ultimo, añade el siguiente código (es para validar la fecha, ya que el control no puede hacerlo):
Private Sub MaskEdBox1_GotFocus()
MaskEdBox1.SelStart = 0
MaskEdBox1.SelLength = Len(MaskEdBox1.Text)
End Sub
Private Sub MaskEdBox1_LostFocus()
If Not IsDate(MaskEdBox1.Text) Then
MaskEdBox1.SetFocus
End If
End Sub
2. Utiliza el siguiente codigo:
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
If Len(Text1.Text) = 8 Then
SendKeys "{TAB}"
End If
End If
End Sub
3. Utiliza el siguiente codigo:
Private Sub Text1_GotFocus()
Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text)
End Sub
4. Lo que tienes que hacer es seleccionar el TextBox que quieres que sea el primero y en la ventana de propiedades establecer la propiedad TabIndex = 0. Luego seleccionas el que quieres que sea segundo y le asignas 1 a la propiedad TabIndex, al siguiente control (no solamente puede ser con TextBox) le asignas 2, luego 3, etc.
Eso es todo, espero que te sirva. Cualquier duda, estoy para servirte.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas