Access - error al cerrar un formulario acces 2003

   
Vista:

error al cerrar un formulario acces 2003

Publicado por juan bautista peris juanperis@hotmail.com (7 intervenciones) el 17/07/2015 13:41:00
intento cerrar un formulario para entrar en otro y me salta el error 2501 en tiempo de ejecucion. Tengo puesto esto en el generador de codigo, ayuda porfavor

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub Cuadro_combinado109_NotInList(NewData As String, Response As Integer)
strMsg = "El establecimiento (" & NewData & ") no existe en la base de datos.""¿Nuevo Establecimiento?"
    ' Preguntamos
    If MsgBox(strMsg, vbQuestion + vbYesNo, "AVISO") = vbNo Then
        Response = acDataErrContinue
        Exit Sub
       Else
        DoCmd.OpenForm "Establecimientos", acNormal, "", "", , acNormal
        Form_Establecimientos.SetFocus
        Form_Establecimientos.TITULAR.Value = NewData
        Response = acDataErrAdded
     End If
 DoCmd.Close acForm, "Actas 2015 Consulta"
End Sub
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

error al cerrar un formulario acces 2003

Publicado por Enrique Heliodoro (1663 intervenciones) el 17/07/2015 15:59:54
Es correcto el mensaje, se le indica que cierre un formulario que no se abrió aun o esta en un proceso indefinido (una cosa es dar la orden y otra que esta se cumplimente)

La causa esta en que no se le activa (en la llamada) la propiedad MODAL al formulario asi que el código no se detiene y salta a la línea que lo cierra

Un clásico para casos como este, consiste en abrirlo modal, enviar como un argumento el dato (el NewData) y cuando se cierre (ya abra asentado los datos en el destino) se refresca el objeto para que aparezca el nuevo valor ... etc.

Por cierto, en este método sobraría el enviar el foco (lo toma por defecto y no lo comparte), también la línea que asigna el valor (se le envía como argumento) y desde luego el cierre, dado que regresara al punto siguiente de ese código al cerrarse.
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
Imágen de perfil de douglas

error al cerrar un formulario acces 2003

Publicado por douglas (280 intervenciones) el 17/07/2015 17:41:06
intenta así

DoCmd.Close acForm, Me.name



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

error al cerrar un formulario acces 2003

Publicado por Enrique Heliodoro (1663 intervenciones) el 17/07/2015 18:56:51
Me implica desde siempre al formulario actual, no creo que sea el formulario que desea cerrar y (sospecho) que estando en pleno evento y sin guardar datos, supondrá un obstáculo.
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
Imágen de perfil de douglas

error al cerrar un formulario acces 2003

Publicado por douglas (280 intervenciones) el 17/07/2015 19:15:02
Si enrique el que desea cerrar es el que lo llevo al otro, míralo bien esta luego del endif
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

error al cerrar un formulario acces 2003

Publicado por juan bautista peris (7 intervenciones) el 20/07/2015 10:09:00
lo que deseo es cerrar el formulario actual para asi luego volver y que me salga registrado lo que he añadido en el cuadro de lista. Gracias
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

error al cerrar un formulario acces 2003

Publicado por juan bautista peris (7 intervenciones) el 20/07/2015 10:06:23
Me continua saltando el mismo error
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

error al cerrar un formulario acces 2003

Publicado por Enrique Heliodoro (1663 intervenciones) el 20/07/2015 13:59:54
Un formulario permitirá su cierre cuando se finalicen todas las acciones pendientes de ejecutar y siempre y cuando el registro actual (los campos que tenga como requeridos en su origen) lo consientan, pues por defecto al cerrarse intenta guardar los registros o cambios.

Sospecho que el cuadro combinado es parte de 'los deberes inacabados' y por ello se queja.

Además ... cerrar el formulario para que al volver ... eso carece de sentido, normalmente se utiliza la función 'Requery' que (si las anteriores condiciones se cumplen) hace eso mismo en un único paso.

Tengo que insistir en que lo que pretendes (y que le hace la competencia a Matusalén) se acostumbra a hacer abriendo el formulario llamándolo con su propiedad MODAL activada, de forma que interrumpa el código en ejecución y (ya sin necesidad de pasarle el foco, pues lo adquiere por derecho propio) permita crear ese nuevo dato para que cuando se cierre 'al volver al punto siguiente en que dejo el código pausado' simplemente con refrescar el contenido de ese objeto aparezca el nuevo elemento (y sin el estropicio de cerrar y abrir el formulario).
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

error al cerrar un formulario acces 2003

