border

Miembros:
Mensajes:
Temas:
Online:

Ultimo Miembro:

 
 

Cuenta Bancaria en EEUU
  #1 (permalink)  
Antiguo 26-06-2008, 21:01:35
Gran Participación en el Foro
 
Registrado: sep 2006
Posts: 170
El_Principiante Valoración +2
Predeterminado Mostrar Registros por Selección

Hola, tengo un problemita quiero mostrar en la grilla especificamente un MSHFlexGrid un solo dato que es el mas reciente de acuerdo a la fecha: por ejemplo tengo en la base de datos de Access esto registros


01/07/1997
01/01/1998
01/07/1998
01/01/1999
01/07/1999
01/01/2000
01/07/2000
01/01/2001
01/07/2001
.
.
.

01/07/2007
01/07/2008

La idea es que siempre me muestre en la grilla los registros que cumplan con la condición mas recientes para este caso me mostraria solo los de la fecha 01/07/2007, si el usuario como estamos en el mes de Junio del 2008 entonces el registro de 01/07/2008 no se cumple ya que ese mes todavia no llega, si el usuario agrega otro registro que sea una fecha mas reciente 01/07/2008 pues estonces estos registros no son necesarios que me los muestre hasta que no se cumpla la condición.

si no me explique diganlo para ser mas amplio en la explicación..


Hago mi consulta asi:
Código:
rs.Open "SELECT * FROM RamasIMSS WHERE RamasFecha = (SELECT MAX(RamasFecha) FROM RamasIMSS)", cnn, adOpenStatic, adLockOptimistic
Con este codigo me muestra siempre el archivo de la fecha mas reciente, y quiero que me muestre solo en este caso la fecha del 01/07/2007
__________________
El exito no es un milagro, es una Recopensa
Responder Con Cita
  #2 (permalink)  
Antiguo 26-06-2008, 21:55:04
Avatar de J.M.Movilla
Administrador
 
Registrado: dic 2002
Ubicación: BURGOS - ESPAÑA
Posts: 5.490
J.M.Movilla Valoración +2
Predeterminado Re: Mostrar Registros por Selección

Código:
rs.Open "SELECT * FROM RamasIMSS WHERE RamasFecha <= #" & Date & "# And RamasFecha = (SELECT MAX(RamasFecha) FROM RamasIMSS)", cnn, adOpenStatic, adLockOptimistic
¿Qué tal si usas esta SQL?
__________________
José María Movilla Cuadrado
______________________
www.foro.vb-mundo.com
www.vb-mundo.com

Responder Con Cita
  #3 (permalink)  
Antiguo 26-06-2008, 21:59:42
Gran Participación en el Foro
 
Registrado: sep 2006
Posts: 170
El_Principiante Valoración +2
Predeterminado Re: Mostrar Registros por Selección

no me muestra NADA
__________________
El exito no es un milagro, es una Recopensa
Responder Con Cita
  #4 (permalink)  
Antiguo 27-06-2008, 09:37:44
Avatar de J.M.Movilla
Administrador
 
Registrado: dic 2002
Ubicación: BURGOS - ESPAÑA
Posts: 5.490
J.M.Movilla Valoración +2
Predeterminado Re: Mostrar Registros por Selección

¿Acertaremos ahora?
Código:
rs.Open "SELECT * FROM RamasIMSS WHERE RamasFecha <= #" & Format(Date, "mm/dd/yyyy") & "# And RamasFecha = (SELECT MAX(RamasFecha) FROM RamasIMSS)", cnn, adOpenStatic, adLockOptimistic
__________________
José María Movilla Cuadrado
______________________
www.foro.vb-mundo.com
www.vb-mundo.com

Responder Con Cita
  #5 (permalink)  
Antiguo 27-06-2008, 14:01:49
Gran Participación en el Foro
 
Registrado: sep 2006
Posts: 170
El_Principiante Valoración +2
Predeterminado Re: Mostrar Registros por Selección

No, Sigue sin mostrar nada, de hecho lo coloque como me sugeristes en el ultimo post que escribistes pero sin mostrar nada...

Que estaremos haciendo mal...

Código:
If rs.State = 1 Then rs.Close
        rs.Open "SELECT * FROM RamasIMSS WHERE RamasFecha <= #" & Format(Date, "mm/dd/yyyy") & "# And RamasFecha = (SELECT MAX(RamasFecha) FROM RamasIMSS)", cnn, adOpenStatic, adLockOptimistic
        rs.Requery 1
        
        Call MostrarRamasdelIMSS(GrillaRamasIMSS)
        Contador1 = 1
        SSTab2.Tab = 0
        
        While rs.EOF = False
            GrillaRamasIMSS.TextMatrix(Contador1, 0) = rs.Fields("RamasID")
                GrillaRamasIMSS.TextMatrix(Contador1, 1) = Format(rs.Fields("RamasFecha"), "dd/MM/yyyy")
                GrillaRamasIMSS.TextMatrix(Contador1, 2) = rs.Fields("RamasCocepto")
                GrillaRamasIMSS.TextMatrix(Contador1, 3) = Format(rs.Fields("RamasTrabajador"), "#,##0.0000")
                GrillaRamasIMSS.TextMatrix(Contador1, 4) = Format(rs.Fields("RamasPatron"), "#,##0.0000")
                GrillaRamasIMSS.TextMatrix(Contador1, 5) = Format(rs.Fields("RamasLimite"), "#,##0.0000")
                
                Contador1 = Contador1 + 1
            rs.MoveNext
        Wend
__________________
El exito no es un milagro, es una Recopensa

