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

Respuesta
1

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

¡Gracias! Voy a probar y te respondo, muy amable de tu parte por la repuesta

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

El ejemplo que le doy funciona para cualquier formulario, algo anda mal.

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.

¡Gracias! Buenos Días Eduardo, ok chequeo y de tener algún inconveniente te envio la aplicación por correo, Saludos y Bendiciones

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas