Pregunta sobre evento OnOpen
Querido experto!
¿Me podrías echar una mano con este problema?
Quiero poner un botón en un formulario (llamado "general") que me abra otro
formulario pero de la siguiente manera: quiero que el origen del registro de
este nuevo formulario venga dado por un campo (llamado también"general") del
formulario donde voy a poner el botón.
Nota: el formulario a cambiar el origen del registro viene dado también por
el campo "nombre" del formulario este donde pongo el botón (=Me!)
Lo he probado con la propiedad RecordSource de la siguiente manera:
Forms(Me!Nombre).RecordSource = "" & Me![General] & "".
Ok.De esta manera va bien. Como que si pones Forms ha de ser un formulario ya
abierto, tengo que poner la instrucción de abrir antes que esta. Como que
ademas luego quiero filtrar este formulario según unas cosas (no interesa)
Tengo que volver a poner la instrucción abrir. Queda todo junto así:
DoCmd.OpenForm "" & Me![Nombre] & ""
Forms(Me!Nombre).RecordSource = "" & Me![General] & ""
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "" & Me![Nombre] & ""
stLinkCriteria = "[CRUDO]=" & "'" & Me![CRUDO] & "'"
stLinkCriteria = "[ACABADO]=" & "'" & Me![ACABADO] & "'"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Pero si esto lo quiero hacer exactamente igual pero con un informe, no me
sale. Me dice que la propiedad RecordSource no se puede ejecutar después de
haber abierto el informe. Pero como ya he dicho antes, tampoco puede ir
delante (Forms/Reports hace referencia sólo a objetos abiertos). El
ordenador me sugiere ponerlo en el evento OnOpen aquí en este mismo código.
¿Cómo se haría? ¿Tienes alguna otra idea?
¿Me podrías echar una mano con este problema?
Quiero poner un botón en un formulario (llamado "general") que me abra otro
formulario pero de la siguiente manera: quiero que el origen del registro de
este nuevo formulario venga dado por un campo (llamado también"general") del
formulario donde voy a poner el botón.
Nota: el formulario a cambiar el origen del registro viene dado también por
el campo "nombre" del formulario este donde pongo el botón (=Me!)
Lo he probado con la propiedad RecordSource de la siguiente manera:
Forms(Me!Nombre).RecordSource = "" & Me![General] & "".
Ok.De esta manera va bien. Como que si pones Forms ha de ser un formulario ya
abierto, tengo que poner la instrucción de abrir antes que esta. Como que
ademas luego quiero filtrar este formulario según unas cosas (no interesa)
Tengo que volver a poner la instrucción abrir. Queda todo junto así:
DoCmd.OpenForm "" & Me![Nombre] & ""
Forms(Me!Nombre).RecordSource = "" & Me![General] & ""
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "" & Me![Nombre] & ""
stLinkCriteria = "[CRUDO]=" & "'" & Me![CRUDO] & "'"
stLinkCriteria = "[ACABADO]=" & "'" & Me![ACABADO] & "'"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Pero si esto lo quiero hacer exactamente igual pero con un informe, no me
sale. Me dice que la propiedad RecordSource no se puede ejecutar después de
haber abierto el informe. Pero como ya he dicho antes, tampoco puede ir
delante (Forms/Reports hace referencia sólo a objetos abiertos). El
ordenador me sugiere ponerlo en el evento OnOpen aquí en este mismo código.
¿Cómo se haría? ¿Tienes alguna otra idea?
Respuesta de xurelo