Access - informe de consulta lento

 
Vista:

informe de consulta lento

Publicado por manuel (51 intervenciones) el 14/09/2007 16:28:48
hola a todos ...mi problema es que tengo un informe generado a partir de una consulta la cual trabaja con funciones hechas en vb y ocurre que al ejecutar esta se pone demasiada lenta tardando mas de 4 minutos como entenderan esto es demasiado las tablas de la consulta estan relacionadas y las columnas son 11 uso tambien funciones como el dlookup.dmin. dmax. cdate osea es una consulta tal vez muy pesada
desearian me brinden su experiencia en esto...
atte,

Manuel
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

RE:informe de consulta lento

Publicado por byronlcl (2 intervenciones) el 14/09/2007 16:34:21
Abria que revisar tu consulta, ver si se puede simplificar. Ponla para que podamos verla
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

RE:informe de consulta lento

Publicado por manuel (51 intervenciones) el 14/09/2007 16:54:32
ahi la tienen

SELECT A.ID, D.APEEMP+" "+D.NOMEMP AS NOMBRE, CINT(D.CODSER) AS CODSER, A.FECHA AS DIA_E, A.FERIADO, A.TURNO AS TURNO, A.VACAC, A.DES_MED, IIf(IsNull(B.ENTRADA),Null,CDate(B.ENTRADA)) AS HORA_1, IIf(isnull(a.turno) OR ISNULL(DMin("hormar","marcas1","codemp=" & a.id & " and fecmar=#" & format(a.fecha,"mm/dd/yyyy") & "#")),Null,CDATE(DMin("hormar","marcas1","codemp=" & a.id & " and fecmar=#" & format(a.fecha,"mm/dd/yyyy") & "#"))) AS MARCA_1, IIf(A.FECHA>=Date() Or IsNull(turno) Or TURNO In ("LC","LF","LL") Or (B.GUARDIA=True And Mid(HORA_1,10)='p.m.') Or a.des_med Is Not Null,Null,IIf(IsNull(MARCA_1) Or IsNull(MARCA_2) Or MARCA_1-HORA_1>#12/30/1899 0:30:0#,"HOY",Null)) AS FALTA, IIf(IsNull(hora_1) Or IsNull(marca_1),Null,Format(calsal(hora_1,marca_1),"Short Time")) AS TARDANZA, IIf(IsNull(A.LICENC),Null,DLookUp("descripc","tipdoc","tipdoc=" & A.LICENC)) AS PERMISO, IIf(IsNull(A.LICENC),Null,DLookUp("estado","tipdoc","tipdoc=" & A.LICENC)) AS ESTADO, IIf(IsNull(TURNO),Null,IIf(Mid(HORA_1,10)='p.m.',a.fecha+1,a.fecha)) AS DIA_S, IIf(IsNull(B.SALIDA),Null,CDate(B.SALIDA)) AS HORA_2, A.PRODUCT, IIf(IsNull(A.PRODUCT),Null,HORA_2+TimeSerial(CInt(Mid(A.PRODUCT,1,1)),0,0)) AS HORA_3, IIf(IsNull(B.SALIDA) OR ISNULL(DMax("hormar","marcas1","codemp=" & a.id & " and fecmar=#" & format(dia_s,"mm/dd/yyyy") & "#")),Null,cdate(DMax("hormar","marcas1","codemp=" & a.id & " and fecmar=#" & format(dia_s,"mm/dd/yyyy") & "#"))) AS MARCA_2, IIf(IsNull(marca_2) Or IsNull(hora_2) Or IsNull(hora_3),Null,IIf(IsNull(hora_3),Format(calsal([hora_2],[marca_2]),"Short Time"),Format(calsal([hora_3],[marca_2]),"Short Time"))) AS SALDO, IIf(A.FECHA>=Date() Or IsNull(PRODUCT) And IsNull(permiso) And IsNull(TURNO) And IsNull(a.vacac),Null,calpro(turno,tardanza,marca_2,hora_3,falta,estado)) AS PRODU, A.OBSERV AS OBSERVACION
FROM (PROGRAMACION AS A LEFT JOIN TURNOS AS B ON A.TURNO=B.TURNO) INNER JOIN MAESTRO AS D ON A.ID=D.ID
WHERE CINT(D.CODSER)=FORMS!FTARSER!SELAYN And A.AAAAMM=FORMS!FTARSER!AÑO+FORMAT(FORMS!FTARSER!MES,"00") And NZ(B.TIPO," ") In (" ","L")
GROUP BY D.CODSER, A.ID, A.FECHA, A.FERIADO, A.TURNO, A.VACAC, A.DES_MED, DMin("hormar","marcas1","codemp=" & a.id & " and fecmar=#" & format(a.fecha,"mm/dd/yyyy") & "#"), A.PRODUCT, A.OBSERV, B.GUARDIA=True, B.ENTRADA, B.SALIDA, D.APEEMP, D.NOMEMP, A.LICENC
ORDER BY D.APEEMP
WITH OWNERACCESS OPTION;
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

RE:informe de consulta lento

Publicado por byronlcl (2 intervenciones) el 14/09/2007 17:10:19
Que consulta!, ¿Y que te hace esa consulta?, a simple vista me parece que hay procesos que deberías estar calculando y guardando en tablas, pero estas dejando que la consulta te haga todo. Lo peor es que con más registros se hara cada vez mas lenta. ¿Ya revisastes eso?. Voy a intentar leerla depacio y te aviso...
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

RE:informe de consulta lento

Publicado por ok... (51 intervenciones) el 14/09/2007 17:27:35
espero entonces ... la consulta esta genera una tarjeta de control como veras en los campos que contiene...
espero tu ayuda
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