Visual Basic - Impedir celdas vacías en DataGrid de Vb6

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 35
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Impedir celdas vacías en DataGrid de Vb6

Publicado por CARLOS (18 intervenciones) el 08/08/2020 02:22:43
Hola, Alguien puede ayudarme en cómo impedir que quede una celda vacía en un DataGrid de VB6?

El usuario puede editar la base de datos de access contenida en el DataGrid, pero quiero que si deja una celda vacía, la aplicación le muestre una advertencia que ha quedado una celda vacia del Datagrid.

Me urge!! Gracias
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
sin imagen de perfil
Val: 355
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Impedir celdas vacías en DataGrid de Vb6

Publicado por raul (160 intervenciones) el 08/08/2020 15:01:52
Hola Carlos, veras si analizas tu problemas veras que es más complejo que lo que pides… tú necesitas “Impedir” no “Alertar”; ya que si solo alertas, el usuario puede literalmente puede ignorar la alerta… los dbgrid usualmente emplean un recordset conectado a una database y cada vez que editas un DBGRID los cambios pasan directamente a la database o sea que a menos que se produzca un error los cambios ya estarían en la database y si el usuario cerrase el FORM por alguna vía tu perderías la oportunidad de auditar la información.
Veras los usuarios no necesitan trabajar con el 100% de los registros de una tabla; o sea que puedes filtrar aquellos registros que el usuario necesita procesar. Dicho esto se me ocurren 2 soluciones.
1. Creas un formulario extra para editar los registros, el DBGRID lo pones en modo lectura y en el evento dobleclick de esté y creas el código para pasar la información al nuevo FORM y en este se editan los datos. Así tienes todo el control auditable que necesitas.
2. Puedes crear un recordset desconectado con los campos de la database y este se conecta al DBGRID, inicialmente cargas los registros que quieres modificar en el recordset, haces las modificaciones que quieres en el DBGRID y pones un botón de actualizar en el FORM para que este revise el contenido del recordset y luego actualice la database… Si te intereza esta situación escribeme al correo
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
sin imagen de perfil
Val: 35
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Impedir celdas vacías en DataGrid de Vb6

Publicado por CARLOS (18 intervenciones) el 11/08/2020 04:49:00
Gracias por sus respuestas, intentaré probar así.
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 Roy
Val: 15
Ha aumentado su posición en 5 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Impedir celdas vacías en DataGrid de Vb6

Publicado por Roy (7 intervenciones) el 08/08/2020 19:18:15
Por lo general en estos casos lo que acostumbro es agregar un panel (o groupbox) en la parte inferior del DataGrid con tantos campos como celdas tenga el DataGrid. Cuando el usuario hace clic en uno d elos registros del DataGrid las celdas se cargan en sus respectivos campos en el GroupBox y desde ahi pueden editarse. Con un boton Actualizar que al hacer clic haga primero una validacion de cada uno de los campos y si todo esta bien (no hay campos vacios) entonces graba en DB y luego actualiza el DataGrid
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
sin imagen de perfil
Val: 35
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Impedir celdas vacías en DataGrid de Vb6

Publicado por CARLOS (18 intervenciones) el 12/08/2020 17:37:24
Ya lo solucioné, puse en el evento BeforeColUpdate del Datagrid, lo siguiente:

1
2
3
4
5
6
7
8
9
10
If ColIndex = 1 Or 2 Or 3 Or 4 Or 5 Or 6 Then
  With DataGrid1
    ' Len((.Columns(xx).Value) .. contiene el valor de la celda
    If Len(.Columns(0).Value) < 1 Or Len(.Columns(1).Value) < 1 Or Len(.Columns(2).Value) < 1 Or Len(.Columns(3).Value) < 1 Or Len(.Columns(4).Value) < 1 Or Len(.Columns(5).Value) < 1 Or Len(.Columns(6).Value) < 1 Then
     Cancel = True ' cancela
       MsgBox "Verifique que ninguna celde quede vacía.", vbExclamation
 
    End If
  End With
End If
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