Por partes, si el formulario tiene como origen de registros la tabla Usuarios, no necesitas para nada el botón Guardar. Access, por defecto, ya te lo guarda en la tabla. Por el contrario, si el formulario fuera independiente, tampoco lo necesitarías ya que en el mismo evento que te dije antes, en este caso del control Nivel de seguridad puedes poner la instrucción de anexar registros a la tabla Usuarios. Pero si es tu gusto tener el botón. Sigue manteniendo bloqueado el control Id_usuario y déjalo donde quieras, y en el evento Al hacer clic del botón creas un procedimiento de evento y lo pones como
Private Sub Nivel_Seguridad_AfterUpdate()
IdUsuario = Left([nivel_seguridad], 1) & Nz(DCount("*", "usuarios", "nivel_seguridad like '" & Me.nivel_seguridad & "'")) + 1
docmd.runcommand accmdsaverecord
End Sub
Me explico. Una vez que pulsas el botón, por un lado coge la primera letra de la izquierda del control Nivel_seguridad, es lo de
Left([nivel_seguridad],1)
Por otro lado cuenta cuantos registros hay en la tabla Usuarios hay con ese nivel de seguridad. Y a esa cantidad le añade un 1. Y concatena ambos valores
Y lo de docmd... es para que te guarde el valor
Lógicamente la primera vez que escribas de un nivel de seguridad, antes no hay nada, es nulo, por eso uso la función Nz, que si la pones tal como está te transforma los nulos en ceros, para poder sumarle un 1.
La función Nz que significa NullZero, antiguantemente sólo transformaba los nulos en ceros, para poder sumar los registro. Pero desde el 2007 hace lo que quieras(advierto, no cocina ni lava la ropa)
TextoA=nz([textoB]) si texto b es nulo TextoA=0
TextoA=nz([textoB],4) si textob es nulo TextoA=4
TextoA=Nz([textoB],"Adios Yudith") si texto B es nulo texto A es lo que te digo
Eso en código VB, si lo pones en el origen de un control o en una consulta tienes que cambiar la coma por punto y coma
De todas formas, cualquier cosa que necesites dímelo o si quieres, repito, si quieres, unos ejemplos de como lo haría mándame un mensaje (sólo el mensaje) a [email protected] y te los envío. Si haces esto último, en el asunto del mensaje pon tu alias Yudith, ya que si no sé quien me escribe ni los abro.