Visual Basic - No entiendo

Life is soft - evento anual de software empresarial
   
Vista:

No entiendo

Publicado por Llaverin (70 intervenciones) el 11/12/2007 13:24:45
Hola a tod@s:
Estoy realizando una aplicacion en visual basic 6.0 con base de datos SQL, y me conecto a traves de ADO.

Tengo un formulario principal (padre) que tiene sus hijos correspondientes.

Uno de los hijos, es un formulario de consulta, en donde los resultados se ven en un MsFlexGrid, cuando haces doble click sobre uno de ellos, te lleva a otro formulario donde ves la información, pero antes de ello, compruebo si el formulario información esta abierto.

El problema es cuando compruebo si el formulario información esta abierto o no, mediante esta condicion:
If frmInformacion.Visible = True Then
Msgbox "Tiene un formulario abierto, debe cerrarlo antes de abrir uno nuevo", vbInformation
Else
frmInformacion.Show
End If

Pues en donde pongo:
If frmInformacion.Visible = True Then
Se me va a ese formulario, con lo cual me dice que ya esta abierto, hay alguna manera de controlarlo?

No se como hacerlo y me estoy volviendo loca.

Espero que entendais lo que os quiero decir.

Muchas gracias de antemano.

Saludos
Ana
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

RE:No entiendo

Publicado por Llaverin (70 intervenciones) el 11/12/2007 18:01:48
Hola de nuevo:
Buscando, buscando he encontrado la solución.

He creado una función, en donde me comprueba si hay algun formulario abierto, lo pongo por si alguien tiene el mismo problema:

En la funcion Aceptar pongo
Dim vForm as string

vForm = frmMiFormulario.Caption
vComprobar= IsLoadForm(vForm)

If vComprobar= True Then
Msgbox "Tiene un formulario abierto, debe cerrarlo antes de abrir uno nuevo", vbInformation
Else
frmInformacion.Show
End If

Y en la función pongo esto:
Public Function IsLoadForm(ByVal FormCaption As String) As Boolean
Dim rtn As Integer, i As Integer

Do Until i > Forms.Count - 1 Or rtn
If LCase(Forms(i).Caption) = LCase(FormCaption) Then rtn = True

i = i + 1
Loop

IsLoadForm = rtn
End Function

Espero que lo entendais.

Saludos
Ana
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