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:
Código:
Codigo a la carga del Formulario2:modoAsAc = "Añadir" AsigActividad.Show 1 DoEvents
Código:
La función Rellenar actividades rellena el combobox C_Actividad con las actividades correspondientes con el programa seleccionado en el Formulario1.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
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:
Código:
Solo la primera condición, el else no vale ahora.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
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
FORMULARIO2