Visual Basic - VALIDAR NUMEROS EN MSFLEXGRID

Life is soft - evento anual de software empresarial
 
Vista:

VALIDAR NUMEROS EN MSFLEXGRID

Publicado por CATITA ZARATE (1 intervención) el 13/01/2006 23:28:28
Hola a todos quisiera que me ayuden en este problema: que el numero que ingreso en la celda de la columna 6 sea menor que el de la columna 5 ; lo he hecho de la siguiente manera
If IsNumeric(.TextMatrix(.Row, 6)) < IsNumeric(.TextMatrix(.Row, 5)) Then
O de esta otra manera;
If .TextMatrix(.Row, 6) < .TextMatrix(.Row, 5) Then
Pero no me resulta.
por si acaso le mando todo el codigo completo donde me funciona perfectamente bien ,
como les explico ahí abajo o sea, se pone de color rojo al ingresar solamente numeros
pero no como yo quiero (que ingrese solamente si es menor que el de la columna 5)
Private Sub MSFlexGrid1_keypress(keyascii As Integer)
‘digitar datos en celda de msflexgrid
If keyascii >= 32 And keyascii <= 127 And MSFlexGrid1.Col = 6 Then
MSFlexGrid1.Text = MSFlexGrid1.Text & Chr(keyascii)
End If
Select Case keyascii
‘Activa la tecla enter
Case vbKeyReturn, vbKeyTab
With MSFlexGrid1
'mueve para la proxima celda(al hacer enter se abre o se muestra la columna 6 ) .
If ((.Col + 6 < .cols - 1) Or .Col = 5) Then
.ColWidth(6) = 960
.Col = .Col + 1
ElseIf .Col = 6 Then
For Z = 1 To .Rows - 1
.Row = Z
‘si el dato ingresado es numero (al hacer enter se pinta de color rojo el numero y verde toda la fila completa )
If IsNumeric(.TextMatrix(.Row, 6)) Then ‘aqui es donde hay que corregir el codigo
.CellForeColor = vbRed
For A = 1 To .cols - 1
.Col = A
.CellBackColor = RGB(100, 184, 150)
.Col = 6
Next A
End If
Next Z
End If
End With
End Select
End Sub

'Permite borrar
Private Sub MSFlexGrid1_KeyUp(KeyCode As Integer, Shift As Integer)
'manipular las teclas Supr (Del) y Retroceso (BackSpace)
If MSFlexGrid1.Col = 6 Then
Select Case KeyCode
Case vbKeyDelete
MSFlexGrid1.Text = ""
Case vbKeyBack
If Len(MSFlexGrid1.Text) > 0 Then
MSFlexGrid1.Text = Left(MSFlexGrid1.Text, Len(MSFlexGrid1.Text) - 1)
End If
End Select
End If
End Sub
'claro esta que despues tienes que actualizar la base de datos,
'en función de lo que haya modificado el usuario.
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

RE:VALIDAR NUMEROS EN MSFLEXGRID

Publicado por Ramón (90 intervenciones) el 14/01/2006 10:47:35
Sólo tienes que modificar esta línea:
==> If IsNumeric(.TextMatrix(.Row, 6)) And .TextMatrix(.Row, 6) < .TextMatrix(.Row, 5) Then
.CellForeColor = vbRed
For A = 1 To .Cols - 1
.Col = A
.CellBackColor = RGB(100, 184, 150)
.Col = 6
Next A
End If
---
Lo que no entiendo es porqué el bucle For Z, si lo eliminas funciona igual. Ahora si los datos provienen de (p.e. una DB) deberías poner el código al cargar el Grid (En el evento Form_Load())
Saludos
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