Access - RecordSet no actualiza datos

 
Vista:

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.
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

RecordSet no actualiza datos

Publicado por jose (830 intervenciones) el 03/01/2013 17:10:48
saludos Roberto

mira como lo hago yo, que es otra forma de hacerlo


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Set rs = CreateObject("ADODB.RecordSet")
Set CON = Application.CurrentProject.Connection
 
c10 = "": c20 = "": c30 = "": c40 = """


Rem pone el campo debe  a 0     DEBE A 0

c10 = "UPDATE MOVIMIENTOS SET MOVIMIENTOS.DEBE = 0 "
 
c20 = " WHERE (((MOVIMIENTOS.DEBE) Is Null)  "
 
C30 = "  AND ((MOVIMIENTOS.NUMEASIENTO) Between  " & Str$([AI]) & " And  " & Str$([AF]) & "     ) "
 
c40 = "AND ((MOVIMIENTOS.FECHA) Between #" & Format$([FI], "dd/mm/yyyy") & "# And #" & Format$([FF], "dd/mm/yyyy") & " #));"
 
consulta = c10 & c20 & c30 & c40
 
rs.Open consulta, CON, adOpenDynamic, adLockOptimistic
 
otra actualizacion  -----------------------------
 
Rem NOMBRE A CUENTAS 3D
 
Set rs = CreateObject("ADODB.RecordSet")
Set CON = Application.CurrentProject.Connection
 
 
 
 
c10 = "": c20 = "": c30 = "": c40 = "": C50 = "": c60 = " ": c70 = "": c80 = ""
 
c10 = "UPDATE [CUENTAS-3D] RIGHT JOIN MOVIMIENTOS ON  ([CUENTAS-3D].ANIO = MOVIMIENTOS.ANNO) AND ([CUENTAS-3D].TITULAR = MOVIMIENTOS.TITULAR) AND ([CUENTAS-3D].CUENTA = MOVIMIENTOS.CUENTA3D)  SET MOVIMIENTOS.NOMBRECUENTA3D = [cuentas-3D].Nombrecuenta"
 
C50 = "  WHERE ( ((MOVIMIENTOS.NUMEASIENTO) Between  " & Str$([AI]) & " And  " & Str$([AF]) & "     ) "
 
c60 = "AND ((MOVIMIENTOS.FECHA) Between #" & Format$([FI], "dd/mm/yyyy") & "# And #" & Format$([FF], "dd/mm/yyyy") & " #));"
 
consulta = c10 & c20 & c30 & c40 & C50 & c60 & c70 & c80
 
rs.Open consulta, CON, adOpenDynamic, adLockOptimistic
 
 
MsgBox "PROCESO FINALIZADO "



de todas formas yo hago las cadenas de de consulta con el generador de consultas, luego adaptas los paramestros de where a la sintaxis de vba

espero te sirva
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