Última edición por El_Principiante fecha: 27-06-2008 a las 14:38:20.
Responder Con Cita
  #6 (permalink)  
Antiguo 27-06-2008, 17:38:38
Avatar de J.M.Movilla
Administrador
 
Registrado: dic 2002
Ubicación: BURGOS - ESPAÑA
Posts: 5.490
J.M.Movilla Valoración +2
Predeterminado Re: Mostrar Registros por Selección

Bueno, bueno... Está claro que si uno no puede fiarse de lo que uno improvisa... ¡como para fiarse de lo que improvisan otros!!!

Quise seguir tu principio de (SELECT MAX(RamasFecha) FROM RamasIMSS) y ahora, pensándolo un poquito..., veo que si le digo por una parte que me tome el valor máximo y por otra que me tome hoy como fecha máxima, lo lógico es que no me seleccione ninguna si existe una sola fecha mayor que hoy... Lógico...

Al ver la lista de fechas que pones en tu primer post, se aprecia claramente que sólo hay un registro para cada fecha, lo cual despista lo suyo... Pero cuando escribes "La idea es que siempre me muestre en la grilla los registros que cumplan con la condición mas recientes para este caso me mostraria solo los de la fecha 01/07/2007", me hace suponer que es que tienes varios registros en cada fecha, y quieres ver TODOS los registros introducidos en la fecha última que no sobrepase a la fecha de la consulta...

Y yendo al grano, para poder tomar la fecha máxima y que no sea posterior a hoy... no se me ocurre la SQL que reúna ambas condiciones... Y tiene que ser sencilla, pero no caigo.

Y como es válido el principio de que no siempre lo óptimo es mejor que lo bueno, vamos a ver si conseguimos que se te presenten los registros que quieres presentar:
Código:
Dim dFecha As Date
dFecha = Date

Apertura:
If rs.State = 1 Then rs.Close
rs.Open "SELECT * FROM RamasIMSS WHERE RamasFecha = #" & Format(dFecha, "mm/dd/yyyy") & "#", cnn, adOpenStatic, adLockOptimistic
if rs.RecordCount = 0 Then
    dFecha = dFecha - 1
    Goto Apertura
endif

rs.Requery 1
Call MostrarRamasdelIMSS(GrillaRamasIMSS)
Contador1 = 1
SSTab2.Tab = 0        
While rs.EOF = False
    GrillaRamasIMSS.TextMatrix(Contador1, 0) = rs.Fields("RamasID")
    GrillaRamasIMSS.TextMatrix(Contador1, 1) = Format(rs.Fields("RamasFecha"), "dd/MM/yyyy")
    GrillaRamasIMSS.TextMatrix(Contador1, 2) = rs.Fields("RamasCocepto")
    GrillaRamasIMSS.TextMatrix(Contador1, 3) = Format(rs.Fields("RamasTrabajador"), "#,##0.0000")
    GrillaRamasIMSS.TextMatrix(Contador1, 4) = Format(rs.Fields("RamasPatron"), "#,##0.0000")
    GrillaRamasIMSS.TextMatrix(Contador1, 5) = Format(rs.Fields("RamasLimite"), "#,##0.0000")

    Contador1 = Contador1 + 1
    rs.MoveNext
Wend
__________________
José María Movilla Cuadrado
______________________
www.foro.vb-mundo.com
www.vb-mundo.com

Responder Con Cita
  #7 (permalink)  
Antiguo 27-06-2008, 18:31:22
Gran Participación en el Foro
 
Registrado: sep 2006
Posts: 170
El_Principiante Valoración +2
Predeterminado Re: Mostrar Registros por Selección

Perdon que Insista Amigo J.M.Movilla pero usted se merece un Monumento a la Sabiduria.

Me Funciona perfectamente solo una cosa mas me podria explciar Lo de la Función Goto Apertura quiero suponer que encuentra la fecha mas reciente y disminuye uno hasta encontrar la condición que se le pide.

Muchisisisisisisisisisisisisismas Gracias. por su ayuda.
__________________
El exito no es un milagro, es una Recopensa
Responder Con Cita
  #8 (permalink)  
Antiguo 28-06-2008, 10:04:30
Avatar de J.M.Movilla
Administrador
 
Registrado: dic 2002
Ubicación: BURGOS - ESPAÑA
Posts: 5.490
J.M.Movilla Valoración +2
Predeterminado Re: Mostrar Registros por Selección

Pues muchas gracias a ti por tus enfáticas alabanzas... Te advierto que lo que tú ves como grande no es nada más que fruto de tenerlo muy encima de tus ojos... porque la cosa no tiene mérito. Al revés, es una salida un tanto "chapucera" para saldar mi desconocimiento de una cláusula que tiene que existir para hacerlo directamente con SQL... pero que no hay forma de que yo la recuerde.

Y lo del "Goto Apertura" no es ni más ni menos que eso que tú apuntas: Buscamos si hay registros hoy; si no hay ninguno, reduzco la fecha de búsqueda (dFecha) en un día y vuelvo a buscar con esa nueva fecha; es decir, miro a ver si hay registros con fecha de ayer; si continúa sin haber registros, busco en anteayer... Y cuando hay algún registro, sale a presentarlo... Pero insisto en que es una pequeña chapucerilla... a falta de una buena fórmula.
__________________
José María Movilla Cuadrado
______________________
www.foro.vb-mundo.com
www.vb-mundo.com

Responder Con Cita
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado



La franja horaria es GMT. Ahora son las 22:08:27.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
A vBSkinworks Design

Alojado en el servicio Premium de Masquewebs | Diseño mejorado por MasqueWebs

right