Actualizar Subformulario mediante un campo

Tengo un formulario llamado "ActualizarAsistencia"

En el tengo tres campos: uno llamado "CeboRed", el segundo "CeboMentor" y el tercero "CeboCirculo"

En cada uno hay un código después de actualizar

Para "Red",

Me.CeboMentor = ""
Me.CeboCirculo = ""
Me.Refresh
Dim rst As Object
Set rst = Me.ActualizarAsistencia.Form.RecordsetClone
If Not rst.EOF Then
rst.MoveLast
Me.ActualizarAsistencia.Form.Bookmark = rst.Bookmark
End If

Set rst = Nothing

Para "Mentor":

Me.CeboCirculo = ""
Me.Refresh
Dim rst2 As Object
Set rst2 = Me.ActualizarAsistencia.Form.RecordsetClone

If Not rst2.EOF Then
rst2.MoveLast
Me.ActualizarAsistencia.Form.Bookmark = rst2.Bookmark

End If

Set rst2 = Nothing

Para "Circulo":

Me.Refresh
Dim rst3 As Object

Set rst3 = Me.ActualizarAsistencia.Form.RecordsetClone

If Not rst3.EOF Then
rst3.MoveLast
Me.ActualizarAsistencia.Form.Bookmark = rst3.Bookmark
End If

Set rst3 = Nothing

En el subformulario uso la consulta:

SELECT Asistencia.IdAsistencia, Asistencia.Fecha, Asistencia.Adultos, Asistencia.Niños, Asistencia.Visitas, Asistencia.Observación, Asistencia.IdRed, Asistencia.IdMentor, Asistencia.IdCirculo
FROM Asistencia
WHERE (((Asistencia.IdRed) Like "*" & [Formularios]![ActualizarAsistencia]![CeboRed] & "*")
AND ((Asistencia.IdMentor) Like "*" & [Formularios]![ActualizarAsistencia]![CeboMentor] & "*")
AND ((Asistencia.IdCirculo) Like "*" & [Formularios]![ActualizarAsistencia]![CeboCirculo] & "*"));

Sucede que al actualizar el campo "ceboMentor" no me actualiza.

Ya lo probé crear el campo nuevamente y he determinado que el único que no me trabaja es el "CeboMentor" ya que si le quito el criterio en la tabla de origen de registro veo que los otros dos funcionan.

¿Podrían colaborarme?

1 respuesta

Respuesta
1

La verdad es que apenas entendía la pregunta, pero por lo que dices tengo la impresión que los combinados son independientes y que tienen al menos dos columnas, la dependiente con el Id y la segunda con un nombre, o una sola con el id, no lo sé. Tampoco sé si los valores que aparecen en el origen de la fila están en una misma tabla, en tres tablas relacionadas, o es la propia tabla Asistencia

Vamos a suponer que están en tres tablas distintas, relacionadas. Porqué no pruebas a dejar en blanco el origen de la fila de cada combinado y en sus propiedades-eventos-al recibir el enfoque del primero pones

cebored.rowsource="select Idred,nombrered from la Red group by idred,nombrered"

en el segundo

cebomentor.rowsource="select Idmentor,nombrementor from Mentores where idred=" & me.idred & ""

y en el tercero

cebocirculo.rowsource="select idcirculo,nombrecirculo from Circulos where idmentor=" & me.idmentor& ""

Y en este último, en sus evento después de actualizar sólo tienes que poner

me!asistencias.form.recordsource="select * from asistencias where idcirculo =" & me.idcirculo & ""

Por ejemplo, supongamos que tengo el formulario con el subformulario Clientes, tal que

Al elegir un continente, cuyo combinado no tiene origen de la fila, el combinado pais, que tampoco tiene, sólo me muestra aquellos países de ese continente

Al elegir España

Y si elijo, por ejemplo, Madrid

En este caso tengo tres tablas Continentes, Paises y Ciudades, relacionadas Continente con Pais por el campo Continente y Ciudades con Paises por el campo Pais. Y el código es simplemente

Private Sub Ciudad_AfterUpdate()
Me!Clientes.Form.RecordSource = "select * from clientes where ciudad='" & Me.Ciudad & "'"
End Sub
Private Sub Ciudad_GotFocus()
Ciudad.RowSource = "Select ciudad from ciudades where pais='" & Me.Pais & "' order by ciudad"
End Sub
Private Sub Continente_GotFocus()
Continente.RowSource = "select continente from continentes order by continente"
End Sub
Private Sub Pais_GotFocus()
Pais.RowSource = "select pais from paises where continente='" & Me.Continente & "' order by pais"
End Sub

Estudiaré lo que  me enviaste luego te comento, saludos

Buenas noches, me ha servido tu solución, ya la implementé, quisiera saber como puedo agregar el criterio  Baja me le ponga "Falso", lo he intentado así y no me funciona, creo que lo he estructurado mal:

CeboRed.RowSource = "select Idred,NombreRed from Red group by Idred,NombreRed HAVING Baja =  Falso"

y

como puedo agregar dos criterios el IdRed = Me.Id y el criterio Baja =Falso, sabiendo que Id es un múmero y Baja es letra

Me.SubUpCirculos.Form.RecordSource = "select * from Circulo where  IdRed=" & Me.CeboRed & ""

Saludos

Yo lo pondría como

CeboRed.RowSource = "select Idred,NombreRed from Red where Baja=""Falso"" group by Idred,nombrered"

y en lo otro, suponiendo que sea lo mismo

Me.SubUpCirculos.Form.RecordSource = "select * from Circulo where  IdRed=" & Me.CeboRed & " and baja=""Falso"""

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas