A veces no aparecen los datos

Hola expertos.
Realizo la siguiente consulta sobre una tabla y a veces no se copian los datos en la tabla destino. No entiendo que existiendo datos por fechas de todo el mes solo aprarezcan algunos.
   sSql = ""
'insetar en la tabla c_Tipos los valores de las tablas billetes
  sSql = "INSERT INTO C_tipos ( linea, conductor, turno, abrev, viajeros, fecha )"
  sSql = sSql & " SELECT Lineas.linea, Lineas.conductor, Lineas.turno, BPreciosDBISAM.Abrev, "
  sSql = sSql & " Count(liquidacionesDetalle.Numserie) AS BILLETES, DateValue(lineas!horainicio) AS FECHA"
  sSql = sSql & " FROM (Lineas INNER JOIN Trayectos ON Lineas.ID = Trayectos.idLinea) INNER JOIN (liquidacionesDetalle LEFT JOIN BPreciosDBISAM ON liquidacionesDetalle.Tarifa = BPreciosDBISAM.codi) ON Trayectos.ID = liquidacionesDetalle.idTrayecto"
  sSql = sSql & " WHERE (((DateValue([Lineas]![horainicio])) =#" & Me.fecha_tipos & "#))"
  sSql = sSql & " And ((liquidacionesDetalle.Tipo) <= 2)"
  sSql = sSql & " GROUP BY Lineas.linea, Lineas.conductor, Lineas.turno, BPreciosDBISAM.Abrev, DateValue(lineas!horainicio)"
  sSql = sSql & " HAVING (((Lineas.linea)= " & rst_Concesiones.Fields("Id_linea") & "))"
  Db.Execute (sSql)
Gracias por sus atenciones

1 Respuesta

Respuesta
1
Sólo se me ocurren un par de detalles: que el campo 'horainicio' de problemas por contener información de fecha-hora (en la where se compara con una fecha concreta sin hora), o que el código de la línea lo tengas definido de tipo texto.
Yo acostumbro a comparar las fechas utilizando: dateserial(format$(fecha, "yyyy, mm, dd"))
Usando esas dos funciones, algo en principio innecesario, no me fallan las consultas cuando uso fechas porque quito cualquier rastro de la hora/minutos/segundos.
En lugar de compararlo con "#" & Me.fecha_tipos & "#" lo compararías con "dateserial(" & format$(me.fecha_tipos,"yyyy,mm,dd") & ").
Otro detalle, la cláusula "HAVING " se utiliza para seleccionar registros una vez hecha la agrupación. Es por ello que sólo interesa usarlo para filtrar por los campos calculados (sum, count, máx, etc...) y no por los de agrupación.
Si pasas el HAVING a la cláusula WHERE la función correrá más, sobre todo cuando tengas muchos registros.
Muchas gracias por tu respuesta, ha sido de muchísima ayuda y ha resuekto el problema al dar formato a la fecha.
Ahora quiero aprovechar para otra duda que tengo.
Como puedo hacer que en un grñafico dinámico aparezcan directamente los valores de los datos. En el que tengo definido, a pesar de que selecciono la opción al crearlo no aparecen cuando visualizo el gráfico con la aplicación.
Gracias por tu tiempo.
Lo cierto es que he tenido que ir haciendo lo que creo que preguntas (casi nunca hago gráficos en Access sino que los preparo en Excel)
Tras crear un informe con el gráfico he entrado en el diseño y, con el botón derecho he elegido, 'modificar' el objeto gráfico.
A continuación, con el botón derecho sobre la zona del gráfico he elegido 'Opciones de gráfico' y en la pestaña 'Rótulos de datos' he marcado 'valor'.
Con eso me aparecen correctamente los valores junto al dibujo del gráfico.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas