|
Responder ![]() |
Autor | |
01loko ![]() Asiduo ![]() Unido: 17/Agosto/2017 Localización: Santander Estado: Sin conexión Puntos: 475 |
![]() Enviado: 04/Diciembre/2018 a las 13:11 |
Lo he llamado asi, por llamarlo de alguna manera, me explico: Tengo un formulario y quiero insertar subformularios (formulario 2) en funcion de necesidades (si tengo mas de un cliente que presentar, mostrare 2 o mas subformularios) Si la respuesta a una consulta es 1 cliente: Formulario 1 + subformulario2 (con los resultados de un cliente (ancho:x, alto x, posicion superior 0.09; izquierda: 0,09)) Si la respuesta a una consulta es 2 clientes: Formulario 1 + subformulario2 (con los resultados de cliente1 (ancho:x, alto x, posicion superior 0.09; izquierda: 0,09)) + subformulario2 (con los resultados de cliente 2 (ancho:x, alto x, posicion superior 4.09; izquierda: 0,09)) no quiero ocultarlos, sino que los inserte segun necesidad la pregunta: ¿Se puede insertar un subformulario ya creado desde linea de codigo y su posicion? |
|
Recordar de que soy nuevo y estoy aprendiendo.
|
|
![]() |
|
xavi ![]() Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador ![]() ![]() Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: en línea Puntos: 11721 |
![]() |
Hola,
Para generar controles (un subformulario no es mas que un control) en tiempo de ejecución es necesario poner el formulario en modo diseño. En un caso como este yo intentaría "minimizar daños". O sea, establecer un máximo de clientes a visualizar y tener ya los controles subformularios a punto. Se trataría de hacerlos visibles o no a demanda y, para evitar tener que crear n formularios, utilizar Query's como SourceObject de los controles subformulario. Un saludo |
|
![]() |
|
01loko ![]() Asiduo ![]() Unido: 17/Agosto/2017 Localización: Santander Estado: Sin conexión Puntos: 475 |
![]() |
Gracias Xavi, creo que lo que dices es lo que he estado intentando, lo he conseguido mediante un codigo encontrado por la web: 'Código de prueba ' eduardo@olaz.net ' Junio de 2002 ' ************** Dim frm As Form Dim strFormulario As String Const conFilas As Long = 20 'numero de formularios Const conColumnas As Long = 20 Const conAncho As Long = 15000 Const conAlto As Long = 2000 Const conSeparacion As Long = 450 Const conMargenX As Long = 40 Const conMargenY As Long = 40 Const conComilla As String = """" Const conIncrementoColor As Long = 65536 Dim lngFila As Long Dim lngColumna As Long Dim lngX As Long Dim lngY As Long Dim ctlEtiqueta As Control Dim ctlLabel As Control, ctlText As Control Dim ctlBoton As Control Dim intDataX As Integer, intDataY As Integer Dim intLabelX As Integer, intLabelY As Integer Dim colColor As Long Dim aControles() As Control Dim strCodigoBotonSalir As String Dim mdlFormulario As Module ReDim aControles(conColumnas, conFilas) ' Crea el nuevo formulario Set frm = CreateForm 'colColor = 0 * conIncrementoColor \ 16 With frm .RecordSelectors = False .NavigationButtons = False .Width = 7300 .ScrollBars = 0 .DividingLines = False .MinMaxButtons = 0 End With For lngFila = 0 To 4 'conFilas - 1 lngY = lngY + conSeparacion + conAlto If lngY = conSeparacion + conAlto Then lngY = conSeparacion misubform = "zform" & lngFila DoCmd.CopyObject , misubform, acForm, "Formulario2" 'For lngColumna = 0 To conColumnas - 1 lngColumna = 10 lngX = lngX + conAlto + conSeparacion If lngX = conSeparacion + conAlto Then lngX = conSeparacion Set aControles(lngColumna, lngFila) = CreateControl(frm.Name, acSubform, , misubform, "", _ lngX, lngY, conAncho, conAlto) Set ctlEtiqueta = aControles(lngColumna, lngFila) With ctlEtiqueta .SourceObject = misubform '.BackColor = colColor '.BackStyle = 1 End With colColor = colColor + conIncrementoColor 'Next lngColumna lngX = 0 Next lngFila Set ctlBoton = CreateControl(frm.Name, acCommandButton, , "", "", 8000, 8000, 1500, 500) ctlBoton.Caption = "Salir" ctlBoton.Name = "cmdSalir" Set mdlFormulario = frm.Module strCodigoBotonSalir = "Private sub " & ctlBoton.Name & "_Click()" & _ vbCrLf & _ vbCrLf & _ "msgbox " & conComilla & "Cierro el formulario" & conComilla & _ " & me.name " & _ vbCrLf & _ " docmd.Close" & _ vbCrLf & _ "End Sub" With mdlFormulario .InsertText strCodigoBotonSalir End With ' Restaura el formulario. DoCmd.Restore Erase aControles Set ctlEtiqueta = Nothing strFormulario = frm.Name DoCmd.Save acForm, strFormulario DoCmd.OpenForm strFormulario Debug.Print Forms(strFormulario).Width Set frm = Nothing End Sub esta modificado a mi gusto, pero hace lo que deseaba. Se puede cerrar el hilo y muchas gracias otra vez
|
|
Recordar de que soy nuevo y estoy aprendiendo.
|
|
![]() |
Responder ![]() |
|
Tweet
|
Ir al foro | Permisos de foro ![]() Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |