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:
Codigo a la carga del Formulario2:
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:
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
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


0