A todos siempre nos ha surgido la típica duda del auto numérico, ¿Por que no se actualiza como nos gustaría, incluso al compactar la BD? Pues bien tras investigar un ratito, hemos realizado un código que nos creara un campo auto numérico, que funciona incluso al borrar registros, es mas si nos damos cuenta en el control de desplazamiento de registro, podemos observar que el numero del Auto numérico coincide con el numero de registro en el que estamos en ese momento. Primero el campo que queréis que sea auto numérico debe ser Numérico, Entero Largo, Sin decimales, y Sin Duplicados.(Incluso podéis ponerle que sea el campo clave de la tabla). Tras esto veamos el código que ira en el Formulario: 'Primero definimos la variable que utilizaremos en 'este caso la llamamos Autonumerico. Dim Autonumerico As Integer ---------------------------------------------------- 'Ahora creamos el código para cuando carga el 'Formulario (Al cargar) Private Sub Form_Load() If ID_Linea <> Null Then Autonumerico = ID_Linea For Autonumerico = 0 To CurrentRecord Step 1 If Autonumerico <> CurrentRecord Then Me.[ID Linea] = CurrentRecord End If Form.Recordset.MoveNext Next Autonumerico End If End Sub 'Podéis ver que tenemos dos condiciones y un bucle 'La primera condición no indica que el campo que 'queramos que sea auto numérico es nulo, la variable 'Autonumerico será igual que el campo, y ahora viene 'el bucle que indica que si la variable es igual a 'cero salte hasta llegar al ultimo registro de uno 'en uno. Y otra condición, si la variable es distinta 'del registro actual entonces, el valor de nuestro 'campo ID Linea será igual que el registro actual. 'Otra cosa mirad que la ultima instrucción del bucle 'será que mueva un registro mas en el formulario. ----------------------------------------------- 'Bien ahora otra Sub que se iniciara cuando nuestro 'campo reciba el foco. 'Es una condición que indicara que si el registro 'actual es distinto de cero nuestro campo ID Linea 'será igual que el registro actual. Private Sub ID_Linea_GotFocus() If CurrentRecord <> 0 Then ID_Linea = CurrentRecord End If End Sub Espero que lo encontréis de utilidad. Un Saludo, Héctor Hernández. Yeremy Santana.