[RESUELTO]ID automático se salta registros
[RESUELTO]ID automático se salta registros
Buenas, verán, en mi base de datos tengo un listado de clientes identificados con un ID, el problema está en que cuando a través de un formulario introduzco nuevos clientes, el ID se inserta automàticamente pero, a veces se salta algún número, por ejemplo inserto un cliente dónde le da el ID 20 y el siguiente le da el 22, luego el 23, .... y asi, saltándose el 21 (suele pasar cuando le doy a guardar y hay algun campo no insertado que necesite entrada o repetido)
¿Alguien que me pueda ayudar? grácias.
¿Alguien que me pueda ayudar? grácias.
Última edición por lodo20 el Mié Mar 08, 2017 4:41 pm, editado 1 vez en total.
LibreOffice 4 en windows7
Re: ID automático se salta registros
Hola,
Por lo que comentas, el problema puede ser debido a que has eliminado un registro, por lo que al insertar uno nuevo ese número se pierde, esto es algo natural de Base. Si el ID simplemente es para control de tus clientes, no importa que desaparezca algún número, otra cosa es que te sirva para saber la cantidad de clientes que tienes, en este caso tendrás que de alguna forma numerarlos.
Saludos
Por lo que comentas, el problema puede ser debido a que has eliminado un registro, por lo que al insertar uno nuevo ese número se pierde, esto es algo natural de Base. Si el ID simplemente es para control de tus clientes, no importa que desaparezca algún número, otra cosa es que te sirva para saber la cantidad de clientes que tienes, en este caso tendrás que de alguna forma numerarlos.
Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
Re: ID automático se salta registros
si simplemente es para control nada mas, aunque a veces, cambiando el ID en la tabla, se arregla y vuelve a introducir en su orden.
gracias
gracias
LibreOffice 4 en windows7
Re: ID automático se salta registros
Buenas noches.
Eso pasa siempre con los campos autonuméricos.
Me acuerdo en Microsoft Office que ya me pasaba.
El modo de solucionarlo era que al entrar los datos mediante formulario, el campo Id se calcule con una formula o macro.
Siempre el último de la tabla + 1.
Te paso lo que tenía sobre el cuadro contador, en un fichero de texto de hace años.
Es de Access, a ver si te vale para algo:
Eso pasa siempre con los campos autonuméricos.
Me acuerdo en Microsoft Office que ya me pasaba.
El modo de solucionarlo era que al entrar los datos mediante formulario, el campo Id se calcule con una formula o macro.
Siempre el último de la tabla + 1.
Te paso lo que tenía sobre el cuadro contador, en un fichero de texto de hace años.
Es de Access, a ver si te vale para algo:
Código: Seleccionar todo
Formularios : frmContador
----------------------------------------------------------------------CCUADRO TEXTO CONTADOR EN FUNCIONARIO CONTINUO
Autor/es:
José Bengoechea Ibaceta (Chea)
Pregunta : Tengo un formulario en formato continuo o tabular y quisiera saber si hay alguna manera de poner un cuadro de texto que me muestre el número de registro correspondiente a cada fila.
Respuesta : La función frmContador hace exactamente eso. Puedes utilizarla desde Visual Basic, o como Origen del control de un cuadro de texto en un formulario. Tiene los siguientes
Argumentos
Argumento Descripción
frm Requerido. Variable objeto del formulario en el cual se quieren numerar los registros
Se la puede llamar desde Visual Basic así:
' asignando su valor a una variable o a un cuadro de texto
' y llamándola desde el mismo formulario
NumeroDeRegistro = frmContador(Me)
' o llamándola desde otro formulario
NumeroDeRegistro = frmContador(Forms!NombreFormulario)
o bien poniéndola como Origen del Control en un cuadro de texto directamente, de esta manera
= frmContador(Forms!NombreFormulario)
'---------------------------------------------------------
'
' frmContador
'
' Código escrito originalmente por José Bengoechea Ibaceta
' Estás autorizado a utilizarlo dentro de una aplicación
' siempre que esta nota de autor permanezca inalterada.
' En el caso de querer publicarlo en una página Web,
' por favor, contactar con el autor en
'
' j.bcheaTARARIQUETEVI@wanadoo.es
'
' Este código se brinda por cortesía de
' José Bengoechea Ibaceta
'
Dim lngContador As String
Public Function frmContador(frm As Form) As Long
On Error GoTo frmContador_err
With frm.RecordsetClone
.Bookmark = frm.Bookmark
frmContador = 1 + .AbsolutePosition
End With
Exit Function
frmContador_err:
' estas líneas realmente no se necesitan pues
' si se produce cualquier error, la función
' devolverá 0 igualmente, pero se deja aquí
' a nivel de información
If Err = 3021 Then 'no hay registro activo
lngContador = 0
End If
End Function
'---------------------------------------------------------
LibreOffice 5.3.1.1 - Fedora 25 (Principal)
OpenOffice 3 - Windows 7 (trabajo)
OpenOffice 3 - Windows 7 (trabajo)
Re: ID automático se salta registros
Un saludo, que me he despistado.
Emiliano.
Emiliano.
LibreOffice 5.3.1.1 - Fedora 25 (Principal)
OpenOffice 3 - Windows 7 (trabajo)
OpenOffice 3 - Windows 7 (trabajo)
Re: ID automático se salta registros
Los campos autonumericos tiene como finalidad ser un identificador unico del registro en la tabla (la clave primaria PK), y nunca debiera ser modificado, de esta forma son muy seguros y eficientas para ser utilizados como campo de enlace en las relaciones entre tablas.
Así se evita duplicar datos en distintas tablas, por ejemplo la referencia o nombre de un artículo, solo los archivamos en la tabla de artículos, y en el resto de las tablas que lo referencian tenemos solo el ID (PK) del artículo en su tabla de artículos, que ocupa menos que la referencia del artículo o su descripción. Además esto nos permite modificar cualquier dato del artículo incluida su referencia sin necesidad de hacer modificaciones en cascada en todas las tablas en las que está relacionado.
Aunque al principio cuesta un poco acostumbrarse, especialmente porque obliga a SQL un poco mas complejas, hace las bases de datos mucho mas eficientes y compactas.
También suele utilizarse una tabla auxiliar para guardar la númeración de los documentos en base de datos complejas, otra alternativa es asignar el mayor + 1 de los existentes en la tabla
Así se evita duplicar datos en distintas tablas, por ejemplo la referencia o nombre de un artículo, solo los archivamos en la tabla de artículos, y en el resto de las tablas que lo referencian tenemos solo el ID (PK) del artículo en su tabla de artículos, que ocupa menos que la referencia del artículo o su descripción. Además esto nos permite modificar cualquier dato del artículo incluida su referencia sin necesidad de hacer modificaciones en cascada en todas las tablas en las que está relacionado.
Aunque al principio cuesta un poco acostumbrarse, especialmente porque obliga a SQL un poco mas complejas, hace las bases de datos mucho mas eficientes y compactas.
También suele utilizarse una tabla auxiliar para guardar la númeración de los documentos en base de datos complejas, otra alternativa es asignar el mayor + 1 de los existentes en la tabla
Puedes usar "Subir adjunto" en Respuesta rápida - Editor Completo - Pestaña Subir adjunto
Apache OpenOffice 4, LibreOffice (Win10x64)
Apache OpenOffice 4, LibreOffice (Win10x64)
Re: ID automático se salta registros
Buenas tardes.
Te envío una solución que encontré en los foros y tenía guardado el enlace.
La he empleado en algún formulario.
Es de RMG, de los más activos del foro y que mas soluciones nos aportan:
https://forum.openoffice.org/es/forum/v ... ura#p25858
Espero que te sirva.
Un saludo,
Emiliano
Te envío una solución que encontré en los foros y tenía guardado el enlace.
La he empleado en algún formulario.
Es de RMG, de los más activos del foro y que mas soluciones nos aportan:
https://forum.openoffice.org/es/forum/v ... ura#p25858
Espero que te sirva.
Un saludo,
Emiliano
LibreOffice 5.3.1.1 - Fedora 25 (Principal)
OpenOffice 3 - Windows 7 (trabajo)
OpenOffice 3 - Windows 7 (trabajo)
Re: [RESUELTO]ID automático se salta registros
Muchas gracias, ya está solucionado gracias al enlace del foro, me ayudó mucho
LibreOffice 4 en windows7