Visual Basic - Problema extraño entre 2 formularios y un MSFlexgrid

Life is soft - evento anual de software empresarial
 
Vista:

Problema extraño entre 2 formularios y un MSFlexgrid

Publicado por acid_burd (13 intervenciones) el 02/03/2012 12:30:04
Buenas, vengo con un problema rariiisomo al cual no encuentro explicación y no he sido capaz de solucionar, a ver si alguien sabe porque pasa esto. Expongo el problema.

Tengo 2 formulario. Adjuntados como Formulario1 y Formulario2. En el formulario1 elijo un programa en el combobox superior. Cada programa tiene sus actividades por lo que pulse el botón gris Añadir para Añadir una nueva actividad que llama al Formulario2. Código del botón:

1
2
3
modoAsAc = "Añadir"
AsigActividad.Show 1
DoEvents


Codigo a la carga del Formulario2:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
RellenarActividades
    FSolicitud.Value = Now
 
    If modoAsAc = "Editar" Then
        Dim contador As Integer
        For contador = 0 To C_Actividad.ListCount - 1
            If C_Actividad.ItemData(contador) = Val(Asig_Centros.M_Actividad.TextMatrix(Asig_Centros.M_Actividad.Row, 0)) Then
                Exit For
            End If
        Next contador
 
        C_Actividad.ListIndex = contador
        FSolicitud.Value = CDate(Asig_Centros.M_Actividad.TextMatrix(oMiGrid.Row, 2))
        C_Estado.Text = Asig_Centros.M_Actividad.TextMatrix(oMiGrid.Row, 3)
        C_Actividad.Locked = True


La función Rellenar actividades rellena el combobox C_Actividad con las actividades correspondientes con el programa seleccionado en el Formulario1.
FSolicitud es un datapiker y C_Estado en un combobox.

Bien, una vez que tengo mis datos de la actividad seleccionados pulso el botón Aceptar que lo que hace es pasar la información del Formulario2 al MSFlexGrid que hay en la parte inferior del Formulario1 (Al cual se se cargo una primera fila con las cabeceras al cargar el Formulario1).
Código del botón Aceptar:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
If modoAsAc = "Añadir" Then
        If validaractividad = 0 Then
            Dim fila As Integer
           fila = Asig_Centros.M_Actividad.Rows
            Asig_Centros.M_Actividad.Rows = Asig_Centros.M_Actividad.Rows + 1
 
            Asig_Centros.M_Actividad.TextMatrix(fila, 0) = Me.C_Actividad.ItemData(C_Actividad.ListIndex)
            Asig_Centros.M_Actividad.TextMatrix(fila, 1) = Trim(C_Actividad.Text)
            Asig_Centros.M_Actividad.TextMatrix(fila, 2) = Format(Me.FSolicitud.Value, "dd/mm/yyyy")
            Asig_Centros.M_Actividad.TextMatrix(fila, 3) = Trim(Me.C_Estado.Text)
            Asig_Centros.M_Actividad.Refresh
 
        End If
    Else
        If modoAsAc = "Editar" Then
            Asig_Centros.M_Actividad.TextMatrix(Asig_Centros.M_Actividad.Row, 0) = Me.C_Actividad.ItemData(C_Actividad.ListIndex)
            Asig_Centros.M_Actividad.TextMatrix(Asig_Centros.M_Actividad.Row, 1) = Trim(C_Actividad.Text)
            Asig_Centros.M_Actividad.TextMatrix(Asig_Centros.M_Actividad.Row, 2) = Format(Me.FSolicitud.Value, "dd/mm/yyyy")
            Asig_Centros.M_Actividad.TextMatrix(Asig_Centros.M_Actividad.Row, 3) = Trim(Me.C_Estado.Text)
 
        End If
        Unload Me
    End If

Solo la primera condición, el else no vale ahora.
Bien, pues aquí está el problema y es que si ejecuto este código normalmente, no solo no me pasa nada al MSFlexGrid M_Actividad del Formulario1 sino que también me borra el programa que habia seleccionado en el combobox. Pero si pongo un punto de parada en la condición If y voy linea por linea pero sin hacer ningún cambio ni nada ni ningún tipo de inspección, los datos pasan al Formulario1 perfectamente.

La verdad es que no se porque pasa esto, para mi es un autentico misterio. ¿Alguien sabe a que puede deberse esto?

Mil gracias por la ayuda

Un saludo

FORMULARIO1
http://es.zimagez.com/zimage/formulario10.php

FORMULARIO2
http://es.zimagez.com/zimage/formulario2.php
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