Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/03/2010, 09:14
juanfosaiz
 
Fecha de Ingreso: marzo-2005
Mensajes: 118
Antigüedad: 19 años, 1 mes
Puntos: 1
Respuesta: No me llena el MSFlexGrid (VB6 sp6)

' ************************************************** ********
' BÚSQUEDA DE RENOVACIONES
' ************************************************** ********

If Not Option1(1).Value Then
' Sólo renovaciones, no caducados.

Screen.MousePointer = 11
' Limpiamos primero las dos rejillas de resultados.
If ARenovarEmpresa.Rows > 1 Then
For I = ARenovarEmpresa.Rows - 1 To 1 Step -1
ARenovarEmpresa.RemoveItem I
Next I
End If
ARenovarEmpresa.AddItem " " & Chr(9) & " " & Chr(9) & " " & Chr(9) & " " & Chr(9) & " ",
ARenovarEmpresa.Rows - 1
ARenovarEmpresa.Rows = 1
If ARenovarCESOL.Rows > 1 Then
For I = ARenovarCESOL.Rows - 1 To 1 Step -1
ARenovarCESOL.RemoveItem I
Next I
End If
ARenovarCESOL.AddItem " " & Chr(9) & " " & Chr(9) & " " & Chr(9) & " " & Chr(9) & " ",
ARenovarCESOL.Rows - 1
ARenovarCESOL.Rows = 1
InstSQL = "SELECT CERTIFICADO.* FROM CERTIFICADO WHERE ((TIPO = " & TipoEN & ") "
InstSQL = InstSQL & "AND NOT ANULADO AND NOT CADUCADO) "
'Añadido a esta linea AND NOT CADUCADO para que no muestre mas que los que se deben renovar
InstSQL = InstSQL & "ORDER BY [FECHA-CERTIFICADO]; "
Set Rec_Certificado = BD_SOLDADORES.OpenRecordset(InstSQL, dbOpenDynaset)
If Rec_Certificado.RecordCount >= 1 Then
Rec_Certificado.MoveFirst
Do While Not Rec_Certificado.EOF

Num_Certificado = Rec_Certificado("NUM-CERTIFICADO")
fecha = Rec_Certificado("FECHA-CERTIFICADO")
InstSQL = "SELECT [RENUEVA-CESOL].* FROM [RENUEVA-CESOL] "
InstSQL = InstSQL & "WHERE [NUM-CERTIFICADO] = '" & Num_Certificado & "' "
InstSQL = InstSQL & "ORDER BY FECHA;"
Set Rec_SoldadorRenovado = BD_SOLDADORES.OpenRecordset(InstSQL, dbOpenDynaset)
If Rec_SoldadorRenovado.RecordCount >= 1 Then
Rec_SoldadorRenovado.MoveLast
If Rec_SoldadorRenovado("RENOVACION-EFECTUADA") Then
fecha = Rec_SoldadorRenovado("FECHA-RENOVACION")
End If
End If
Rec_SoldadorRenovado.Close

For I = 1 To 12
' El certificado debe renovarse cada 6 meses por
'la empresa y cada 2 años por CESOL.


FechaCad = DateAdd("m", 6 * I, Rec_Certificado("fecha-certificado"))
If (FechaDesde <= FechaCad) And (FechaCad <= FechaHasta) Then
' Añadir a la lista de los que caducan

' Obtenemos primero los datos personales.
InstSQL = "SELECT DISTINCTROW CERTIFICADO.*, [DATOS-PERS].* "
InstSQL = InstSQL & "FROM [DATOS-PERS] INNER JOIN CERTIFICADO "
InstSQL = InstSQL & "ON [DATOS-PERS].[SOLDADOR-ID] = CERTIFICADO.[SOLDADOR-ID]

"
InstSQL = InstSQL & "WHERE (((CERTIFICADO.[NUM-CERTIFICADO]) = '" &
Rec_Certificado("NUM-CERTIFICADO") & "'));"
Set Rec_DatPers = BD_SOLDADORES.OpenRecordset(InstSQL, dbOpenDynaset)
If Rec_DatPers.RecordCount >= 1 Then
linea = Rec_DatPers("NUM-CERTIFICADO") & Chr(9) _
& Rec_DatPers("APELLIDO1") & " " & Rec_DatPers("APELLIDO2") & ", "
& Rec_DatPers("NOMBRE") & Chr(9) _
& FechaCad & Chr(9) & " " & I & "ª"
InstSQL = "SELECT DISTINCTROW [RENUEVA-EMPRESA].* "
InstSQL = InstSQL & "FROM [RENUEVA-EMPRESA] "
InstSQL = InstSQL & "WHERE (([NUM-CERTIFICADO] = '" &
Rec_Certificado("NUM-CERTIFICADO") & "') "
InstSQL = InstSQL & "AND [ENVIADA-CARTA]);"
Set Rec_RenovadoEmp = BD_SOLDADORES.OpenRecordset(InstSQL, dbOpenDynaset)
If Rec_RenovadoEmp.RecordCount >= 1 Then
Rec_RenovadoEmp.MoveFirst
Do While Not Rec_RenovadoEmp.EOF
If CDate(Rec_RenovadoEmp("FECHA")) = CDate(FechaCad) Then
linea = linea & Chr(9) & "*"
Exit Do
End If
Rec_RenovadoEmp.MoveNext
Loop
If Rec_RenovadoEmp.EOF Then
linea = linea & Chr(9) & " "
End If
Else
linea = linea & Chr(9) & " "
End If
Rec_RenovadoEmp.Close
If I Mod 4 <> 0 Then
' Es una renovación de empresa
ARenovarEmpresa.AddItem linea, ARenovarEmpresa.Rows - 1
End If
If I Mod 4 = 0 Then
' Renovación por CESOL
' Comprobar estado de la renovación por CESOL
InstSQL = "SELECT DISTINCTROW [RENUEVA-CESOL].* "
InstSQL = InstSQL & "FROM [RENUEVA-CESOL] "
InstSQL = InstSQL & "WHERE ([NUM-CERTIFICADO] = '" &
Rec_Certificado("NUM-CERTIFICADO") & "'); "
Set Rec_RenovadoCESOL = BD_SOLDADORES.OpenRecordset(InstSQL,
dbOpenDynaset)
If Rec_RenovadoCESOL.RecordCount = 0 Then
' No se le ha renovado ni se le ha enviado carta nunca.
' Puede añadirse a la lista de renovables.
linea = Rec_DatPers("NUM-CERTIFICADO") & Chr(9) _
& Rec_DatPers("APELLIDO1") & " " & Rec_DatPers("APELLIDO2")
& ", " & Rec_DatPers("NOMBRE") & Chr(9) _
& FechaCad & Chr(9) & " " & I / 4 & "ª"
ARenovarCESOL.AddItem linea, ARenovarCESOL.Rows - 1
Else
Rec_RenovadoCESOL.MoveFirst
Do While Not Rec_RenovadoCESOL.EOF
If (CDate(Rec_RenovadoCESOL("FECHA")) = CDate(FechaCad)) And _
Not Rec_RenovadoCESOL("RECIBIDA-DOCUMENTACION") Then
' Existe retistro de renovación del certificado, pero
'todavía no se ha recibido la documentación necesaria.
linea = Rec_Certificado("NUM-CERTIFICADO") & Chr(9) _
& Rec_DatPers("APELLIDO1") & " " &
Rec_DatPers("APELLIDO2") & ", " & Rec_DatPers("NOMBRE") & Chr(9) _
& FechaCad & Chr(9) & " " & I / 4 & "ª" & Chr(9) & " " & "*"
ARenovarCESOL.AddItem linea, ARenovarCESOL.Rows - 1
Else 'segunda renovación
linea = Rec_DatPers("NUM-CERTIFICADO") & Chr(9) _
& Rec_DatPers("APELLIDO1") & " " & Rec_DatPers("APELLIDO2")
& ", " & Rec_DatPers("NOMBRE") & Chr(9) _
& FechaCad & Chr(9) & " " & I / 4 & "ª"
ARenovarCESOL.AddItem linea, ARenovarCESOL.Rows - 1
End If
Rec_RenovadoCESOL.MoveNext
Loop
End If
Rec_RenovadoCESOL.Close
End If
End If
Rec_DatPers.Close
End If
Next
Rec_Certificado.MoveNext
Loop
Screen.MousePointer = 0

If ARenovarEmpresa.Rows = 1 Then
Beep
MsgBox "No existe ningún certificado que renovar en el periodo seleccionado",

vbInformation, Tit_Gen
Else
ARenovarEmpresa.Rows = ARenovarEmpresa.Rows - 1
End If
If ARenovarCESOL.Rows > 1 Then
ARenovarCESOL.Rows = ARenovarCESOL.Rows - 1
End If
Else
Beep
MsgBox "No existe ningún certificado en la base de datos", vbInformation, Tit_Gen
End If
End If
End If
End Sub
-----------------------------------------------------------------

Gracias y perdón por la parrafada, quizás me he pasado pidiendo ayuda con este post.

Última edición por juanfosaiz; 02/03/2010 a las 09:19 Razón: Ordenación de los datos