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: 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
|
|
Juan
Colaborador
Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 1035
|
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
|
|
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.
|
|
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
|
|
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
|
|
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 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
|
|
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
|
|
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 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
|
|
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.
|
|
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.
|
|
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
|
|
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 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
|
|