Publicado por juan bautista peris (7 intervenciones) el 21/07/2015 09:30:00
el problema es que si no se cierra el formulario no se actualiza y al volver no me deja actualizar, me salta el cuadro de texto donde pone si quiero agregar el nuevo establecimiento y en ese punto no encuentro salida, por eso buscaba cerrar y abrir, para actualizarlo de forma automatica. Gracias
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

error al cerrar un formulario acces 2003

Publicado por Enrique Heliodoro (1663 intervenciones) el 21/07/2015 10:18:13
'REQUERY' es una sentencia que simplemente refresca el contenido del formulario, de forma casi transparente cierra y vuelve a abrir el formulario, pero eso no es la solución a un trabajo inacabado y mal planteado.

Inacabado, porque se esta en pleno evento, mal planteado porque no se aplica la metodología correcta para esa especifica función.

Te lo planteare en otro entorno

Vas a cocinar una tortilla de patatas y comienzas por la elaboración de las patatas (mondarlas, cortarlas, cocinarlas) ...
A la hora de añadir los huevos, resulta que no los has batido así que ....

Opciones:

1.- apartas del fuego a las patatas cocinadas, bates los huevos y terminas la tortilla

2.- tiras lo cocinado, bates los huevos y vuelves a preparar 'una nueva sesión de patatas' para después añadir el huevo ya batido.

Según lo expuesto antes qué método es el correcto ¿el uno o el dos? y ...¿Cuál crees que estas aplicando tu ahora?
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

error al cerrar un formulario acces 2003

Publicado por juan bautista peris (7 intervenciones) el 22/07/2015 09:33:13
Segun usted, ¿cual seria la forma correcta de plantearlo? Gracias de antemano
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

error al cerrar un formulario acces 2003

Publicado por Enrique Heliodoro (1663 intervenciones) el 22/07/2015 10:48:04
El juego de responder con una pregunta a otra pregunta es algo que va 'en mi esencia' (o de eso tenemos fama los de mi entorno), algo que procuro evitar en la medida de lo posible.

Creo que intentáis (en general) dar pasos las largos de los que os permite la actual 'longitud de vuestras piernas' y ello da lugar a un continuo rosario de fracasos.

Lee este mensaje:
http://www.lawebdelprogramador.com/foros/Access/1506182-abrir-formulario-desde-subformulario.html

Haz lo mismo y convierte la macro en VBA (así lo podrás analizar mas pormenorizadamente) y tras ello aplica el método que creas mas adecuado de los dos antes expuestos (algo de lo que a momento actual carezco de lo que se conoce como 'mensaje de retorno').

NOTA:
La función 'REQUERY' también puede actuar a nivel de objeto y si las cosa se hacen en el orden adecuado, basta con refrescar el contenido de ese objeto para tener disponible el elemento recién creado.
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

error al cerrar un formulario acces 2003

Publicado por juan bautista peris (7 intervenciones) el 22/07/2015 12:09:20
No soy programador y me cuesta mucho este mundillo, gracias por solucionar y aclarar diversas dudas, sigo sin encontrar la solución al problema pero continuare trabajando en ello
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

error al cerrar un formulario acces 2003

Publicado por Enrique Heliodoro (1663 intervenciones) el 22/07/2015 12:29:34
Programar es razonar, si no eres capaz de razonar te será imposible programar (y tomar decisiones y comportarte como un humano y ....).

Lo único que tienes que hacer es crecer y para crecer en este mundillo hay que interpretar, practicar lo interpretado y sacar conclusiones de los resultados obtenidos.

Hay otra vía de solución: encargárselo a otro y dedicarse a otros menesteres sobre los cuales se pueda ejercer alguna suerte de dominio.
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

error al cerrar un formulario acces 2003

Publicado por juan bautista peris (7 intervenciones) el 23/07/2015 09:31:45
Claro que si campeon, si no te conoces ni la mitad de codigos es muy dificil.

pd: tu ayuda es muy buena y te la agradezco pero no seas tan prepotente
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

error al cerrar un formulario acces 2003

Publicado por Enrique Heliodoro (1663 intervenciones) el 23/07/2015 12:22:58
Es muy sencillo tomar la senda de 'no hacer nada' o poner un escaso interés, no dedicarle unos minutos a razonar lo que se tiene y lo que se desea y todo ello junto en el mismo paquete: hacerse la victima y acusar al resto de prepotencia

Aun sin resolver la cuestión planteada anteriormente, a mi particular juicio solo intentas lograr una solución de 'copiar y pegar' con la premisa de que 'no se es programador' (que tendrá que ver dedicarse como chofer al transporte con saber conducir).

Deja de lamentarte y dedícale unos minutos (con papel y lápiz) a trazar la línea que deseas seguir en tu aplicación, 'los comandos' vendrán mas tarde (y siempre estará disponible 'F1', que nadie nació sabiendo)
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