Nombre Formulario sustituirlo por valor de variable
Ante todo
Este es un procedimiento que realizo de un formulario a otro el cual me permite la captura de datos
Consulta = "SELECT * FROM Pacientes WHERE Id = " & Me.LstPacientes & ""
Set miRs = CurrentDb.OpenRecordset(Consulta, dbOpenForwardOnly)
With miRs
Forms![ASTO]![TxtCedula] = !Cedula
Forms![ASTO]![TxtPaciente1] = !Paciente1
Forms![ASTO]![TxtPaciente2] = !Paciente2
Quisiera sustituir el nombre del formulario por una variable la cual contiene el nombre del formulario donde se cargarán estos datos.
Forms![Variable]![TxtCedula] = !Cedula
Forms![Variable]![TxtPaciente1] = !Paciente1
Forms![Variable]![TxtPaciente2] = !Paciente2
1 Respuesta

Elaboré este ejemplo con un cuadro combinado pero la idea es la misma.
Selecciono el paciente JOSE
Me abre el formulario con los datos de JOSE.
CÓDIGO DEL EVENTO DESPUES DE ACTUALIZAR DEL CUADRO COMBINADO
Private Sub cboPacientes_AfterUpdate() Dim mform As Form DoCmd.OpenForm "frmElegido" Set mform = Forms!frmElegido With mform .text1 = Me.cboPacientes.Column(1) .text2 = Me.cboPacientes.Column(2) End With End Sub
En el ejemplo utilizo Column() para tomar el valor del cuadro combinado.

Gracias Por Tu repuestas Eduardo, El Proceso de cargar los datos de un formulario a otro no tengo Problema, Tengo un Formulario Origen y uno Destino (Donde se encuentra el Listado) del cuál escogeré el registro necesario, este proceso lo voy a utilizar para vario Formulario pero el Formulario Destino de Los datos es único, tengo un procedimiento
Dim FormAct As Form
Set FormAct = Screen.ActiveForm
DoCmd.OpenForm "ListaPacientes"
Forms!ListaPacientes.TxtForm.Value = FormAct.Name
Cargo el nombre del Formulario a un TxtBox del Formulario de la Lista
Trate de realizarlo así
Dim NombreF As Variant
NombreF = Me.TxtForm.Value
Trate de hacerlo así pero no funciona
Forms![Me.TxtForm]![TxtCedula] = !Cedula
Gracias Por Tu repuestas Eduardo, El Proceso de cargar los datos de un formulario a otro no tengo Problema, Tengo un Formulario Origen y uno Destino (Donde se encuentra el Listado) del cuál escogeré el registro necesario, este proceso lo voy a utilizar para vario Formulario pero el Formulario Destino de Los datos es único, tengo un procedimiento
Dim FormAct As Form
Set FormAct = Screen.ActiveForm
DoCmd.OpenForm "ListaPacientes"
Forms!ListaPacientes.TxtForm.Value = FormAct.Name
Cargo el nombre del Formulario a un TxtBox del Formulario de la Lista
Trate de realizarlo así
Dim NombreF As Variant
NombreF = Me.TxtForm.Value
Trate de hacerlo así pero no funciona
Forms![Me.TxtForm]![TxtCedula] = !Cedula
IMAGENES

Gracias Por Tu repuestas Eduardo, El Proceso de cargar los datos de un formulario a otro no tengo Problema, Tengo un Formulario Origen y uno Destino (Donde se encuentra el Listado) del cuál escogeré el registro necesario, este proceso lo voy a utilizar para vario Formulario pero el Formulario Destino de Los datos es único, tengo un procedimiento
Dim FormAct As Form
Set FormAct = Screen.ActiveForm
DoCmd.OpenForm "ListaPacientes"
Forms!ListaPacientes.TxtForm.Value = FormAct.Name
Cargo el nombre del Formulario a un TxtBox del Formulario de la Lista
Trate de realizarlo así
Dim NombreF As Variant
NombreF = Me.TxtForm.Value
Trate de hacerlo así pero no funciona
Forms![Me.TxtForm]![TxtCedula] = !Cedula
imagen

