Autor |
Tema Buscar Opciones del Tema
|
Juan
Colaborador
Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 1035
|
Tema: Pasar datos de subformulario a combo de otro subfo Enviado: 25/Enero/2021 a las 09:05 |
Hola a tod@s Perdón por la tardanza en responder. Gracias a la ayuda de mounir en otro hilo con asunto parecido (quiero recordar que por error quedaron abiertos dos hilos con asuntos parecidos) el tema ha quedado resuelto así:
Me.Parent!SubfrmTarifas.SetFocus DoCmd.GoToRecord , , acNewRec
Me.Parent!SubfrmTarifas.Form.[Combo48] = Me.Parent!SubAux.Form.Texto29
Muchas gracias, ya de puede quitar el hilo Juan
|
jj
|
|
Juan
Colaborador
Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 1035
|
Enviado: 23/Enero/2021 a las 07:39 |
Hola otra vez Ha quedado resuelto así
Me.Parent!SubfrmTarifas.SetFocus DoCmd.GoToRecord , , acNewRec
Me.Parent!SubfrmTarifas.Form.[Combo48] = Me.Parent!SubAux.Form.Texto29
Ahora sí podéis quitar el hilo. Si tuviera alguna duda más abriría uno nuevo Muchas gracias Juan
|
jj
|
|
Juan
Colaborador
Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 1035
|
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
|
|
Juan
Colaborador
Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 1035
|
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
|
|
Juan
Colaborador
Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 1035
|
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
|
|
mounir
Colaborador
Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 6479
|
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.
|
|
emiliove
Administrador
Unido: 16/Junio/2009
Localización: Mexico
Estado: Sin conexión
Puntos: 5694
|
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.
|
|
Juan
Colaborador
Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 1035
|
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
|
|
mounir
Colaborador
Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 6479
|
Enviado: 22/Enero/2021 a las 21:23 |
Hola!
Debería funcionar así:-
Me.SubfrmTarifas.Form.[Combo48] = Me.SubAux.Form.Texto29
|
Un Saludo.
|
|
Juan
Colaborador
Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 1035
|
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
|
|
Juan
Colaborador
Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 1035
|
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
|
|
mounir
Colaborador
Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 6479
|
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.
|
|
Juan
Colaborador
Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 1035
|
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
|
|
Juan
Colaborador
Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 1035
|
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
|
|
mounir
Colaborador
Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 6479
|
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.
|
|