Quiero ejecutar una accion al hacer click en el boton o
solapa de una pagina de un Control-Ficha, pero no lo
consigo. La pagina tiene el evento "al hacer clic", pero
pongas lo que pongas,.... no hace nada....¿ no debería ?
Solo lo he conseguido en el evento " on change" del propio
control en si, pero ejecuta la accion siempre, cada vez
que cambias de pagina y necesitaria que las acciones se
realizaran o nó segun la pagina que selecciones.
¿ como debo hacerlo ?
Gracias y Saludos
Mariló
Access 2000
En el evento "Al cambiar" del control y colocando, por
ejemplo una Select Case, tal que así:
Select Case Me.Solapas.Value
Case 0
... hacer lo de la primera solapa.
Case 1
... hacer lo de la segunda.
End Select
Saludos,
CarCar
MVP-Access
>-----Mensaje original-----
>.
>
Dim pg As Page
For Each pg In Me.nombrecontrolficha.Pages
If pg.PageIndex = 1 Then
...........
End If
...........
Next pg
Perfecto.....pero no logré averiguar para que sirve y como
se usan los eventos propios de la pagina del control
ficha ???
Gracias Carcar
>-----Mensaje original-----
>.
>
Curiosa esa manera de acceder a las páginas. :-)
Yo me quedé igual que tú cuando comprobé que el
evento "bueno" era el de "Al cambiar", aunque estuve
jugueteando intentando averiguar cosas sobre los eventos
de cada una de las solapas, algo descubrí, pero no me
servían para nada y ya se ma ha olvidado. ;-)
Saludos,
CarCar
MVP-Access
>.
>
Pues al final no me sirvió del todo lo del "for
each...next", porque aunque en realidad funciona bien, las
acciones a efectuar en cada pagina las hace
todas...quieras o no. Yo quería que al seleccionar una
pestaña en concreto se ejecutara la accion, pero solo para
esa pagina (los acciones de las otras paginas no).
Entonces enfocandolo de otro modo, la solucion que hallé
fue hacer algo asi como:
If Me.secundario.visible False then
If Me.nombredepagina.name = screen.activecontrol.name then
....accion
Me.secundario.Visible = true
end if
End If
Claro que esto obliga a que el foco se centre en la pagina
en si, por lo que no puede haber ningun otro control
activo en esa pagina.....En mi caso, me sirvió.
La cuestion es que tengo un control-ficha con
subformularios en cada pagina y para agilizar la carga
queria dejarlos sin objeto origen y vincularlos solo en el
momento de seleccionar la pagina en cuestion. Entonces con
esta ultima solucion, ponemos el subformulario
(secundario) no visible para la carga y luego al
seleccionar la pagina, lo vinculamos al formulario origen
y lo hacemos visible.... y parece que funciona (...aunque
en este mundo, lo mas probable es que exista una solucion
mas sencilla...quizas)
Saludos y gracias por la atencion
Marilo
Access 2000
>-----Mensaje original-----
>.
>
Bueno, la opción que te conté inicialmente, desde luego
funciona... :-)
Yo lo que haría en tu caso es dejar los subformularios,
una vez hayan sido diseñados, con la propiedad "Origen del
registro" en blanco.
Luego en la select sería algo como:
Select Case Me.Paginas.Value
Case 0
If Me.Subform1.Form.RecordSource = "" Then
Me.Subform1.Form.RecordSource = "ElOrigenDeEsteSubf1"
End If
Case 1
If Me.Subform2.Form.RecordSource = "" Then
Me.Subform2.Form.RecordSource = "ElOrigenDeEsteSubf2"
End If
Case 2
...
...
End Select
Saludos,
CarCar
MVP-Access
>.
>
Muchas gracias por tus respuestas. Probaré esto ultimo y
se tengo algun comentario volveré.
Saludos
Marilo
Access 2000
>-----Mensaje original-----
>Hola Marilo:
>
>Bueno, la opción que te conté inicialmente, desde luego
>funciona... :-)
>
>Yo lo que haría en tu caso es dejar los subformularios,
>una vez hayan sido diseñados, con la propiedad "Origen
del
>registro" en blanco.
>
>Luego en la select sería algo como:
>
>Select Case Me.Paginas.Value
>Case 0
> If Me.Subform1.Form.RecordSource = "" Then
> Me.Subform1.Form.RecordSource = "ElOrigenDeEsteSubf1"
> End If
>Case 1
> If Me.Subform2.Form.RecordSource = "" Then
> Me.Subform2.Form.RecordSource = "ElOrigenDeEsteSubf2"
> End If
>Case 2
>....
>....
>.
>