Dudas sobre operaciones de guardado de registros en tablas de base de datos desde visual basic

Hola! A ver si puedes echarme una mano con esto. Resulta que estoy intentando guardar un registro nuevo, asi que para que no haya problemas con la Id, lo que hago primero es recorrer la tabla donde quiero guardar los datos, y voy guardandome la Id del producto en una variable, de esta forma cuando llego al final de la tabla (rs.eof = True) sale del bucle While y lo que hago es aumentar en 1 esa variable y ya tengo la siguiente Id para guardar el registro. En todas las consultas donde he hecho esto me funciona a la perfección, pero en una se me queda en un registro, exactamente en el 1432 (no hay 1432 registros, pero como es autonumérico y estoy haciendo pruebas... Es lo que tiene) pero tengo más registros después de ese... Con lo que a la hora de guardar, no me deja, claro esta porque el 1433 existe y no puede ser (es clave principal)
¿Sabes a que podría deberse?
Muchas gracias. Un saludo. Marta

1 Respuesta

Respuesta
1
La solución es simple, antes de grabas debes validar si el ID ya existe y si es así incrementarlo hasta que encuentre uno que no exista.
Por otro lado para obtener el Id que sigue solo es necesaria una consulta SQl que te arroje el Id Max, "select Id from tabla where MAX(tabla.Id)" o algo así, busca en internet ejemplos, también puedes solo ir al final de la tabla y sacar el ultimo valor, esto para no recorrerla toda ademas es más rapido.
Recomiento usar el metodo Max de Sql y despues validar ese dato antes de grabarlo tal como te lo deciaen el primer parrafo.
Otro punto importante es que si el Id es autonumérico en Access por ejemplo, no necesitas grabarlo (el Id) ya que si grabas los demás registros access te grabara automáticamente ese registro y el programa no necesita validar si hacer nada.
prueba y me avisas.. suerte

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas