Programación General > Visual Basic 6.0 e inferiores
Update & Sql Server 2000
juravi:
Hola a todos sere brebe. como hago para guardar numeros consecutivos en un update. Por ejemplo
:devil:
--- Citar ---num = 1024
Set RSMensuales = Nothing
RSMensuales.Open "UPDATE TMensual SET fac_mes = '" & Trim(num) & "'" & _
"WHERE per_mes = '" & per & "'", CnSQLconexion, adOpenKeyset, adLockOptimistic
--- Fin de la cita ---
si hay 3 registros afectados se guarde asi
1025
1026
y 1027
pero con un solo update y sin ciclo .... :blink:
desarrollo:
hola juravi :hola:
tal vez los ke buscas es la de lsgte manera:
--- Código: Text ---num = 1024Set RSMensuales = NothingRSMensuales.Open "UPDATE TMensual SET fac_mes = '" & Trim(num+1) & "'" & "," & " fac_mes = '" & Trim(num+2) & "'" & "," & " fac_mes = '" & Trim(num+3) & "'" & _"WHERE per_mes = '" & per & "'", CnSQLconexion, adOpenKeyset, dLockOptimistic
si no es asi lo ke kieres entonces puedes amplair mas tu consulta....
nos vemos
desarrollo :comp:
juravi:
Hola desarrollo, mira dejame esplicarte mejor la cosa es asi.
Yo tengo una tabla que tiene unos registros que se actualizan mensualmente, y en la actualizacion se toma un numero base que de alli se comiensa a enumerar las facturas. por decir el numero base es 100. y en ese mes hay 5 facturas. el proceso lo que hace es ponerle el numero de factura(q inisialmente es nulo) de forma consecutiva.
El antes estaba con un while pero es que se usaba access de BD pero ahora se cambio a sql server y con una sola consulta se actualizan todos de una sola vez sin la necesidad de hacer el ciclo while y como solo se controla por el periodo,
mira antes estaba asi
--- Citar ---num=100
while not.eof
if periodo = per then
.edith
.field("fac_mes") = Trim(num)
.update
.movenext
num= num + 1
end if
wend
--- Fin de la cita ---
y si habian 5 sera asi. 100, 101,..105
Antes si se podia hacer pero ahora con sql es otra cosa ya que el busca todos los registros que cumplan con la misma condision y los actualiza de un vez.
asi
--- Citar ---num = 100
Set RSMensuales = Nothing
RSMensuales.Open "UPDATE TMensual SET fac_mes = '" & Trim(num) & "'" & _
"WHERE per_mes = '" & per & "'", CnSQLconexion, adOpenKeyset, adLockOptimistic
--- Fin de la cita ---
Como hago para que ponga la enumeracion verdadera por que asi le pone el mismo valor a todos los registros que esten en el mismo periodo. Ya trate poniendole num + 1 y nada lo suma y se lo pone a todos los del periodo osea 5 101.
Saludos
vbmc_2004:
Hola Juravi...
mira no quiero parecer un experto en sql server con visual basic pero yo realice hace muy poco un sistema de compra y ventas de vehiculos y lo que tenia que hacer es que los embarques que llegaran a la automotora, venian con una guia de despacho y en el cual yo hacia el siguiente proceso
ejemplo:
ingrese cantidad vehiculos del embarque: 5 ?
se iniciaba la base de datos en 100 por ejemplo, he iba ingresaba los 5 vehiculos que trai el embarque, con sus datos respectivos n motor, chasis,puertas,color etc...hasta que completaba los 5 vehiculos , luego el sistema detectaba que yo o el usuario ingreso los Nº de vehiculos(5) que tenia la guia de despacho y me generaba en forma correlativa los registros de ingresos de vehiculos...
paso dos.
cuando llegaba otro embarque con 10 vehiculos los ingresaba de nuevo...
llamaba a la tabla correspondiente, la recorria hasta llegar al final del archivo tomando el ultimo numero de registro que en este caso (ejemplo seria el 104 y le sumaba +1 entiendes me imagino) y repetia el mismo proceso. pero siempre utilice un WHILE para recorrer la tabla y no una instruccion UPDATE si no que un INSER INTO .....
ojala te sirva a me funciono sin ningun problema..
haaa.
pd tambien tenia una factura que operaba casi similar
nos vemos espero que te sirva de algo debes igual realizar un ciclo he ir ingresando la factura una a una a la ves hasta llegar a completar la cantidad de facturas... cambiar la instruccion UPDATE por un insert haaa otra debes tener en cuenta que el numero de factura es una CLAVE PRINCIPAL ninguna factura debe tener el mismo numero por lo cual creo que no en esa tabla no tiene una clave principal por eso tambien te deja el mismo numero..
chau espero que te sirva
salu2 y que estes bien...
atte
VBMC_2004
juravi:
Hola vbmc_2004 y gracias.
Yo te entiendo, yo hice una rutina paresida, pero mi jefe dice que puede y no puede servir. ya que como se esta trabajando con facturas la enumeracion tiene que ser consecutiva. Mira por ejemplo. con la rutina que desarrolle el busca el ultimo registro(factura) de ese periodo y le suma una. hasta alli no hay problema. El problema esta en que si se elimina una factura por decir habian 15 y elimine la 8(1008) la 15 tiene por ejm(1015) al introducir otra factura el cuenta que hay es 14 + 1 seria 15 osea(1015) y ya seria error(duplisidad)( y el sistema maneja por mes un minimo de 300 facturas) yadema se imprime en unas hojas de facturas ya enumeradas y ese eso el otro problema. por eso es que quiero como autoenumerar en un Update.
Alguien tiene una solucion, se lo agardesco.
Saludos
Navegación
[#] Página Siguiente
Ir a la versión completa