Menu

  • slider04-vb6sqlhd
  • slider01-vb6sqlhd
  • slider01-vb6sqlhd
  • slider01-vb6sqlhd
  • slider01
  • slider01
  • slider01
  • slider01

Suscríbete a Aprende-Viendo 5.0

Content

Como tomo el último valor de un id en una tabla, para usuarlo de manera incremental

Arturo el Miércoles, Mayo 01 2013, 06:56 PM
0
Buenas Tardes a todos
Alguien que me pueda ayudar u orientar, deseos crear una tabla donde el numero de id de empleado el cual tiene valor Numerico, NO Autonumerico, incremente su valor con +1, para uno de los nuevos registros que se capturen, tomando como base el último registro registrado es decir:

en la fila 3 tengo al usuario A y sus datos pero necesito que al capturar un nuevo registro tome el valor de la fila 3 y le sume 1, y lo marque con el registro 4, y así sucesivamente.
       
  • Respuesta de Junior Gomez el Martes, Mayo 07 2013, 06:45 PM · Ocultar · #1
    arturo, debes darle a la variable id_emp el valor del campo, osea, debes moverte al final de los registros, y ahi le asignas el valor digamos que seria mas o menos:
    wirh rs
    	.requery
    	if .bof or .eof then
    		id_emp = 1
    	else
    		.movelast
    		id_emp = !Numeracion + 1
    	end if
    end with
    


    esto hace que si no hay nada entonces el id es 1 y si ya existen registros entonces toma el valor del ultimo y le suma 1
    si tienes 5 registros el proximo seria 5 + 1, osea 6 y si borras los registros 2,3y4, igual será el 6... pero en mi opinion no debes de borrar registros de facturaciones, te recomiendo que utilices flags para darle estados a tus registros, por ejemplo en la tabla de productos, en vez de eliminar un articulo, le asignas un flag que cambie su estado de activo a inactivo, o descontinuado, o como quieras, de igual forma para los registros de ventas, por ejemplo yo utilizo un campo en la tabla de ventas, que lo llamo "Estado" (demasiado obvio?) ajaja, bueno, y tiene los valores: PAGADO, PENDIENTE, AMORTIZADO, VENCIDO, ANULADO, ELIMINADO, DEVOLUCION
  •  
  • Respuesta de Arturo el Domingo, Mayo 05 2013, 03:58 PM · Ocultar · #2
    Hola ya corregui el detalle de la numéracion consecutiva solo cambie un renglón en el codigo para que quedara como se ve abajo, y de esta manera comienza con el uno y sigue el orden y si ya hay un registro continua con el 2 y sigue con el orden, pero sigue sin tomar el valor de la fila 7 si elimino los registros intermedios entre el 1 y el 7 y me da como resultado un 3, comento que el campo que estoy usando es númerico, no autonúmerico, y si lo pongo como autonúmerico me duplica los valores del registro por ejemplo contando con dos filas con valor 3, y si lo pongo indexado si (sin duplicados) no me guarda el nuevo registro ya que crearia un valor duplicado, por lo cual necesito saber como tomar el ultimo valor del registro y sumarle 1 a ese valor para continuar con el consecutivo auque se hayan borrado registros intermedios no importa si esto lo se puede hacer con el campo en númerico o autonumerico. Gracias por su ayuda y apoyo de antemano.

    sub Contador()
    with rsEmpleado
    .requery
    if .bof or .eof then
    id_emp = .recordcount + 1
    else
    id_emp = .recordcount
    end if
    end with
    end sub
  •  
  • Respuesta de Arturo el Domingo, Mayo 05 2013, 03:29 PM · Ocultar · #3
    Hola Junio, Ronald y miembros de esta comunidad, tengo una consulta más, la respuesta que me brindo Junior si me es útil la prove llegando hasta el registro 7, y todos fueron consecutivos pero comenzando desde el 3 como ya mencione hay no le veo mucho problema, pero borre apropocito los registros del 3 al 6, esperando que el nuevo registro me diera 8, pero me da un 4, o sea no me esta tomando el valor del ultimo registro, que es lo que busco, alguna ayuda extra por favor.
  •  
  • Respuesta de Arturo el Domingo, Mayo 05 2013, 03:01 PM · Ocultar · #4
    Gracias Junior Funciona bien Aunque comienza con el 2 y después siguen los numeros consecutivamente como quería, y si pones un registro directo en la Base de datos se salta al 3 y luego sigue el consecutivo normal, Gracias por tu aporte a mi conocimiento. :)
  •  
  •  
    Respuesta de Junior Gomez el Domingo, Mayo 05 2013, 02:39 PM · Ocultar · #5
    puedes crear un sub Contador, y meter el resultado en una variable. por ejemplo:
    sub Contador()
    	with rsEmpleado
    		.requery
    		if .bof or .eof then
    			id_emp = 1
    		else
    			id_emp = .recordcount + 1 
    		end if
    	end with
    end sub
    
Agregar Tu Respuesta
Por favor registrese o ingrese para poder publicar su respuesta.

Agradesco tu Paciencia. Muchas Gracias por la espera! Somos Aprende Viendo 5.0

Grupo AprendeViendo & Ronald López agradecen a todos sus fieles seguidores por la larga espera. Basados en nuestro nuevo concepto, Grupo Aprendeviendo les ofrece un sin fin de posibilidades en sus largas horas de adiestramiento y soluciones de problemas tanto empresariales como cotidianos. Sigamos siendo un portal de enseñanza de virtual gratuito y más que eso!

Copyright © 2006 - 2014 - Grupo AprendeViendo & Ronald López. Todos los Derechos Reservados

Grupo AprendeViendo a sido desarrollado por Ronald López - Kalizron. Esta prohibida su reproducción total o parcial sin previa autorización de parte de sus autores. Ronald López Bahamonde - Resolución: 1024-768 - Aviso Legal - Términos de Uso

Log In or Register

fb iconLog in with Facebook