|
Responder
|
| Autor | |
rafaservi
Habitual
Unido: 18/Noviembre/2010 Localización: España Estado: Sin conexión Puntos: 139 |
Tema: Variable en Clausula FROMEnviado: 30/Enero/2020 a las 22:19 |
|
Buenas. Tengo un formulario que tiene a su vez un subformulario que muestra los datos de la tabla Factura. Me gustaría mediente un Cuadro Combinado, colocado en el formulario principal, seleccionar un Año (2016, 2017, 2018, 2019, 2020, etc) de manera que en el subformulario muestre las Facturas del año que se elija. Cada año está en una tabla: Factura2016, Factura2017, ..., Factura2020 (Por volumen de registros cada tabla tiene las facturas de su año) Por ello, pregunto si el Origen del Registro del Subformulario podría tener una SELECT con una variable en la Clausula FROM ... SELECT * FROM cTabla; 'Donde cTabla es una variable: Factura2016 o Factura 2017 o ... . o SELECT * FROM FuncTabla(); ' Donde la Función FuncTabla da como valor el nombre de la Tabla que se desea abrir ¿O habría alguna otra froma de realizarlo? Muchas gracias y un saludo.
|
|
![]() |
|
Mihura
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
Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 14428 |
Enviado: 30/Enero/2020 a las 23:19 |
|
Con VBA, bastaría con asignarle al RowSource del subformulario:
Me.Sbf.Form. siendo NombreTabla la variable que contiene el nombre de la tabla deseada. Ed. Modifico dejando RecordSource
Editado por Mihura - 31/Enero/2020 a las 14:00 |
|
![]() |
|
rafaservi
Habitual
Unido: 18/Noviembre/2010 Localización: España Estado: Sin conexión Puntos: 139 |
Enviado: 30/Enero/2020 a las 23:51 |
|
Muchas gracias Mihura. Voy a probar
|
|
![]() |
|
rafaservi
Habitual
Unido: 18/Noviembre/2010 Localización: España Estado: Sin conexión Puntos: 139 |
Enviado: 31/Enero/2020 a las 09:51 |
|
Buenos días Mihura. Algo no hago bien porque no sale. He probado... poniendo el siguiente código al Actualizar el Cuadro Combinado (AñoFactura) que tengo en el Formulario Principal seleccionando el año que se corresponderá con la Tabla en cuestión y da error. Private Sub AñoFactura_AfterUpdate() Dim cTabla as String Select Case Me.AñoFactura Case 1: cTabla="Factura2016" Case 2: cTabla="Factura2017" Case 3: cTabla="Factura2018" End Select Me.SbF.Form.RowSource = "SELECT * FROM " & cTabla End Sub En el SubFormulario no tengo definida ninguna tabla en apartado Origen del Registro. Pero sí tengo indicado los campos, ya que coinciden en nombre y definición para cada una de las tablas.
|
|
![]() |
|
mounir
Colaborador
Unido: 09/Febrero/2009 Localización: Asturias-España Estado: Sin conexión Puntos: 6521 |
Enviado: 31/Enero/2020 a las 09:57 |
|
Hola!
Como te comentó Mihura, Crea una variable "cTabla", algo así:- Dim cTabla As String cTabla = "Factura" & Me.AñoFactura Me.SbF.Form.RowSource = "SELECT * FROM " & cTabla Me.SbF.Form.Requery |
|
|
Un Saludo.
|
|
![]() |
|
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: Sin conexión Puntos: 14926 |
Enviado: 31/Enero/2020 a las 12:32 |
|
Creo que hay un pequeño lío entre el origen de la fila (RowSource) del cuadro combinado y el origen del registro (RecordSource) del subformulario.- Y lo voy a simplificar y "generalizar a futuro", ya puestos. Tomando como base que los primeros datos son del 2016 y que cada valor (1, 2, 3) sumará un año:
Me!SbF.Form.RecordSource = "SELECT * FROM Factura" & 2015 + Me!AñoFactura Un saludo
|
|
![]() |
|
mounir
Colaborador
Unido: 09/Febrero/2009 Localización: Asturias-España Estado: Sin conexión Puntos: 6521 |
Enviado: 31/Enero/2020 a las 13:50 |
|
Hola!
Que razón tiene Xavi, no había leido con detenimiento lo que puso rafaservi!!! Editado por mounir - 31/Enero/2020 a las 13:51 |
|
|
Un Saludo.
|
|
![]() |
|
Mihura
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
Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 14428 |
Enviado: 31/Enero/2020 a las 13:59 |
|
El que se ha liado con RowSource/RecordSource he sido yo ...
![]() |
|
![]() |
|
rafaservi
Habitual
Unido: 18/Noviembre/2010 Localización: España Estado: Sin conexión Puntos: 139 |
Enviado: 31/Enero/2020 a las 17:30 |
|
Uff !!! Muchas gracias a todos. Lo miraré este fin de semana y os cuento.
|
|
![]() |
|
rafaservi
Habitual
Unido: 18/Noviembre/2010 Localización: España Estado: Sin conexión Puntos: 139 |
Enviado: 31/Enero/2020 a las 17:49 |
|
No he podido esperar. Funciona correctamente con RowSource. Muchas gracias a todos
|
|
![]() |
|
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 |