Access - Actualizar RecordSource en un subformulario

 
Vista:
sin imagen de perfil

Actualizar RecordSource en un subformulario

Publicado por JAVIER (18 intervenciones) el 17/03/2022 07:17:43
Tengo un formulario con un combobox que indica el orden que quiero ver los datos en un subformulario continuo llamado “InformeListado” y el control del formulario se llama “SubInformeListado”
.La SQL está bien ya que al cargar el formulario funciona perfectamente pero si quieo cambiar el orden mediane el combobox me da error ya que no reconoce Forms!InformeListado.
También he probado poniendo el mismo nombre al control subformulario que al formulario y he probado soluciones descritas en este mismo foro

1
2
3
4
5
6
7
Private Sub ComboOrden_AfterUpdate()
Set FmListado = Forms!InformeListado
Orden = Me.ComboOrden
SqlRecordSource = "SELECT [Datos2022].NumPersona, [Datos2022].Apellidos, [Datos2022].Nombre, [Datos2022].Telefono, [Datos2022].Email FROM Datos2022 ORDER BY [Datos2022]." & Orden & ";"
FmListado.RecordSource = SqlRecordSource
Me.SubInformeListado.Requery
End Sub

Muchas gracias por vuestra ayuda
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

Actualizar RecordSource en un subformulario

Publicado por Anonimo (3316 intervenciones) el 17/03/2022 09:39:03
.Cuando se utiliza a un formulario como objeto de un formulario (= sub-formulario) se le tiene que indicar a Access que el objeto en cuestión es : un formulario con todas sus propiedades (no un simple cuadro de texto).

La sintaxis para referenciar a un subformulario:

Formulario_A = formulario principal
Formulario_B = subformulario
Nombre_Pais = objeto cuadro de texto del subformulario (Formulario_B)

Si la referencia es absoluta:
1
Forms.Formulario_A.Formulario_B.FORM.Nombre_Pais = "Alemania"

Si la referencia es relativa:
1
Me.Formulario_B.FORM.Nombre_Pais = "Alemania"

Esto funcionara así:
-original-

1
2
3
4
Orden = Me.ComboOrden
SqlRecordSource = "SELECT [Datos2022].NumPersona, [Datos2022].Apellidos, [Datos2022].Nombre, [Datos2022].Telefono, [Datos2022].Email FROM Datos2022 ORDER BY [Datos2022]." & Orden & ";"
FmListado.RecordSource = SqlRecordSource
Me.SubInformeListado.Requery

Opción:

1
2
3
4
5
6
7
8
'Si 'comboOrden' devuelve un dato numérico
SqlRecordSource = "SELECT NumPersona, Apellidos, Nombre, Telefono, Email FROM Datos2022 ORDER BY " & Me.ComboOrden
 
'Si 'comboOrden' devuelve un dato texto (alfanumerico)
SqlRecordSource = "SELECT NumPersona, Apellidos, Nombre, Telefono, Email FROM Datos2022 ORDER BY '" & Me.ComboOrden & "'"
 
Me.SubInformeListado.FORM.RecordSource = SqlRecordSource
Me.SubInformeListado.Requery
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Actualizar RecordSource en un subformulario

Publicado por JAVIER (18 intervenciones) el 17/03/2022 10:16:41
Muchas gracias
Funciona perfecamente
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