Selección múltiple como criterio de consulta refer |
Responder |
Autor | |
gadacc
Nuevo Unido: 18/Septiembre/2020 Localización: españa Estado: Sin conexión Puntos: 36 |
Tema: Selección múltiple como criterio de consulta refer Enviado: 24/Febrero/2021 a las 22:12 |
Buenos días,
A ver si podeis ayudarme: Tengo una lista de selección múltiple en la que selecciono varios valores y ese resultado lo quiero utilizar como criterio en una consulta de referencias cruzadas. Los valores los voy pasando a una caja de texto y los voy enlazando con una O. Al lanzar la consulta me da un error: Se ha producido el error 3070 en tiempo de ejecucción. El motor de base de datos de Access no reconoce [ZZlista]' como un nombre de campo o expresión válidos En cambio, si copio los valores en el campo criterio se ejecuta correctamente. Su SQL en este caso es: TRANSFORM Count(Inscritos.Id) AS CuentaDeId SELECT [Apellido 1] & " " & [Trabajadores].[Nombre] AS Expr1, Count(Trabajadores.[Apellido 1]) AS Inscrito FROM Trabajadores RIGHT JOIN (Formación INNER JOIN Inscritos ON Formación.Id = Inscritos.IdFormación) ON Trabajadores.IdEmpleado = Inscritos.idEmpleado WHERE (((Formación.Id)=5 Or (Formación.Id)=3 Or (Formación.Id)=21)) GROUP BY [Apellido 1] & " " & [Trabajadores].[Nombre] PIVOT Formación.Nombre; Si pruebo a poner una SQL con Id In (5, 3, 21) Access no reconoce la palabra TRANSFORM ¿Alguien me puede orientar? Gracias |
|
mounir
Colaborador Unido: 09/Febrero/2009 Localización: Asturias-España Estado: Sin conexión Puntos: 6479 |
Enviado: 24/Febrero/2021 a las 22:50 |
Hola!
Prueba crear una consulta de selección con los filtros que precises, guárdala y sobre ella creas la consulta de referencias cruzadas. |
|
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: 14738 |
Enviado: 24/Febrero/2021 a las 22:51 |
Recorre los valores seleccionados en el cuadro de lista y los almacenas en un string. Cuando los tienes todos los metes dentro de un IN y el WHERE lo modificas. Quedaria algo así:
WHERE Formación.Id In(5,3,21) ¿Te vale?
|
|
gadacc
Nuevo Unido: 18/Septiembre/2020 Localización: españa Estado: Sin conexión Puntos: 36 |
Enviado: 25/Febrero/2021 a las 22:50 |
No, vale.
Access no interpreta la palabra TRANSFORM en SQL |
|
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: 14738 |
Enviado: 25/Febrero/2021 a las 22:55 |
¿Te has parado a leer el mensaje antes de enviarlo? "No, vale" ¿Cómo quedamos? ¿no o vale? "Access no interpreta la palabra TRANSFORM en SQL" ¿Perdón? ¿Qué significa eso? Que yo sepa, Access interpreta perfectamente la palabra TRANSFORM. Vuelve a intentarlo, por favor.
|
|
gadacc
Nuevo Unido: 18/Septiembre/2020 Localización: españa Estado: Sin conexión Puntos: 36 |
Enviado: 26/Febrero/2021 a las 21:54 |
Perdona Xavi. Tienes toda la razón.
Intentaré explicarme. Lo de que no reconoce TRANSFORM era por qué estaba mal escrito. He probado ejecutando una SQL que contenga In(2, 3, 4) pero me da un error 2342. La acción EjecutarSQL requiere como argumento una instrucción SQL. No se cómo solucionarlo. Gracias. |
|
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: 14738 |
Enviado: 26/Febrero/2021 a las 23:04 |
¿"Ejecutando"? ¿Cómo lo estás "ejecutando"?
|
|
gadacc
Nuevo Unido: 18/Septiembre/2020 Localización: españa Estado: Sin conexión Puntos: 36 |
Enviado: 27/Febrero/2021 a las 00:14 |
Con DoCmd.RunSQL strSQL
|
|
gadacc
Nuevo Unido: 18/Septiembre/2020 Localización: españa Estado: Sin conexión Puntos: 36 |
Enviado: 27/Febrero/2021 a las 08:16 |
¡¡Lo conseguí!!
Implementando este código con la SQL que había creado: Dim dbs As DAO.Database Dim qdf As DAO.QueryDef Dim strSQL As String Set dbs = CurrentDb strSQL = "TRANSFORM count... " Set qdf = dbs.CreateQueryDef("APUNTADOS A CURSOS", strSQL) Muchas gracias a todos por vuestra ayuda. |
|
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: 14738 |
Enviado: 27/Febrero/2021 a las 10:07 |
Solo como apunte (que ya has descubierto por tu cuenta): las consultas que se pueden ejecutar (bien con DoCmd.RunSQL, bien con CurrentDb.Execute) son las de acción (UPDATE, INSERT, DELETE SELECT.. INTO, ALTER TABLE, CREATE TABLE). Las consultas de selección sólo pueden abrirse (DoCmd.OpenQuery)
Y cualquiera de ellas puede ser asignada a una consulta (CreateQueryDef) Un saludo
|
|
gadacc
Nuevo Unido: 18/Septiembre/2020 Localización: españa Estado: Sin conexión Puntos: 36 |
Enviado: 28/Febrero/2021 a las 12:37 |
Gracias por el apunte Xavi.
Una pregunta, ¿Es posible integrar en un formulario una consulta de referencias cruzadas, como subformulario, y que se actualice, al pulsar un botón, sin cerrar el formulario? |
|
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: 14738 |
Enviado: 28/Febrero/2021 a las 16:29 |
Si.
Para insertar: Me!unControlSubformulario.SourceObject = "Query.NombreConsult" Para refrescar Me!unControlSubformulario.Form.Requery Un saludo EDITO: para próximas consultas, aunque estén tan relacionadas como esta, abre un nuevo hilo ya que no es lo mismo.
Editado por xavi - 28/Febrero/2021 a las 16:31 |
|
gadacc
Nuevo Unido: 18/Septiembre/2020 Localización: españa Estado: Sin conexión Puntos: 36 |
Enviado: 02/Marzo/2021 a las 23:14 |
Solucionado. Se puede cerrar.
Gracias.
|
|
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 |