Desactivar secuencia de campo autonumérico

Tengo un formulario para introducir registros acerca de hallazgos que hacen agentes de un equipo de trabajo. Este formulario tiene un campo llave llamado "Finding_ID", el cual genera un numero autonumérico secuencialmente y en forma incremental, para que cada uno de los "tracks" que hacen los usuarios, tengan un ID automático.
Este campo esta bloqueado, para que así se popule solo, y no le puedan camibar el numero de ID, al igual que no permite duplicados.
El punto es que cuando un usuario entra en el formulario y empieza un registro, apenas introduce un dato en un campo, el ID se genera de una vez, pero si la persona sin haber terminado el track y sin salvarlo ( de por si no puede dejar el track a medias ya que todos los campos son "requeridos") se sale del formulario, el track no se guarda, pero ese numerito que se había generado en el campo Finding ID si se guarda, entonces la siguiente vez que un usuario ingresa al formulario, se genera otro numero automáticamente, y queda un hueco en la tabla osea : 179, 180, 181, 183... Y no se sabe donde quedo el Finding # 182.
No se si hay alguna forma de que este campo no se guarde, sin que el resto del registro este completo, ¿cómo en los demás campos que componen el formulario?
Slds

1 respuesta

Respuesta
1
Ingresa los datos en un formulario sin control source que el usuario llene todos los campos de la tabla en textbox con el control source vacío y crea un botón guardar en este botón crea un recordset que guarde la información que el usuario dígito en los textbox. Crea otro botón cancelar que cierre el form o limpie los textbox y así la tabla no tuvo cambios ni tampoco se genero otro ID para agregar registros con un record set el código es así:
dim db as dao.database
dim rs as dao.recordset
set db = currentdb
set rs = db.openrecordset("tabla")
with rs
.addnew
!campotabla = me.textbox.value
.update
.close
end with
Ok perfecto, entiendo el concepto de porque se tiene que quitar el control source para poder evitar lo que me sucede con este formulario.
Ahora, honestamente yo nunca he usado un recordset, ni se nada de SQL, así que entiendo muy poco el significado de cada símbolo dentro del código, por lo que ocupo preguntarte porque es que me sale un error con el siguiente código (adaptado a mi formulario):
Private Sub Save_Finding_Click()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("TRACKING")
With rs
.AddNew
!F_ID = Me.TextBox.Value
!Dat = Me.TextBox.Value
!Pro = Me.TextBox.Value
!Rev = Me.TextBox.Value
!Sup = Me.TextBox.Value
!Man = Me.TextBox.Value
!BU = Me.TextBox.Value
!Vou = Me.TextBox.Value
!Amo = Me.TextBox.Value
!Vou = Me.TextBox.Value
!F_Typ = Me.TextBox.Value
!F_Com = Me.TextBox.Value
!Sta = Me.TextBox.Value
!R_Com = Me.TextBox.Value
!F_Det_by = Me.TextBox.Value
!Ent_Dat = Me.TextBox.Value
.Update
.Close
End With
End Sub
(Te aclaro que el campo F_ID es Autonumber, Dat y Ent_Dat es de Date/Time, y Amo es de Currency).
Ahora segun ese codigo, Access me da un error cuando trato de salvar el registro, me dice "Compile error: Method or data member not found" y me marca esta parte del codigo ".TextBox" y me senala tambien para los campos que si son de texto inclusive.
Por lo que no se si es que eso no se ponía, o para que servia dentro del código, como te digo no conozco de este tipo de códigos y no se como arreglar ese error de Access.
Agradezco tu ayuda.
Slds
cuando digito me.textbox.value quiero decir:  me.txtnombredelcampoenelform.value en otras palabras:
Crea un formulario(Frmtrack). Para cada campo de la tabla "TRACKING" crea una caja de texto (textbox) por ejemplo tu tabla tiene 16 campos aprox. agrega a tu formulario 16 cajas de texto; a cada caja de texto asígnale un nombre(propiedad nombre de cada textbox) asociado al campo de la tabla así:
Para el campo F_ID crea un textbox llamado txtFID
para el campo DAT crea un textbox llamado txtDat y así para cada campo de la tabla
ahora para adicionar la información de tus texbox es así:
!F_ID = ME.txtFID.VALUE
!DAT = ME.txtDat.value
Y así para cada campo de tu tabla.
Ahora también para cada textbox que agregues a tu formulario tienes que asignarle un formato (fecha, Entero, Double, Currency, etc). Para agregar el formato en la propiedad formato de cada textbox tienes varias opciones tienes que seleccionar la que necesitas( para fecha selecciona la opción FECHA CORTA o SHORT DATE, para moneda selecciona MONEDA O CURRENCY en lo personal no trabajo con datos currency sino que con datos Double.) Cuando le agregues formatos a tus textbox o cajas de texto se quitara tu error.
Si tienes algún otro problema escribime y con gusto te ayudo
att
Antonio
Antonio... Te agradezco la forma tan sencilla en que me lo explicaste, más por el hecho de que no tengo experiencia en SQL, y sin esa pequeña aclaración nunca hubiera comprendido porque surgía el error.
Completamente aclarado la pregunta, y pude implementar este recordset en mi tabla.
Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas