** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Pasar datos de subformulario a combo de otro subfo
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoPasar datos de subformulario a combo de otro subfo

 Responder Responder Página  12>
Autor
Mensaje
Juan Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 1029
Enlace directo a este mensaje Tema: Pasar datos de subformulario a combo de otro subfo
    Enviado: 21/Enero/2021 a las 16:35
Hola a todos

A título informativo (si la respuesta es positiva agradezco pistas) me gustaría saber si es posible enviar datos desde un subformulario “A” al ID de un combo situado en otro Subformulario “B” de modo tal que al recibir el valor se situara en un registro nuevo del subformulario "B" e hiciera la misma operación que hace el combo cuando manualmente se elige un valor nuevo.

En la actualidad cuando se produce una situación determinada en el subformulario “A” aparece una alarma en un cuadro de texto del formulario Principal con el valor de ID. Vista la alarma, manualmente, voy al combo del subfrmulario “B” e introduzco el valor deseado de ID en un registro nuevo rellenando todos los campos establecidos en el combo. Buen pues quiero saber si esto es posible automatizarlo.

Muchas Gracias

jj
Arriba
Juan Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 1029
Enlace directo a este mensaje Enviado: 22/Enero/2021 a las 07:21
Hola a todos
Creo que la respuesta a la pregunta que planteo es afirmativa y estoy tratando de obtener lo que planteo.
Para no mezclar temas, propongo que se cierre este hilo e iré abriendo otro/s con solicitud de ayuda para casos concretos.
Buenos días
Juan
jj
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: en línea
Puntos: 6095
Enlace directo a este mensaje Enviado: 22/Enero/2021 a las 08:58
Hola!

Es fundamental manejar este esquema trabajar con dos subformularios en un formulario común.

Un Saludo.
Arriba
Juan Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 1029
Enlace directo a este mensaje Enviado: 22/Enero/2021 a las 14:51
Hola Mounir
Ese esquema lo "conozco" pero no del todo
Déjame un  tiempo en ensayar algunas cosas y contesto. Ahora precisamente estoy muy liado
Gracias
Juanjo
jj
Arriba
Juan Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 1029
Enlace directo a este mensaje Enviado: 22/Enero/2021 a las 17:00
Hola mounir
Perdon el retraso, esto es lo que te puedo adelantar.

Esquema:

Formulario Ppal (único) frmAfiliacion con su IDAfiliacion

Subformulario1 (continuo) SubAux(continuo) con IDAux relacionado con IDAfiliacion

Sufformulario2 (continuo) SubfrmTarifas con IDTarifa relacionado con IDAfiliacion

Objetivo:

Tomar el valor del campo  “NumReg”de SubAux, ponerle un condicional y transformarle en otro que se llevará al “combo48” que está situado en el SubfrmTarifas.

Lo hecho hasta ahora:

Lo hago por partes para ver que funciona cada una y luego veré la forma de enlazarlas para que la operación sea totalmente automática.

En el Principal “frmAfiliacion” tengo los campos Texto343 y Texto 452 que reciben la información deseada de SubAux mediante el siguiente código:

Private Sub DNIaux_Exit(Cancel As Integer)

Forms!frmAfiliacion!Texto343 = Me.Reg

If Me.Reg > 2 Then

Forms!frmAfiliacion!Texto452 = 10

Else

Forms!frmAfiliacion!Texto452 = 0

End If

End Sub

Luego con un botón provisional para hacer pruebas pongo el código que viene a continuación .(Más tarde buscaré el evento adecuado para no depender del botón, algo he intentado y no he conseguido nada por ahora). 

 Una vez el valor  del “Texto452” en el Ppal “frmAfiliacion” lo intento pasar al IDTarifa del “combo48” en un un registro nuevo que está en el “SubfrmTarifas” mediante el siguiente código:

Private Sub Comando454_Click()

If (IsNull(Forms!frmAfiliacion![Texto452])) Then

Exit Sub

Else

Dim rst As Object

Set rst = Me.SubfrmTarifas.Form.RecordsetClone

If Not rst.EOF Then

rst.MoveNewRec

Me.SubfrmTarifas.Form.Bookmark = rst.Bookmark

End If

Set rst = Nothing

Me!SubfrmTarifas.Form![Combo48] = Me.Texto452

End If

Me.SubfrmTarifas.Requery

End Sub

Aquí me da Error 438 en tiempo de ejecución, el objeto no admite esta propiedad  o método

Y se para en rst.Moven eNewRec. Sin embargo si sustituyo esta línea por rst.MoveLast, funciona pero va al último registro no al nuevo como quiero.

Un saludo y muchas gracias

Juan


jj
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: en línea
Puntos: 6095
Enlace directo a este mensaje Enviado: 22/Enero/2021 a las 19:24
Hola!

No hace falta utilizar recordsetclone para hacerlo, te basta mandar el foco al subformulario, nuevo registro y pasar el valor:-

Private Sub Comando454_Click()

If (IsNull(Forms!frmAfiliacion![Texto452])) Then

Exit Sub

Else

Me.SubfrmTarifas.SetFocus
DoCmd.GoToRecord , , acNewRec
Me.SubfrmTarifas.Form.[Combo48] = Me.Texto452
End If


Nos comentas

Una vez conseguido intentas hacerlo directamente de un subformulario a
otro subformulario




Un Saludo.
Arriba
Juan Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 1029
Enlace directo a este mensaje Enviado: 22/Enero/2021 a las 19:36
Hola Mounir
Funciona perfectamente
Vamos a pasar directamente de subformulario a subformulario
Ten paciencia ya que esta parte, a pesar de tener el esquema, sé que me va a resultar difícil pero lo voy a intentar ya que esta es la solución ideal
Muchas gracias
Nota: Por favor cerrar el otro hilo que trata de esta asunto ya resuelto aquí
jj
Arriba
Juan Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 1029
Enlace directo a este mensaje Enviado: 22/Enero/2021 a las 20:35
Hola mounir
No funciona, he puesto
Private Sub DNIaux_Exit(Cancel As Integer)
If Me.Reg > 2 Then
Me.Texto29 = 10
Else
Me.Texto29 = 0
End If
 Me.Texto29!SubAux.Form!SubformTarifas.Form! Combo48
End Sub

Siendo:
DNIAux=Campo que necesariamente hay que rellenar
Reg = Cuenta de nº de registros
Texto29=Campo creado para la ocasión
Todos estos en el subformulario2 "SubAux"
Combo48= Combo situado en el Subformulario1 "SubfrmTarifas" y es el destinatario del valor del texto29
Al ejecutar me sale:
Error 13; no coinciden los tipos
jj
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: en línea
Puntos: 6095
Enlace directo a este mensaje Enviado: 22/Enero/2021 a las 21:23
Hola!

Debería funcionar así:-

Me.SubfrmTarifas.Form.[Combo48] = Me.SubAux.Form.Texto29
Un Saludo.
Arriba
Juan Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 1029
Enlace directo a este mensaje Enviado: 22/Enero/2021 a las 22:06
Hola!
Da error de compilación, no se  encontró el método o el dato miembro
se resalta :
Me.SubfrmTarifas.Form.[Combo48] = Me.SubAux.Form.Texto29

Saludos
jj
Arriba
emiliove Ver desplegable
Administrador
Administrador


Unido: 16/Junio/2009
Localización: Mexico
Estado: Sin conexión
Puntos: 5359
Enlace directo a este mensaje Enviado: 22/Enero/2021 a las 22:53
Por que no dejas que te ayude access, por ejemplo en Propiedades del Combo48 del SubfrmTarifas en origen del control le das a los tres puntos y te abre el generador de expresiones lo dejas en blanco y buscas El formulario, después el control y dos click al control y ya lo tienes.

Saludos.
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: en línea
Puntos: 6095
Enlace directo a este mensaje Enviado: 22/Enero/2021 a las 23:00
Hola!

Hay que jugar con las opciones que ofrecen, probamos así:

Me.SubfrmTarifas.Form.[Combo48] = Me.Parent!SubAux.Form.Texto29
Un Saludo.
Arriba
Juan Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 1029
Enlace directo a este mensaje Enviado: 23/Enero/2021 a las 06:38
Buenos días!
Como bien dices y jugando con las opciones, vemos que funciona así:

Me.Parent!SubfrmTarifas.Form.[Combo48] = Me.Parent!SubAux.Form.Texto29

Muchas gracias mounir, sin tu ayuda no lo hubiera resuelto
Saludos
Juan
Nota: Por mi parte podéis quitar el hilo

jj
Arriba
Juan Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 1029
Enlace directo a este mensaje Enviado: 23/Enero/2021 a las 06:42
Hola de nuevo
Al abrir el hilo solo me había fijado en el último mensaje, el de mounir, perdona Emilove no te había visto. Tomo nota de tu propuesta para mi formación
Un saludo a tod@s
Muchas gracias Emilove
jj
Arriba
Juan Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 1029
Enlace directo a este mensaje Enviado: 23/Enero/2021 a las 07:09
Hola de nuevo
Con esta opción

Me.Parent!SubfrmTarifas.Form.[Combo48] = Me.Parent!SubAux.Form.Texto29

Me rellena los valores en el primer registro y yo los quiero en un registro nuevo
Solicito ayuda
Por favor, no cerréis el hilo
Gracias
jj
Arriba
 Responder Responder Página  12>
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable