PDA

Ver la versión completa : Problema de visual basic en acces 97



Jamel
21/11/2003, 08:12
Hola a todos, soy un profano en esto de la programación pero en algo hay que ocupar la mente, bueno a lo ibamos tengo un problema con Acces 97 y Visual basic os comento:

Tengo un formulario con 2 campos Si/No (Firmado y Hecho pte firma)lo que hace es que cuando uno pasa a "Si" el otro automaticamente pasa a "No" y a la inversa, y lo hago con las siguientes lineas

Private Sub Firmado_Click()

If [Firmado] = True Then

Forms![Incidencias Subformulario]![Hecho pte firma] = False
Forms![Incidencias Subformulario]![Procede] = True

End If

End Sub

Private Sub Hecho_pte_firma_Click()

If [Hecho pte firma] = True Then

Forms![Incidencias Subformulario]![Firmado] = False
Forms![Incidencias Subformulario]![Procede] = True

End If

End Sub


Hasta aquí todo correcto y sin ningún problema. El problema comienza cuando el formulario es un subformulario me explico:

Con esas lineas y entrando directamente al subformulario me ejecuta todo bien, la cosa cambia cuando abro el formulario donde esta incluido dicho subformulario y al ir a cambiar uno de los 2 campos de un registro pues me da error de compilación y me dice que no encuentra ninguno de los campos (del subformulario), entonces mi pregunta es como puedo hacer que esas acciones se realicen desde el formulario principal.

Muchas gracias a todos y espero no haber sido muy confuso en mi explicación

jgutierrez
21/11/2003, 08:19
Lo siento, no acabo de entender tu problema.
Que quieres decir con subformulario un MDI child?

Jamel
21/11/2003, 08:48
Si sabia yo que muy bien no me estaba explicando

Bueno trato de hacerlo más gráfico:

Un formulario continuo en los cuales hay 2 campos “Si/No” y quiero que cuando uno sea “Sí” el otro automáticamente ponga “NO” y viceversa. Entonces pongo las líneas de código del anterior post y todo resuelto sin ningún problema.

Ahora quiero que haga lo mismo en un Subformulario que a su vez (como ya sabrás) está dentro de un formulario, bien, meto las líneas de código en el Subformulario y me sale este error

---------------
Se ha producido un erro’2450’ en tiempo de ejecución:

Microsoft Access no puede encontrar el formulario “Incidencias Subformulario” al que hizo referencia en una expresión de macro o en el código de Visual Basic.

* Es posible que el formulario al que se hizo referencia esté cerrado, se haya eliminado o no exista en esta base de datos.
* Microsoft Access encontró un error de compilación en un módulo de Visual Basic para el formulario.
-----------------

Los campos existen ya que si entramos en ese Subformulario directamente y no ha través del formulario pues las líneas de código funcionan perfectamente.

Si necesitaras más explicación o imágenes dime que cuenta de correo tienes porque estoy en el trabajo y no puedo subir cosas por FTP.

jgutierrez
21/11/2003, 09:16
Parece que ahora ya entiendo tu problema.
primero decirte que no tiene nada que ver con Visual Basic (VB) como dice el asunto, sino con Visual Basic for Applications (VBA). Son lenguajes parecidos pero diferentes.

El problema que tienes está en la forma en como accedes por código a los subformularios. En el modelo de objetos de Access, los subformularios no se agregan a la colección forms global, sino que se agregan a la colección forms de cada formulario padre.

Tu código para acceder a los elementos del subformulario debería ser algo del estilo:
Forms![Formulario].Form![Incidencias Subformulario]![Firmado]

Jamel
21/11/2003, 09:29
SIIIIIIIIIIIIII, muchas gracias funciona, me uno al post que te decia que eres la leche, tio lo eres de verdad, hasta luego y gracias de nuevo.

jgutierrez
21/11/2003, 10:25
Al final hareis que me ponga colorado...
:-)