Access - Duda consulta SQL desde VBA en Access

 
Vista:
sin imagen de perfil
Val: 4
Ha aumentado su posición en 26 puestos en Access (en relación al último mes)
Gráfica de Access

Duda consulta SQL desde VBA en Access

Publicado por Daniel (3 intervenciones) el 20/06/2019 12:31:53
Buenas tardes, veréis estoy empezando con las sentencias SQL y necesito vuestra ayuda.

Estoy creando una BBDD en Access en la cual tengo una tabla llamada: Tiempos_Eventos con 4 campos:

Campos:
IdEvento - Numero
Tipo_de_Evento - Texto
Cerrar_evento - CheckBox
T_Total - Fecha/Hora

Quiero generar una consulta que me cuente el numero de eventos de un Tipo_de_Evento en concreto y con el filtro activo: Cerrar_evento como False y que posteriormente me lo devuelta en un MsgBox pero me da error la consulta.

1
2
3
4
5
6
7
8
9
sql = "SELECT Tiempos_eventos.IdEvento, Tiempos_eventos.Tipo_de_Evento, Tiempos_eventos.Cerrar_evento, Tiempos_eventos.T_Total_Cons_Actualizacion, Count(Tiempos_eventos.IdEvento) " _
          & "FROM Tiempos_eventos " _
          & "WHERE (((Tiempos_eventos.Tipo_de_Evento)= TEvento) " _
          & "GROUP BY Tiempos_eventos.IdEvento " _
          & "HAVING Tiempos_eventos.IdEvento " _
          & "AND ((Tiempos_eventos.Cerrar_evento)=False)) "
 
DoCmd.RunSQL sql
MsgBox "Hay: " & sql

¿Alguien podria decirme donde esta el error? Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Duda consulta SQL desde VBA en Access

Publicado por Anonimo (2078 intervenciones) el 20/06/2019 20:43:42
Error como tal no parece existir ninguno (no he desmenuzado la SQL), pero lo que me parece poco probable es que se obtenga un resultado adecuado para presentar en un MsgBox, porque el resultado no es un dato: es un conjunto de datos (como corresponde con una consulta de totales agrupados).

Lo que presentara ese MsgBox es el contexto de la SQL en una única línea.

De una consulta 'guardada' se puede obtener un dato (una consulta guardada es un equivalente/puede sustituir a una tabla), de una SQL no se puede obtener un dato, para obtener un dato (de una tabla o una consulta) se utiliza/n las 'Funciones De Dominio', por ejemplo con esos datos se haría asi:
1
2
MsgBox "Hay: " & DCount("*", "Tiempos_eventos","Tipo_de_Evento = '" & TEvento & "' And Cerrar_evento = 0 )

.- He partido del supuesto: Tipo_de_Evento = alfanumérico (texto)

¿Cómo plantearlo con SQLs?...
1
2
3
4
5
6
7
8
Dim sql As String
Dim AAA As DAO.Recordset
sql = "Select * From Tiempos_eventos Where Tipo_de_Evento = '" & TEvento & "' And Cerrar_evento = 0"
Set AAA = CurrentDb.OpenRecordset(sql, , dbReadOnly)
If AAA.RecordCount <> 0 Then AAA.MoveLast: AAA.MoveFirst
MsgBox "Hay: " & AAA.RecordCount
AAA.Close
Set AAA = Nothing

Hay diversas formas de utilizar el lenguaje SQL, pero una cosa es calcular un resultado y otra poder acceder al resultado para utilizarlo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 4
Ha aumentado su posición en 26 puestos en Access (en relación al último mes)
Gráfica de Access

Duda consulta SQL desde VBA en Access

Publicado por Daniel (3 intervenciones) el 24/06/2019 19:39:08
Muchas gracias por la respuesta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar