RecordSet no actualiza datos
Publicado por Roberto (145 intervenciones) el 02/01/2013 17:49:17
Buenas.
Tengo un código bastante sencillo a priori pero que no logro que actualice un recordset.
El código es el siguiente:
Set CST = CurrentDb.OpenRecordset("select * From [CONSULTA MENSUALIDADES_AUMENTANDO PAGA] where [ANO]= " & Me!ANOUNAPAGAMAS & " And [ANOPORC] = " & Me!ANOUNAPAGAMAS & " And [NUMMESSALAR] >= " & Me!MESUNAPAGAMAS.ListIndex & "")
CST.MoveFirst
On Error Resume Next
While Not CST.EOF
TOTAL_PAGAS = CST!NUMPAGAS + 1
BASE_COTIZA_MAXIMA = 3262.5
CALCULO_DIAS = (12 - Me.MESUNAPAGAMAS.ListIndex)
CALCULO_DIAS = CALCULO_DIAS * 30
BASE_COTIZACION = Round((Nz(CST!BASE + CST!ANTIG) / CALCULO_DIAS), 4)
BASE_COTIZACION = Round((BASE_COTIZACION * 30), 3)
BASE_COTIZACION = Round((BASE_COTIZACION * TOTAL_PAGAS), 2)
BASE_COTIZA_NOMINA = Round((Nz(CST!BASE + CST!ANTIG + CST!INCENT + CST!IDIOM + CST!OTROS + CST!OTROS1 + CST!COMI + CST!PPEXTRA + CST!CIT + CST!ITBAJA) + (BASE_COTIZACION)), 2)
If CST!TIPO_CONTRATO = "Fijo" Then
PORC_DESEMP = 0.0155
Else
PORC_DESEMP = 0.016
End If
If BASE_COTIZA_NOMINA < BASE_COTIZA_MAXIMA Then
BASE_COTIZA_CONT_DESEM_FP = BASE_COTIZA_NOMINA
Else
BASE_COTIZA_CONT_DESEM_FP = BASE_COTIZA_MAXIMA
End If
----------------------- Hasta aquí todo correcto.recorre el RecordSet CST y hace las operaciones. ------
Set sst = CurrentDb.OpenRecordset("select * From [Sueldos] where [ID_SALAR]= " & CST!ID_SALAR)
sst.Edit
sst!CONTCOM = Format(Round(BASE_COTIZA_CONT_DESEM_FP) * 0.047, "-#,##0.00", 2)
sst!DESEMP = Format(Round(BASE_COTIZA_CONT_DESEM_FP) * PORC_DESEMP, "-#,##0.00", 2)
sst!FORMPROF = Format(Round(BASE_COTIZA_CONT_DESEM_FP) * 0.001, "-#,##0.00", 2)
sst.Update
--------------------------------------- En esta parte es donde no me actualiza absolutamente nada. No se si el tema estará en la condición del Set sst pq he probado con una variable en lugar del CST!ID_SALAR y tampoco me actualiza nada.
Un saludo y gracias.
Tengo un código bastante sencillo a priori pero que no logro que actualice un recordset.
El código es el siguiente:
Set CST = CurrentDb.OpenRecordset("select * From [CONSULTA MENSUALIDADES_AUMENTANDO PAGA] where [ANO]= " & Me!ANOUNAPAGAMAS & " And [ANOPORC] = " & Me!ANOUNAPAGAMAS & " And [NUMMESSALAR] >= " & Me!MESUNAPAGAMAS.ListIndex & "")
CST.MoveFirst
On Error Resume Next
While Not CST.EOF
TOTAL_PAGAS = CST!NUMPAGAS + 1
BASE_COTIZA_MAXIMA = 3262.5
CALCULO_DIAS = (12 - Me.MESUNAPAGAMAS.ListIndex)
CALCULO_DIAS = CALCULO_DIAS * 30
BASE_COTIZACION = Round((Nz(CST!BASE + CST!ANTIG) / CALCULO_DIAS), 4)
BASE_COTIZACION = Round((BASE_COTIZACION * 30), 3)
BASE_COTIZACION = Round((BASE_COTIZACION * TOTAL_PAGAS), 2)
BASE_COTIZA_NOMINA = Round((Nz(CST!BASE + CST!ANTIG + CST!INCENT + CST!IDIOM + CST!OTROS + CST!OTROS1 + CST!COMI + CST!PPEXTRA + CST!CIT + CST!ITBAJA) + (BASE_COTIZACION)), 2)
If CST!TIPO_CONTRATO = "Fijo" Then
PORC_DESEMP = 0.0155
Else
PORC_DESEMP = 0.016
End If
If BASE_COTIZA_NOMINA < BASE_COTIZA_MAXIMA Then
BASE_COTIZA_CONT_DESEM_FP = BASE_COTIZA_NOMINA
Else
BASE_COTIZA_CONT_DESEM_FP = BASE_COTIZA_MAXIMA
End If
----------------------- Hasta aquí todo correcto.recorre el RecordSet CST y hace las operaciones. ------
Set sst = CurrentDb.OpenRecordset("select * From [Sueldos] where [ID_SALAR]= " & CST!ID_SALAR)
sst.Edit
sst!CONTCOM = Format(Round(BASE_COTIZA_CONT_DESEM_FP) * 0.047, "-#,##0.00", 2)
sst!DESEMP = Format(Round(BASE_COTIZA_CONT_DESEM_FP) * PORC_DESEMP, "-#,##0.00", 2)
sst!FORMPROF = Format(Round(BASE_COTIZA_CONT_DESEM_FP) * 0.001, "-#,##0.00", 2)
sst.Update
--------------------------------------- En esta parte es donde no me actualiza absolutamente nada. No se si el tema estará en la condición del Set sst pq he probado con una variable en lugar del CST!ID_SALAR y tampoco me actualiza nada.
Un saludo y gracias.
Valora esta pregunta


0