Visual Basic.NET - BD. Campo Autonumerico al momento de eliminar un registro que siga el No. de correlativo

 
Vista:
Imágen de perfil de Gerber
Val: 38
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

BD. Campo Autonumerico al momento de eliminar un registro que siga el No. de correlativo

Publicado por Gerber (19 intervenciones) el 26/01/2017 18:08:54
Buena tarde.

Necesito de su apoyo.


Conecte una BD. de acces a mi programa en visual y tengo la opcion de eliminar y todo funciona correctamente el unico detalle es.

Por ejemplo: si tengo 5 registros y elimino el No. 3 me queda de esta manera

No.
1
2
4
5

Y lo que necesito es que se auto numere siguiendo el No. de correlativo quedando de esta manera al momento que elimine el registro No 3.

No.
1
2
3
4


Gracias por el epoyo.
Saludos
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
Imágen de perfil de Edward
Val: 392
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

BD. Campo Autonumerico al momento de eliminar un registro que siga el No. de correlativo

Publicado por Edward (146 intervenciones) el 26/01/2017 18:40:57
Buen día para todos,

Gerber, en los campos autonumerico una vez eliminado un valor ya no es vuelto a generar.

Para lo que pretendes hacer tendrías que hacerlo mediante una función propia en donde te recorra la columna validando campo por campo y en donde se altere el consecutivo se ingrese el valor correspondiente. Pero la columna no debe ser autonumerico.

Ten en cuenta también que al realizar este proceso la integridad de los registros puede verse alterada debido a que si no das un correcto uso al campo identificador puedes tener registros dobles.


Espero haber sido de ayuda.

Que tengan buen día,

El conocimiento siempre debe ser compartido, para que entre todos aprendamos un poco mas...

Mas ejemplos acá...

https://aprendamosdeprogramacion.wordpress.com/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Gerber
Val: 38
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

BD. Campo Autonumerico al momento de eliminar un registro que siga el No. de correlativo

Publicado por Gerber (19 intervenciones) el 27/01/2017 15:53:29
Buen Dia.

Gracias Edward. solo podrias apoyarme nuevamente, como te comento tengo la opcion de eliminar registros en una BD.
codifique esta opcion para que eliminara los datos por medio del No. de registro. ejemplo:

Para Eliminar ingrese el No. de registro <---------------------------- Label
[ ] <-----------------------------textbox


No.
1
2
3
4
5



Como hago para que me muestre un msgbox si el numero de registro ingresado en mi textbox no existe por ejemplo si ingresara un No. 6 para eliminarlo me tendria que mostrar un mensaje ya que que el registro No. 6 aun no ha sido ingresado en mi BD

Gracias por el apoyo

Saludos.
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
Imágen de perfil de Edward
Val: 392
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

BD. Campo Autonumerico al momento de eliminar un registro que siga el No. de correlativo

Publicado por Edward (146 intervenciones) el 01/02/2017 14:43:58
Buen día para todos,

Gerber, revisa este link, te puede servir para validar si el registro existe en la base de datos.


http://www.lawebdelprogramador.com/foros/Visual-Basic.NET/1586542-NO-REPETIR-DATOS-EN-SQL-Y-VISUAL.html


Espero haber sido de ayuda.

Que tengan buen día,

El conocimiento siempre debe ser compartido, para que entre todos aprendamos un poco mas...

Mas ejemplos acá...

https://aprendamosdeprogramacion.wordpress.com/
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
Imágen de perfil de Diego
Val: 605
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

BD. Campo Autonumerico al momento de eliminar un registro que siga el No. de correlativo

Publicado por Diego (190 intervenciones) el 27/01/2017 00:32:05
Hola Gerber. Deberías redefinir el tipo de campo. Ya que el hecho de que sea autonumérico, la base de datos gestiona el registro del ultimo y cual es el próximo. Deberías poner que ese campo es solo numírico. Y vos encargarte de codificar la solucion , podrías usar ciclo for-each y recorrer a partir del registro eliminado. Todo depende de la cantidad de registros que debas reprocesar. Pero, es la solucion que se me ocurre. No se si es la mas óptima esa manera de encararlo.

Saludos y +bytes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Gerber
Val: 38
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

BD. Campo Autonumerico al momento de eliminar un registro que siga el No. de correlativo

Publicado por Gerber (19 intervenciones) el 27/01/2017 15:54:08
Buen Dia.

Gracias Diego. solo podrias apoyarme nuevamente, como te comento tengo la opcion de eliminar registros en una BD.
codifique esta opcion para que eliminara los datos por medio del No. de registro. ejemplo:

Para Eliminar ingrese el No. de registro <---------------------------- Label
[ ] <-----------------------------textbox


No.
1
2
3
4
5



