Programación General > Visual Basic 6.0 e inferiores

 Restringir Ingreso De Datos

(1/1)

DiabloRojo:
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:
necesariamente tienes que hacerlo en un datagrid, por que nolo haces en mshflexgrid

--- Código: Text --- set dbf=db.execute("select col_validado from mi_tabla")do until(dbf.eof)mshflexgrid1.row=mshflexgrid1.row+1if(isnumeric(dbf(0)))      mshflexgrid1.col=1else      mshflexgrid1.col=2end ifmshflexgrid1.text=dbf(0)dbf.movenextloop 

DiabloRojo:
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:
Utiliza el evento KeyPress


--- Código: Text ---Private Sub DataGrid1_KeyPress(KeyAscii As Integer)If KeyAscii <> 8 Then    If (KeyAscii < 48) Or (KeyAscii > 57) Then        KeyAscii = 0    End IfEnd IfEnd Sub 
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:
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 --- Private Sub DataGrid1_KeyPress(KeyAscii As Integer)    Select Case DataGrid1.Col      Case 0         'acepta cualquier caracter (número o letra) para la primera         'posicion         If ((KeyAscii <= 13) Or (KeyAscii >= 48) And (KeyAscii <= 57)) Then 'sólo números            KeyAscii = KeyAscii         Else            KeyAscii = 0         End If      Case 1          If ((KeyAscii <= 13) Or (KeyAscii >= 65 And KeyAscii <= 90) Or (KeyAscii >= 97 And KeyAscii <= 122)) Then ' Solo letras             KeyAscii = KeyAscii          Else             KeyAscii = 0          End If      Case 2         KeyAscii = KeyAscii ' Letras, números y cualquier caracter   End SelectEnd Sub  
Gracias a todos los que aportaron sus ideas.

DiabloRojo.

Navegación

[0] Índice de Mensajes

Ir a la versión completa