Saludos Cordiales:
Siguiendo con la interrogante
Nombre Formulario sustituirlo por valor de variable
DE acuerdo a las imágenes enviadas de los do formularios
Formulario 01, este posee un TextBox nombrado TxtCedula y al lado un Botón (Buscar) este me permite la búsqueda de un paciente en particular en el Formulario 02 en un ListBox, al escogerlo y dar Click me envía lel registro al Formulario 01 y se cierra, este procedimiento lo debo realizar con al menos 35 Formularios de allí que necesito convertir en una variable el nombre del Formulario 01 para utilizarlo en la instrucción
Instrucción Actual la cual funciona a lo esperado pero solo con un formulario en particular (ASTO) el cual sería Formulario 01
Forms![ASTO]![TxtCedula] = !Cedula
Lo que deseo
Forms![Variable]![TxtCedula] = !Cedula
Gracias Por su ayuda

José Francisco, creo que se esta complicando, si no estoy mal lo que quiere implementar es un buscador a partir de el formulario principal, utilizo varias formas, es decir, mediante formulario o mediante un cuadro de lista. Le voy a mostrar como lo hago a nivel de formulario.
Tengo un formulario principal, para este ejemplo lo tengo dependiente de una tabla.
Hago clic en Agregar y me abre un formulario para Buscar
Observe que puedo buscar un artículo en este caso que tengan la palabra "ACOPLE" y obtengo como muestra la imagen anterior. Hago clic en ACOPLE RAPIDO y obtengo en el formulario principal.
Este formulario tiene 2 botones que adicioné para explicar cómo se hacen las búsquedas en formularios dependientes.
Explico solo el formulario que se abre al hacer clic sobre Agregar (Buscar). Al hacer clic sobre el artículo copia la información en el formulario principal, mediante el siguiente código.
Private Sub nombarticulo_Click() Dim miForm As Form Set miForm = Forms!frmArticulos With miForm .nombarticulo = Me.nombarticulo .vrunitario = Me.vrunitario .existencia = Me.existencia End With DoCmd.Close acForm, Me.Name End Sub
Claro que falta validar que el formulario principal esté abierto y muchas mejoras-
Al utilizar un cuadro de lista cambia totalmente. Si quiere el ejemplo para que lo tome de referencia puede solicitarlo a [email protected], favor anotar en el asunto la consulta.

Si el formulario de búsqueda lo va a llamar desde otros formularios también cambia un poco el código.
Necesita una variable Publica para asignarle el nombre del formulario que llama al formulario de búsqueda.
Public formllama As Form
En el formulario principal cambia el código del botón Agregar.
Private Sub btnAgregar_Click() Set formllama = Screen.ActiveForm DoCmd.GoToRecord , , acNewRec DoCmd.OpenForm "frmSubBuscarSQL", , , , , acDialog End Sub
Y en el formulario de búsqueda el código del evento Al hacer clic quedaría
Private Sub nombarticulo_Click() With formllama .nombarticulo = Me.nombarticulo .vrunitario = Me.vrunitario .existencia = Me.existencia End With DoCmd.Close acForm, Me.Name End Sub

Buenas Tardes Integrantes de este FORO
Mi problema no es la búsqueda y recuperación de registro, mi procedimiento me funciona a lo esperado, de acuerdo a mi pregunta “Nombre Formulario sustituirlo por valor de variable”,
Gracias por tu información Eduardo Perez y el ejemplo muy bueno pero al final es parecido al que poseo funciona para un nombre de formulario en particular, a ver si me explico con esto:
TU EJEMPLO:
Formulario Origen(Donde se copiará el registro de la Busqueda)
frmArticulos
Formulario Destino donde se buscará el registro para el formulario Origen
Forms!frmArticulos
MI APLICACIÓN
Formulario Origen(Donde se copiará el registro de la Busqueda)
Asto
Formulario Destino donde se buscará el registro para el formulario Origen
ListadoPacientes
Hasta allí hay similitud, pero amigo Eduardo son vario formulario de origen y un solo formulario Destino (Busqueda) que poseo ya que es una aplicación para un laboratorio clínico que por cada examen existe una tabla, informe y formulario.
Ejemplo
Set rs = Forms!frmArticulos.Form.RecordsetClone.Clone, esta es una parte de tu ejemplo muy bien Set rs = Forms!Variable.Form.RecordsetClone.Clone
Mi Aplicación
Forms![ASTO]![TxtCedula] = !Cedula
Forms![Variable]![TxtPaciente1] = !Paciente1
La variable debe de ser el nombre del formulario Origen el cual captura el registro del formulario de búsqueda.
Gracias de antemano por tu información

Tiene que definir a nivel de módulo la variable que almacena el nombre del formulario que llama al de búsqueda. Parece que no siguió el ejemplo, lo que usted requiere lo hago en repetidas ocasiones.
Public formllama As Form
Si quiere envíeme la base de datos con información ficticia y reviso a ver que anda mal.
- Compartir respuesta
