Access - Modificar origen de registro de un subForm por med

 
Vista:
Imágen de perfil de Enrique Ramírez
Val: 37
Ha aumentado su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

Modificar origen de registro de un subForm por med

Publicado por Enrique Ramírez (629 intervenciones) el 06/03/2008 17:06:13
El origen de registro en un subformualrio a que propiedad equivale en codigo, ejemplo en una lista ó en un cuadro combinado el origen de la fila en codigo para actualizar la información por medio de una consulta es la propiedad RowSourse y después Requery pero en el subformualrio no existe la propiedad RowSource solo existe Requery ¿alguién de ustedes sabe cual propiedad debo utilizar para modificar el origen de registro con una consulta por medio de codigo?
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

RE:Modificar origen de registro de un subForm por

Publicado por Enrique (1299 intervenciones) el 06/03/2008 18:09:46
Hola José Enrique:
Esa propiedad es RecordSource y al establecerla por código, predomina sobre el Origen del Registro que tengas puesto en diseño. Por ejemplo, si tienes un subformulario insertado en un formulario y quieres cambiar el Origen del Registro del Subformulario mediante código pero desde el Formulario Principal, tendrías que poner, en el Evento que consideres oportuno:

Form_NombreSubForm.RecordSource = "Select Campo1, Campo2 From Tabla/Consulta Where..........."
Form_NombreSubForm.Requery

Prueba a ver si te vale.

Saludos
Enrique
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
Imágen de perfil de Enrique Ramírez
Val: 37
Ha aumentado su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

RE:Modificar origen de registro de un subForm

Publicado por Enrique Ramírez (629 intervenciones) el 06/03/2008 19:35:29
Tocayo gracias por contestar..... pero no me funcionó ya que en las propiedades del subformulario no me muestra RecordSource, me da el error "NO SE ENCONTRO EL METODO O DATO MIEMBRO" mi formulario principal se llama Formulario1 y mi subFormulario se llama Subformulario_cur_Requisitos1, el codigo que utilizo es el siguiente, bueno la consulta no tiene mayor problema la cosa es que no puedo actualizar la informacion del subformulario:

vSql = ""
vSql = "SELECT cur_Requisitos.Cve_Prg, cur_Requisitos.Cat_PRG_des_prg, " _
& "cur_Requisitos.Cve_Req, cur_Requisitos.des_req, cur_Requisitos.Cve_TpoReq, " _
& "cur_Requisitos.des_TpoReq, cur_Requisitos.BAJA, cur_Requisitos.num, cur_Requisitos.Respuesta " _
& "FROM cur_Requisitos " _
& "WHERE cur_Requisitos.Cve_Prg='" & Me.ccPrg.Column(0) & "'"

With Me.Subformulario_cur_Requisitos1
.RecordSource = vSql
.Requery
.Visible = True
End With

Gracias tocayo y recibe saludos....
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

RE:Modificar origen de registro de un subForm

Publicado por Yair Escudero (44 intervenciones) el 06/03/2008 19:46:26
Hola Enrique

Lo que sucede es que el subformulario es un control de los que llaman contenedor es decir sirve para contener otros objetos o controles, por eso este control no tiene la propiedad origen del control por el contrario tiene la propiedad Objeto Origen.

lo que debes hacer es tratar el subformulario como un formulario normal, el cual si tiene la propiedad RecordSource asi

Forms.Item("Subformulario ").RecordSource = vsql
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
Imágen de perfil de Enrique Ramírez
Val: 37
Ha aumentado su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

RE:Modificar origen de registro de un subForm

Publicado por Enrique Ramírez (629 intervenciones) el 06/03/2008 20:25:26
Yair gracias por contestar, ya lo probe pero me marca error:

ERROR 2450 EN TIEMPO DE EJECUCION.
NO PUEDE ENCONTRAR EL FORMULARIO 'Subformulario_cur_Requisitos1' AL QUE HACE REFERENCIA EN UNA EXPRESION DE MACRO O EN EL CODIGO DE VISUAL BASIC

mi codigo esta asi:
Forms.Item("Subformulario_cur_Requisitos1").RecordSource = vSql
tambien lo probe con me.
Forms.Item("me.Subformulario_cur_Requisitos1").RecordSource = vSql

Gracias.
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

RE:Modificar origen de registro de un subForm

Publicado por Enrique (1299 intervenciones) el 06/03/2008 20:54:44
Enrique, la solución que yo te indico es para cambiar o asignar el RecordSource directamente al Formulario que está insertado como Subformulario dentro del Principal y después hacerle un Requery al Control Subformulario para que lo refresque, que como bien dice Yair, es un Contenedor y puede tener un nombre diferente al del SubFormulario (que es un Formulario más en la ventana de Base de datos), Lo normal es que ambos tengan en mismo nombre pero parece que NO es tu caso. Y por supuesto que ese control no tiene la propiedad RecordSource.

Form_NombreFormExterno.RecordSource = vSql
Form_NombreControlSubForm.Requery

Repito, no confundas el nombre del formulario que hace de subformulario, con el nombre del Control Subformulario.

Suerte tocayo.
Enrique
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

Modificar origen de registro de un subForm por med

Publicado por Giovani Britton (1 intervención) el 04/10/2022 06:29:50
Se puede modificar el origen del registro de un subformulario mediante código VBA con la siguiente instrucción que puede ser colocada en un sub procedimiento del formulario principal (que alberga el subformulario) mediante un evento apropiado:

Con una referencia implícita al subformulario en el formulario principal que está en la colección Forms, utilizando la propiedad Form para hacer referencia al objeto (Form) contenido en el control subformulario, seguido por la propiedad RecordSource del mismo subformulario:

Forms!Nombre_FormularioPrincipal!Nombre_SubFormulario.Form.RecordSource= ConsultaSQL

ConsultaSQL es el texto SQL, encerrado entre comillas doble, de la consulta base que se asignará dinámicamente en el origen del registro del subformulario.
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