Como hago para que me muestre un msgbox si el numero de registro ingresado en mi textbox no existe por ejemplo si ingresara un No. 6 para eliminarlo me tendria que mostrar un mensaje ya que que el registro No. 6 aun no ha sido ingresado en mi BD

Gracias por el apoyo

Saludos.
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
Imágen de perfil de Diego
Val: 605
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

BD. Campo Autonumerico al momento de eliminar un registro que siga el No. de correlativo

Publicado por Diego (190 intervenciones) el 27/01/2017 19:39:18
Hola Gerber, bueno si tus datos están guardados en un datatable en el momento de realizar la operación, te recomiendo lo siguiente, mira este ejemplo:

1
2
3
4
5
6
Dim da AS new oledbdataadapter("SELECT orden, descripcion FROM datos", conexion) 'Estableces la consulta e indicas la conexion a un dataAdapter
dim tablaDatos as new datatable 'Crear una tabla donde volcar los datos
 
da.fill(tabladatos) 'Llenas esa tabla con los datos devueltos por la consulta SELECT del dataadapter DA
 
tabladatos.primarykey = new datacolumn () {tabladatos.columns("orden")} 'Estableces una "clave primaria" para realizar busquedas

Bueno, esa es la parte donde recuperas los datos, eso es mucho antes de realizar cualquier otra operacion, ahora... en el boton eliminar deberias hacer lo siguiente, siempre se puedes hacer muchas mas validaciones, como por ejemplo que sea un numero lo que hay en textbox1 o que no esté vacio por ejemplo, eso lo voy a obviar, asi que ahi va el ejemplo...

1
2
3
if not isnothing(datos.rows.find(cint(textbox1.text))) then 'Ahi pregunto si la busqueda del registro escrito devuelve algun resultado
     datos.rows.find(cint(textbox1.text)).delete()
endif

Bueno, eso va a borrar el registro de tu datatable, no el valor en tu base de datos. Todo depende como estás manejando ese asunto, si lo que querés es borrar definitivamente ese valor de tu base a continuecion de la linea del FIND dentro del if deberías agregar un oledbcommand con un executeNonQuery con una consulta de eliminacion del registro que utilice el mismo textbox1.text como parámetro.

1
2
3
4
5
6
7
8
9
10
11
12
13
if not isnothing(datos.rows.find(cint(textbox1.text))) then 'Ahi pregunto si la busqueda del registro escrito devuelve algun resultado
     datos.rows.find(cint(textbox1.text)).delete() 'Lo seguis borrando del datatable para futuras eliminaciones y consultas en la misma sesion
 
       dim comando as new oledbcommand("DELETE FROM datos WHERE orden =" & textbox1.text, conexion)
       Try
               conexion.open()
               comando.ExecuteNonQuery()
       Catch
               msgbox (err.description)
       Finally
             conexion.close()
       End Try
endif

Bueno, espero haber sido claro.
Un abrazo y +Bytes.
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
sin imagen de perfil

BD. Campo Autonumerico al momento de eliminar un registro que siga el No. de correlativo

Publicado por arbol (166 intervenciones) el 28/01/2017 19:56:45
saludos
instala anydesck y enviame el id para guiarte con un ejemplo sencillo

estare a tus ordenes
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-4
Comentar
Imágen de perfil de Wilfredo Patricio Castillo
Val: 1.239
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

BD. Campo Autonumerico al momento de eliminar un registro que siga el No. de correlativo

Publicado por Wilfredo Patricio Castillo (720 intervenciones) el 29/01/2017 04:54:08
Lo que pides si se puede hacer, pero no por el hecho que se pueda hacer tienes que implementarlo, ya que es una idea descabellada, eso ni siquiera se debería mencionar.

Fíjate la situación:
Supongamos que tienes una tabla clientes, en la cual le asignas los ID, así como dice, 1,2,3,4,5,etc.

Entonces si eliminas el ID 3, cuando tengas 10 o hasta 100 registros podría ser manejable, pero que pasará cuando eso crezca?.

Ahora que si cada cliente llega a tener 1 millón de Ventas por ejemplo y muchas otras transacciones, como pagos o ingresos en caja, al eliminar un ID y regenerar los IDs, se rompería toda la integridad, entonces tendrías que romper las relaciones en todas las tablas que tengan ese ID, para luego volverlos a crear todas las transacciones con el nuevo ID.

Ahora te preguntaré:
¿Crees en realidad que hacer eso sería una buena idea?.
¿Sabes cuánto tiempo te llevaría todo esos procesos?.

Nunca hagas cosas porque creas que así serían, sino que tienes que buscar soluciones probadas y coherentes.

Saludos cordiales,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar
Imágen de perfil de Gerber
Val: 38
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

BD. Campo Autonumerico al momento de eliminar un registro que siga el No. de correlativo

Publicado por Gerber (19 intervenciones) el 29/01/2017 20:40:58
Exelente Gracias.


Por tu respuesta/observacion

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