Abrir formulario para editar o sólo lectura

He seguido los ejemplos de la web de Neckkito, pero estoy algo atascada, ya que no funciona como quiero. Quiero abrir un formulario en un registro concreto. Hasta ahí todo bien. El problema surge cuando quiero abrir el formulario en modo edición, si el usuario que introdujo los datos es el mismo que lo abre, o en modo sólo lectura, si el registro que se quiere abrir ha sido introducido por otro usuario. Cada registro tiene identificado el usuario al que pertenece. Claro está, que si es el administrador de la base de datos, debe abrirse siempre en modo lectura.

La cuestión es que el formulario siempre se abre en modo edición y nunca en modo lectura. He puesto el siguiente código:

Private Sub Form_Open(Cancel As Integer)
    Dim nombreUsuario As String
    nombreUsuario = Forms!FChivato.txtUser.Value
    If nombreUsuario = NomUser o "ADMINISTRADOR" Then
    DoCmd.OpenForm "PIEZAS"
    Else
    DoCmd.OpenForm "PIEZAS", , , , acFormReadOnly
    End If
End Sub

¿Sabes qué es lo que hago mal?

1 Respuesta

Respuesta

Primero checa si estas usando correctamente el (OR). Luego tienes que corregir esto:

If nombreUsuario = NomUser o nombreusuario= "ADMINISTRADOR" then

Buenos días, muchas gracias por responder. He probado, pero el formulario siempre se abre en modo edición y nunca se abre como sólo lectura.

Este es el código actual siguiendo tu recomendación:

Dim nombreUsuario As String
    nombreUsuario = Forms!FChivato.txtUser.Value
    If nombreUsuario = NomUser Or nombreUsuario = "ADMINISTRADOR" Then
    DoCmd.OpenForm "PIEZAS", , , , acFormEdit
    Else
    DoCmd.OpenForm "PIEZAS", , , , acFormReadOnly
    End If

¿Sabrías decirme por qué nunca se abre en modo edición?

Gracias por tu ayuda.

Perdón, quiero decir que siempre se abre en modo edición, pero nunca en modo de sólo lectura.

Gracias de antemano.

Si solo tienes estos dos tipos de usuario (Nomuser y Administrador) es lógico que nunca pase por la opción de solo lectura, pues estás utilizando un (OR) y siempre se cumple la condición para modo edición.

Añade tu respuesta

Haz clic para o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.

Más respuestas relacionadas