Problemas con Formularios

Tengo un proyecto en vb 6.0 al realizar una plaicacion de calculo el formulario se pone blanco como si no se estuviera haciendo ninguna aplicación pero al finalizar la operació se restablece el formulario, ¿por qué pasa eso?
Respuesta
1
Es porque se pierde el control del formulario, el control pasa absolutamente al sistema operativo y no se redibuja el formulario.
Para el caso de VB 6.0 hay que utilizar una instrucción, que si mal no recuerdo es DoEvents
¿Pero el doevents en que momento se puede poner cunado mando a realizar el calculo?
¿En qué momento lo pongo?
Private Sub txtfecfin_Validate(Cancel As Boolean)
 Cancel = False
 If IsNull(txtfecfin.DateString) Then
    Cancel = True
 Else
    limpiasaldo ' aquí limpio los movimientos del mes
calsaldo ' aquimando a calcular
    Set TKARDEX = Nothing
    Set TKARDEX = New ADODB.Recordset
    ssql = "SELECT * FROM EMPRESA "
    TKARDEX.Open ssql, Dbinventario, adOpenDynamic, adLockOptimistic, adCmdText
    If Hallado(TKARDEX.BOF, TKARDEX.EOF) = True Then
       TKARDEX!FECHA_A_INV = txtfecfin
       TKARDEX.Update
    End If
    TKARDEX.Close
    MsgBox "Proceso ha Concluido, <<< Favor Cierre El Formulario >>>"
 End If
End Sub
Si me das estarespuesta te lo agradecerá mucho
Donald
Tenddría que ser dentro del procedimiento de calsaldo
Ponerlo antes o después no tiene sentido, porque el proceso que congela la pantalla es el que se tarda más. Dentro de calsaldo debe de haber un ciclo for que se repite una gran cantidad de veces, lo mejor es poner el doEvents dentro del ciclo más interno.
Éxitos
Julius (Guatemala)
Muchas gracias voy aprobarlo y después te informa si me resulta.
Donald Aragón
Nicaragua
Veo que también hay un procedimiento limpiasaldo, si ese se hace con un ciclo hay que poner DoEvents ahí también
Si se hace con una instrucción de Base de Datos (un update por ejemplo) en una sola sentencia, es poco lo que se puede hacer, ya que el control lo tiene la base de datos mientras está limpiando los registros.
Julius (Guatemala)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas