Problemas con Visual Basic

Hola! Tengo un problema con un programa que estoy creando en Visual Basic 6.0. Necesito cargar un valor a un campo de una base de datos en sql desde visual basic 6.0, lo esta cargando, el problema surge debido a que necesito por ejemplo cargar 20000 al campo Saldo_Anterior de todos los registros que tengan en el campo NServicio "6001", me los deja a todos en 20000, si lo vuelvo a cargar el valor 20000 me queda en 40000 y así sucesivamente, me los deja a todos iguales pero necesito que me sume 20000 al valor que ya existe en el campo, es decir, si tengo un registro con 10000 se deben sumar y quedar en 30000 y otro registro que también tenga en NServicio el valor 6001 y en Saldo_anterior tenga valor 5000 me quede en 25000, sin embargo me están quedando todos iguales de 20000 en 20000. Alguien puede ayudarme por favor o que alguien me indique como puedo recorrer la tabla registro por registro y a aquel registro que tenga en NServicio el valor 6001 sumarle un valor al campo Saldo_Anterior al valor que existe en ese campo. Esto es lo que estoy haciendo:
Dim cad As String
Set san = New ADODB.Recordset
cad = "select * from saldo_anterior "
san.Open (cad), cnn
S6001 = 20000
S6002 = 22000
S6003 = 25000
If san.EOF = False Then
san.MoveFirst
While Not san.EOF
If san!NServicio = "6001" Then
        sal = S6001 + san!saldo_anterior
    cad = "Update saldo_anterior Set saldo_anterior = '" & sal & "'"
    cnn.Execute "Update saldo_anterior Set saldo_anterior='" & sal & "', Mes='" & Text6 & "' where NServicio = '" & 6001 & "'"
End If
If san!NServicio = "6002" Then
        sal = S6002 + san!saldo_anterior
    cad = "Update saldo_anterior Set saldo_anterior = '" & sal & "'"
    cnn.Execute "Update saldo_anterior Set saldo_anterior='" & sal & "', Mes='" & Text6 & "' where NServicio = '" & 6002 & "'"
End If
If san!NServicio = "6003" Then
        sal = S6003 + san!saldo_anterior
    cad = "Update saldo_anterior Set saldo_anterior = '" & sal & "'"
    cnn.Execute "Update saldo_anterior Set saldo_anterior='" & sal & "', Mes='" & Text6 & "' where NServicio = '" & 6003 & "'"
End If
San.MoveNext
Wend
End If

1 respuesta

Respuesta
1
(xxxxxx)
El problema que tienes que hacer lo entiendo y es muy fácil pero no entiendo una cosa:
1. ¿Tienes una tabla saldo_anterior que contiene un campo saldo_anterior?
2. Para que usas la variable cad en cada IF? Inicialmente lo usas para abrir la conexion, pero no veo razon/motivo para reusar la variable si no se usa en el codigo que posteas, en realidad cad = "Update saldo_anterior Set saldo_anterior = '" & sal & "'" no tiene uso alguno
¿Por qué no creas un cursor para realizar la operación (si necesitas hacer varias operaciones) o en su defecto una consulta (update) directa en el servidor?
Creo que esta complicando de más la tarea a realizar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas