• Lunes 23 de Diciembre de 2024, 05:46

Autor Tema:  Restringir Ingreso De Datos  (Leído 5055 veces)

DiabloRojo

  • Miembro MUY activo
  • ***
  • Mensajes: 220
    • Ver Perfil
Restringir Ingreso De Datos
« en: Jueves 8 de Septiembre de 2005, 22:21 »
0
Hola.
La pregunta es: ¿Cómo puedo restringir el ingreso de datos a un datagrid?. Es decir, cómo puedo hacer para que en una columna sólo pueda ingresar números y en otra solo caracteres?. De antemano agradezco cualquier ayuda o comentario.


DiabloRojo.

jodijo5

  • Miembro HIPER activo
  • ****
  • Mensajes: 518
  • Nacionalidad: pe
    • Ver Perfil
    • http://www.bluetecnologia.com
Re: Restringir Ingreso De Datos
« Respuesta #1 en: Jueves 8 de Septiembre de 2005, 23:43 »
0
necesariamente tienes que hacerlo en un datagrid, por que nolo haces en mshflexgrid
Código: Text
  1.  
  2. set dbf=db.execute("select col_validado from mi_tabla")
  3. do until(dbf.eof)
  4. mshflexgrid1.row=mshflexgrid1.row+1
  5. if(isnumeric(dbf(0)))
  6.       mshflexgrid1.col=1
  7. else
  8.       mshflexgrid1.col=2
  9. end if
  10. mshflexgrid1.text=dbf(0)
  11. dbf.movenext
  12. loop
  13.  
=============================
Daniel Pomalaza Mendoza
visita el Dinosaurio Azul :-D
http://bluetecnologia.com

DiabloRojo

  • Miembro MUY activo
  • ***
  • Mensajes: 220
    • Ver Perfil
Re: Restringir Ingreso De Datos
« Respuesta #2 en: Viernes 9 de Septiembre de 2005, 14:49 »
0
Hola Jodijo5.
Gracias por responder a mi pregunta.
Aclaro un poco la situación... Uso un datagrid porque lo que trato de hacer es agregar registros a un recordset directamente sobre el datagrid. Es decir, uso el datagrid más para ingresar datos que para mostrarlos. El problema está en que la primera columna del datagrid sólo debería aceptar datos numéricos; la segunda, sólo datos tipo caracter (letras) y; la tercera columna, aceptar tanto letras como números que es como por defecto actúa el datagrid. Entonces mi duda es cómo puedo indicarle al datagrid que sólo acepte números en la primera columna y sólo letras en la segunda?.


DiabloRojo.

patitofeo

  • Miembro MUY activo
  • ***
  • Mensajes: 145
    • Ver Perfil
Re: Restringir Ingreso De Datos
« Respuesta #3 en: Viernes 9 de Septiembre de 2005, 16:21 »
0
Utiliza el evento KeyPress

Código: Text
  1. Private Sub DataGrid1_KeyPress(KeyAscii As Integer)
  2. If KeyAscii <> 8 Then
  3.     If (KeyAscii < 48) Or (KeyAscii > 57) Then
  4.         KeyAscii = 0
  5.     End If
  6. End If
  7. End Sub
  8.  

El codigo anterior solo te dejaria ingresar números de 0 al 9 y borrarlos.

Comparas la letra pulsada que aparece en el parametro KeyAscii, si no esta en el rango que quieres, lo pones a cero de modo que se anula y el Control actua como si no lo hubiera recibido.

Pruebalo, es muy facil. Si tienes alguna duda, dimelo

SAludos

DiabloRojo

  • Miembro MUY activo
  • ***
  • Mensajes: 220
    • Ver Perfil
Re: Restringir Ingreso De Datos
« Respuesta #4 en: Sábado 10 de Septiembre de 2005, 03:18 »
0
Sí patitofeo esa es la forma!. Ahora para que cada columna tenga su restricción específica yo lo hago de la siguiente manera:

Código: Text
  1.  
  2. Private Sub DataGrid1_KeyPress(KeyAscii As Integer)
  3.     Select Case DataGrid1.Col
  4.       Case 0
  5.          'acepta cualquier caracter (número o letra) para la primera
  6.          'posicion
  7.          If ((KeyAscii <= 13) Or (KeyAscii >= 48) And (KeyAscii <= 57)) Then 'sólo números
  8.             KeyAscii = KeyAscii
  9.          Else
  10.             KeyAscii = 0
  11.          End If
  12.       Case 1
  13.           If ((KeyAscii <= 13) Or (KeyAscii >= 65 And KeyAscii <= 90) Or (KeyAscii >= 97 And KeyAscii <= 122)) Then ' Solo letras
  14.              KeyAscii = KeyAscii
  15.           Else
  16.              KeyAscii = 0
  17.           End If
  18.       Case 2
  19.          KeyAscii = KeyAscii ' Letras, números y cualquier caracter
  20.    End Select
  21. End Sub
  22.  
  23.  

Gracias a todos los que aportaron sus ideas.

DiabloRojo.