Cuentas de usuario
Hola quisiera me ayudaran lo que pasa es que estoy haciendo un sistema de control de empleados y quiero hacer cuentas de usuario y que dependiendo de la cuenta tenga restricciones por ejemplo el administrador tenga derecho a todo un supervisor solo a algunas opciones como podría ser consultas altas guardar algo así espero me pudieran decir como hacerlo o alguna idea por favor
Respuesta de jesspg
1
1
El tema de seguridad de Access se podría decir que es casi infinito y lo que expones en tu pregunta deja muchas cuestiones sin tratar, ¿cómo por ejemplo tu archivo es único?, lo utilizan varios usuarios, ¿pero en varios equipos? ,.... etc., etc., etc.
Te puedo decir también, que Access incorpora una serie de herramientas de seguridad encaminadas a la gestión de usuarios y permisos que puedes utilizar, aunque antes deberías comprobar las ventajas y los inconvenientes de usarlas. En la ventana de Access, abre el menu "Herramientas" y veras "Seguridad"
Te puedo decir también, que Access incorpora una serie de herramientas de seguridad encaminadas a la gestión de usuarios y permisos que puedes utilizar, aunque antes deberías comprobar las ventajas y los inconvenientes de usarlas. En la ventana de Access, abre el menu "Herramientas" y veras "Seguridad"
Gracias por tu respuesta pues la verdad si pienso ponerla en red no entendí muy bien eso de que si mi archivo es único ahorita he estado intentando hacer las cuentas programandolas ya cheque eso de herramientas y seguridad pero soy honesto no le entendí mucho
este es el código que he estado realizando :
Dim busqueda As String
Option Compare Database
Public LoginSucceeded As Boolean
Private Sub aceptar_Click()
Dim buscar As String
'comprobar si la contraseña es correcta
busqueda = nick
buscar = "select * from usuarios where nick='" & busqueda & "'"
If Texto2 = nick & Texto4 = contraseña Then
'colocar código aquí para pasar al sub
'que llama si la contraseña es correcta
'lo más fácil es establecer una variable global
LoginSucceeded = True
usuarios.Recordset.AddNew
nombres.Text = Texto2
fecha.Text = Date
h_inicio.Text = Time
Me.RecordSource = buscar
On Error GoTo Err_aceptar_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "formmenu"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_aceptar_Click:
Exit Sub
Err_aceptar_Click:
MsgBox Err.Description
Resume Exit_aceptar_Click
Else
MsgBox "nick o contraseña no válida. Vuelva a intentarlo", , "Inicio de sesión"
Texto4.SetFocus
Texto2.SetFocus
SendKeys "{Home}+{End}"
End If
End Sub
Private Sub cancelar_Click()
On Error GoTo Err_cancelar_Click
'establecer la variable global a false
'para indicar un inicio de sesión fallido
LoginSucceeded = False
DoCmd.Quit
Exit_cancelar_Click:
Exit Sub
Err_cancelar_Click:
MsgBox Err.Description
Resume Exit_cancelar_Click
End Sub
ademas agrege un modulo con el siguiente codigo:
Option Compare Database
Public alt As Boolean
Public baj As Boolean
Public cons As Boolean
Public modi As Boolean
Public inf As Boolean
Public arch As Boolean
Public act As Boolean
Al momento de introducir el nick y la contraseña me manda directo al else supongo que no esta haciendo la comparación entre los cuadros de texto
te pongo mi msn para pasarte el programa y lo puedas checar si quieres es [email protected]
este es el código que he estado realizando :
Dim busqueda As String
Option Compare Database
Public LoginSucceeded As Boolean
Private Sub aceptar_Click()
Dim buscar As String
'comprobar si la contraseña es correcta
busqueda = nick
buscar = "select * from usuarios where nick='" & busqueda & "'"
If Texto2 = nick & Texto4 = contraseña Then
'colocar código aquí para pasar al sub
'que llama si la contraseña es correcta
'lo más fácil es establecer una variable global
LoginSucceeded = True
usuarios.Recordset.AddNew
nombres.Text = Texto2
fecha.Text = Date
h_inicio.Text = Time
Me.RecordSource = buscar
On Error GoTo Err_aceptar_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "formmenu"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_aceptar_Click:
Exit Sub
Err_aceptar_Click:
MsgBox Err.Description
Resume Exit_aceptar_Click
Else
MsgBox "nick o contraseña no válida. Vuelva a intentarlo", , "Inicio de sesión"
Texto4.SetFocus
Texto2.SetFocus
SendKeys "{Home}+{End}"
End If
End Sub
Private Sub cancelar_Click()
On Error GoTo Err_cancelar_Click
'establecer la variable global a false
'para indicar un inicio de sesión fallido
LoginSucceeded = False
DoCmd.Quit
Exit_cancelar_Click:
Exit Sub
Err_cancelar_Click:
MsgBox Err.Description
Resume Exit_cancelar_Click
End Sub
ademas agrege un modulo con el siguiente codigo:
Option Compare Database
Public alt As Boolean
Public baj As Boolean
Public cons As Boolean
Public modi As Boolean
Public inf As Boolean
Public arch As Boolean
Public act As Boolean
Al momento de introducir el nick y la contraseña me manda directo al else supongo que no esta haciendo la comparación entre los cuadros de texto
te pongo mi msn para pasarte el programa y lo puedas checar si quieres es [email protected]
Vamos a ver: te propongo lo siguiente para establecer un control de usuarios y accesos a la aplicación. ´Con ellos puedes establecer el control de usuarios registrando su accesos, caducidad de contraseñas, además se establece a 3 el número de intentos de acceso. Pruébalo y ya me contarás :
Crea una tabla "Usuarios" donde das permisos a los usuarios que quieras, con los campos siguientes:
Usuario, FechaPass, NIvel, pass, Dias Validez, Sexo, FallosIdentificacion, UltimoAcceso, UltimaHora
Crea otra tabla "RegAccesos" para guardar los accesos que se hacen a la aplicación. Con los campos siguientes: Fecha, Hora, Usuario, Equipo, Observ
Crea un formulario que se abra automáticamente al iniciar la aplicación con los campos txtUsuario, txtContraseña, una etiqueta que se llame "lblMensajes" y un botón
En el evento al salir del campo txtUsuario coloca este código:
Private Sub txtUsuario_Exit(Cancel As Integer)
If Nz(txtUsuario, "") = "" Then
Cancel = True
End If
End Sub
En el evento Al Salir del campo txtContraseña coloca este código:
Private Sub txtContraseña_Exit(Cancel As Integer)
Dim xbusca As Variant
Dim xAcceso As Variant
Dim xFallo As Integer
Dim xFecha As Date
Static NumeroIntentos As Integer
Dim Saludo As String
Dim xDia As Integer
Dim FI As Integer
NumeroIntentos = NumeroIntentos + 1
xbusca = DLookup("[Pass]", "Usuarios", "[Pass] = '" & txtContraseña & "' and [Usuario] ='" & txtUsuario & "'")
xFallo = DLookup("[FallosIdentificacion]", "Usuarios", "[Usuario] ='" & txtUsuario & "'")
If xFallo >= 3 Then
' Registrar acceso en RegAccesos
DoCmd.SetWarnings False
DoCmd. RunSQL "INSERT INTO RegAccesos (Fecha, Hora, Usuario, Equipo, Observ) VALUES(CDate(Date()), Time(), txtUsuario, serial,'Fallo Identif.')"
DoCmd.SetWarnings True
MsgBox "Violación de seguridad ROT13" & vbCrLf & "ES MUY POSIBLE QUE OTRA PERSONA LE ESTE SUPLANTANDO" & vbCrLf & "Contacte urgentemente con el administrador de la aplicación", vbCritical, "VIOLACION DE SEGURIDAD"
DoCmd.Quit
Else
If Nz(xbusca, "") <> txtContraseña Then
' Registrar acceso en RegAccesos
DoCmd.SetWarnings False
DoCmd. RunSQL "INSERT INTO RegAccesos (Fecha, Hora, Usuario, Equipo, Observ) VALUES(CDate(Date()), Time(), txtUsuario, serial,'Fallo Identif.')"
DoCmd.SetWarnings True
Cancel = True
Call Error("Error", "La contraseña no es valida, intento." & NumeroIntentos, _
"si no recuerdas tu contraseña puedes recuperarla pulsando en la opción ""Recuperar mi Contraseña."" ")
Else
' Registrar acceso en RegAccesos
DoCmd.SetWarnings False
DoCmd. RunSQL "INSERT INTO RegAccesos (Fecha, Hora, Usuario, Equipo, Observ) VALUES(CDate(Date()), Time(), txtUsuario, serial,'Identificación CORRECTA')"
DoCmd.SetWarnings True
NumeroIntentos = 0
xbusca = DLookup("[sexo]", "Usuarios", "[Usuario] ='" & txtUsuario & "'")
If xbusca = "M" Then
Saludo = ", bienvenida "
Else
Saludo = ", bienvenido "
End If
xbusca = DLookup("[Nivel]", "Usuarios", "[Usuario] ='" & txtUsuario & "'")
xAcceso = DLookup("[UltimoAcceso]", "Usuarios", "[Usuario] ='" & txtUsuario & "'")
lblMensajes.Caption = "Hola " & txtUsuario & Saludo & ". Tu nivel de acceso es " & xbusca & vbCrLf & "La última vez que abriste tu sesión fue el " & xAcceso
' actualizar FechaPass en la tabla
DoCmd.SetWarnings False
DoCmd.RunSQL "UPDATE Usuarios SET Usuarios.UltimoAcceso = CDate(Date()) " _
& "WHERE ([Usuarios]![Usuario] = txtUsuario)"
DoCmd.SetWarnings True
' actualizar Ultimahora en la tabla
DoCmd.SetWarnings False
DoCmd.RunSQL "UPDATE Usuarios SET Usuarios.Ultimahora = Time() " _
& "WHERE ([Usuarios]![Usuario] = txtUsuario)"
DoCmd.SetWarnings True
End If
xFecha = DLookup("[FechaPass]", "Usuarios", "Usuario='" & txtUsuario & "'")
xDia = DLookup("[DiasValidez]", "Usuarios", "Usuario='" & txtUsuario & "'")
FI = Date - xFecha
If FI = xDia - 6 Then
MsgBox "Su contraseña caduca en 6 días. Debe cambiarla o será eliminado como usuario de GIPv9.1", vbCritical + vbOKOnly, "AVISO DE SEGURIDAD"
Else
If FI = xDia - 5 Then
MsgBox "Su contraseña caduca en 5 días. Debe cambiarla o será eliminado como usuario de GIPv9.1", vbCritical + vbOKOnly, "AVISO DE SEGURIDAD"
Else
If FI = xDia - 4 Then
MsgBox "Su contraseña caduca en 4 días. Debe cambiarla o será eliminado como usuario de GIPv9.1", vbCritical + vbOKOnly, "AVISO DE SEGURIDAD"
Else
If FI = xDia - 3 Then
MsgBox "Su contraseña caduca en 3 días. Debe cambiarla o será eliminado como usuario de GIPv9.1", vbCritical + vbOKOnly, "AVISO DE SEGURIDAD"
Else
If FI = xDia - 2 Then
MsgBox "Su contraseña caduca en 2 días. Debe cambiarla o será eliminado como usuario de GIPv9.1", vbCritical + vbOKOnly, "AVISO DE SEGURIDAD"
Else
If FI = xDia - 1 Then
MsgBox "Su contraseña caduca mañana. Debe cambiarla o será eliminado como usuario de GIPv9.1", vbInformation + vbOKOnly, "AVISO DE SEGURIDAD"
Else
If FI = xDia Then
MsgBox "Su contraseña caduca hoy. Debe cambiarla o será eliminado como usuario de GIPv9.1", vbInformation + vbOKOnly, "AVISO DE SEGURIDAD"
Else
If FI > xDia Then
MsgBox "Ud no ha renovado su contraseña en el plazo permitido y ya no es usuario de GIPv9.1. Contacte con el administrador de su aplicación", vbInformation + vbOKOnly, "ACCESO NO PERMITIDO"
DoCmd.RunSQL "DELETE * FROM Usuarios WHERE [Usuario] = txtUsuario"
DoCmd.Quit
Else
If NumeroIntentos = 3 Then
DoCmd.SetWarnings False
DoCmd.RunSQL "UPDATE Usuarios SET Usuarios.FallosIdentificacion = Usuarios.FallosIdentificacion + 1 " _
& "WHERE ([Usuarios]![Usuario] = txtUsuario)"
DoCmd.SetWarnings True
DoCmd.Quit
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End Sub
En el evento Al Hacer clic del botón escribe el código necesario para abrir luego el formulario, acción, macro, etc., que desees, por ejemplo:
Dim stDocName As String
stDocName = "cierrePrincipalEntrada1"
DoCmd. RunMacro stDocName
Crea una tabla "Usuarios" donde das permisos a los usuarios que quieras, con los campos siguientes:
Usuario, FechaPass, NIvel, pass, Dias Validez, Sexo, FallosIdentificacion, UltimoAcceso, UltimaHora
Crea otra tabla "RegAccesos" para guardar los accesos que se hacen a la aplicación. Con los campos siguientes: Fecha, Hora, Usuario, Equipo, Observ
Crea un formulario que se abra automáticamente al iniciar la aplicación con los campos txtUsuario, txtContraseña, una etiqueta que se llame "lblMensajes" y un botón
En el evento al salir del campo txtUsuario coloca este código:
Private Sub txtUsuario_Exit(Cancel As Integer)
If Nz(txtUsuario, "") = "" Then
Cancel = True
End If
End Sub
En el evento Al Salir del campo txtContraseña coloca este código:
Private Sub txtContraseña_Exit(Cancel As Integer)
Dim xbusca As Variant
Dim xAcceso As Variant
Dim xFallo As Integer
Dim xFecha As Date
Static NumeroIntentos As Integer
Dim Saludo As String
Dim xDia As Integer
Dim FI As Integer
NumeroIntentos = NumeroIntentos + 1
xbusca = DLookup("[Pass]", "Usuarios", "[Pass] = '" & txtContraseña & "' and [Usuario] ='" & txtUsuario & "'")
xFallo = DLookup("[FallosIdentificacion]", "Usuarios", "[Usuario] ='" & txtUsuario & "'")
If xFallo >= 3 Then
' Registrar acceso en RegAccesos
DoCmd.SetWarnings False
DoCmd. RunSQL "INSERT INTO RegAccesos (Fecha, Hora, Usuario, Equipo, Observ) VALUES(CDate(Date()), Time(), txtUsuario, serial,'Fallo Identif.')"
DoCmd.SetWarnings True
MsgBox "Violación de seguridad ROT13" & vbCrLf & "ES MUY POSIBLE QUE OTRA PERSONA LE ESTE SUPLANTANDO" & vbCrLf & "Contacte urgentemente con el administrador de la aplicación", vbCritical, "VIOLACION DE SEGURIDAD"
DoCmd.Quit
Else
If Nz(xbusca, "") <> txtContraseña Then
' Registrar acceso en RegAccesos
DoCmd.SetWarnings False
DoCmd. RunSQL "INSERT INTO RegAccesos (Fecha, Hora, Usuario, Equipo, Observ) VALUES(CDate(Date()), Time(), txtUsuario, serial,'Fallo Identif.')"
DoCmd.SetWarnings True
Cancel = True
Call Error("Error", "La contraseña no es valida, intento." & NumeroIntentos, _
"si no recuerdas tu contraseña puedes recuperarla pulsando en la opción ""Recuperar mi Contraseña."" ")
Else
' Registrar acceso en RegAccesos
DoCmd.SetWarnings False
DoCmd. RunSQL "INSERT INTO RegAccesos (Fecha, Hora, Usuario, Equipo, Observ) VALUES(CDate(Date()), Time(), txtUsuario, serial,'Identificación CORRECTA')"
DoCmd.SetWarnings True
NumeroIntentos = 0
xbusca = DLookup("[sexo]", "Usuarios", "[Usuario] ='" & txtUsuario & "'")
If xbusca = "M" Then
Saludo = ", bienvenida "
Else
Saludo = ", bienvenido "
End If
xbusca = DLookup("[Nivel]", "Usuarios", "[Usuario] ='" & txtUsuario & "'")
xAcceso = DLookup("[UltimoAcceso]", "Usuarios", "[Usuario] ='" & txtUsuario & "'")
lblMensajes.Caption = "Hola " & txtUsuario & Saludo & ". Tu nivel de acceso es " & xbusca & vbCrLf & "La última vez que abriste tu sesión fue el " & xAcceso
' actualizar FechaPass en la tabla
DoCmd.SetWarnings False
DoCmd.RunSQL "UPDATE Usuarios SET Usuarios.UltimoAcceso = CDate(Date()) " _
& "WHERE ([Usuarios]![Usuario] = txtUsuario)"
DoCmd.SetWarnings True
' actualizar Ultimahora en la tabla
DoCmd.SetWarnings False
DoCmd.RunSQL "UPDATE Usuarios SET Usuarios.Ultimahora = Time() " _
& "WHERE ([Usuarios]![Usuario] = txtUsuario)"
DoCmd.SetWarnings True
End If
xFecha = DLookup("[FechaPass]", "Usuarios", "Usuario='" & txtUsuario & "'")
xDia = DLookup("[DiasValidez]", "Usuarios", "Usuario='" & txtUsuario & "'")
FI = Date - xFecha
If FI = xDia - 6 Then
MsgBox "Su contraseña caduca en 6 días. Debe cambiarla o será eliminado como usuario de GIPv9.1", vbCritical + vbOKOnly, "AVISO DE SEGURIDAD"
Else
If FI = xDia - 5 Then
MsgBox "Su contraseña caduca en 5 días. Debe cambiarla o será eliminado como usuario de GIPv9.1", vbCritical + vbOKOnly, "AVISO DE SEGURIDAD"
Else
If FI = xDia - 4 Then
MsgBox "Su contraseña caduca en 4 días. Debe cambiarla o será eliminado como usuario de GIPv9.1", vbCritical + vbOKOnly, "AVISO DE SEGURIDAD"
Else
If FI = xDia - 3 Then
MsgBox "Su contraseña caduca en 3 días. Debe cambiarla o será eliminado como usuario de GIPv9.1", vbCritical + vbOKOnly, "AVISO DE SEGURIDAD"
Else
If FI = xDia - 2 Then
MsgBox "Su contraseña caduca en 2 días. Debe cambiarla o será eliminado como usuario de GIPv9.1", vbCritical + vbOKOnly, "AVISO DE SEGURIDAD"
Else
If FI = xDia - 1 Then
MsgBox "Su contraseña caduca mañana. Debe cambiarla o será eliminado como usuario de GIPv9.1", vbInformation + vbOKOnly, "AVISO DE SEGURIDAD"
Else
If FI = xDia Then
MsgBox "Su contraseña caduca hoy. Debe cambiarla o será eliminado como usuario de GIPv9.1", vbInformation + vbOKOnly, "AVISO DE SEGURIDAD"
Else
If FI > xDia Then
MsgBox "Ud no ha renovado su contraseña en el plazo permitido y ya no es usuario de GIPv9.1. Contacte con el administrador de su aplicación", vbInformation + vbOKOnly, "ACCESO NO PERMITIDO"
DoCmd.RunSQL "DELETE * FROM Usuarios WHERE [Usuario] = txtUsuario"
DoCmd.Quit
Else
If NumeroIntentos = 3 Then
DoCmd.SetWarnings False
DoCmd.RunSQL "UPDATE Usuarios SET Usuarios.FallosIdentificacion = Usuarios.FallosIdentificacion + 1 " _
& "WHERE ([Usuarios]![Usuario] = txtUsuario)"
DoCmd.SetWarnings True
DoCmd.Quit
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End Sub
En el evento Al Hacer clic del botón escribe el código necesario para abrir luego el formulario, acción, macro, etc., que desees, por ejemplo:
Dim stDocName As String
stDocName = "cierrePrincipalEntrada1"
DoCmd. RunMacro stDocName
Hola otra vez te agradezco la ayuda que me estas brindando, puse todo como me dijiste solo que al momento de introducir el nombre de usuario y después pasarme al cuadro de contraseña me dice que me marca un error me dice: La expresión 'Al salir' que introdujo como valor de la propiedad de evento produjo un error: el numero de argumentos es incorrecto o la asignación de propiedad no es valida.
*la expresion no da como resultado el nombre de un macro, de una funcion definida por el usuario o [procedimiento de evento]
*hubo un error al evaluar una funcion, evento o macro.
Ayer estuve trabajando con el código que te enseñe y ya puedo hacer que entre checando el usuario y la contraseña pero no puedo hacer que a la hora de entrar dependiendo del usuario que entre deshabilite los botones dependiendo de los permisos que tenga
te mando lo que he hecho por cualquier cosa
Dim busqueda As String
Option Compare Database
Public LoginSucceeded As Boolean
Private Sub aceptar_Click()
Dim buscar As String
'comprobar si la contraseña es correcta
busqueda = Texto1
Me.RecordSource = "select * from usuarios where nick='" & busqueda & "'"
If Texto1 = nick Then
If Texto2 = contraseña Then
alt = Me.alt.Value
baj = Me.baj.Value
cons = Me.cons.Value
modi = Me.modi.Value
'colocar código aquí para pasar al sub
'que llama si la contraseña es correcta
'lo más fácil es establecer una variable global
LoginSucceeded = True
Me.RecordSource = buscar
On Error GoTo Err_aceptar_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "formmenu"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_aceptar_Click:
Exit Sub
Err_aceptar_Click:
MsgBox Err.Description
Resume Exit_aceptar_Click
Else
MsgBox "contraseña no válida. Vuelva a intentarlo", , "Inicio de sesión"
Texto2.SetFocus
End If
Else
MsgBox "nick no valido. Vuelva a intentarlo", , "Inicio de sesion"
Texto1.SetFocus
End If
End Sub
Private Sub cancelar_Click()
On Error GoTo Err_cancelar_Click
'establecer la variable global a false
'para indicar un inicio de sesión fallido
LoginSucceeded = False
DoCmd.Quit
Exit_cancelar_Click:
Exit Sub
Err_cancelar_Click:
MsgBox Err.Description
Resume Exit_cancelar_Click
End Sub
*la expresion no da como resultado el nombre de un macro, de una funcion definida por el usuario o [procedimiento de evento]
*hubo un error al evaluar una funcion, evento o macro.
Ayer estuve trabajando con el código que te enseñe y ya puedo hacer que entre checando el usuario y la contraseña pero no puedo hacer que a la hora de entrar dependiendo del usuario que entre deshabilite los botones dependiendo de los permisos que tenga
te mando lo que he hecho por cualquier cosa
Dim busqueda As String
Option Compare Database
Public LoginSucceeded As Boolean
Private Sub aceptar_Click()
Dim buscar As String
'comprobar si la contraseña es correcta
busqueda = Texto1
Me.RecordSource = "select * from usuarios where nick='" & busqueda & "'"
If Texto1 = nick Then
If Texto2 = contraseña Then
alt = Me.alt.Value
baj = Me.baj.Value
cons = Me.cons.Value
modi = Me.modi.Value
'colocar código aquí para pasar al sub
'que llama si la contraseña es correcta
'lo más fácil es establecer una variable global
LoginSucceeded = True
Me.RecordSource = buscar
On Error GoTo Err_aceptar_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "formmenu"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_aceptar_Click:
Exit Sub
Err_aceptar_Click:
MsgBox Err.Description
Resume Exit_aceptar_Click
Else
MsgBox "contraseña no válida. Vuelva a intentarlo", , "Inicio de sesión"
Texto2.SetFocus
End If
Else
MsgBox "nick no valido. Vuelva a intentarlo", , "Inicio de sesion"
Texto1.SetFocus
End If
End Sub
Private Sub cancelar_Click()
On Error GoTo Err_cancelar_Click
'establecer la variable global a false
'para indicar un inicio de sesión fallido
LoginSucceeded = False
DoCmd.Quit
Exit_cancelar_Click:
Exit Sub
Err_cancelar_Click:
MsgBox Err.Description
Resume Exit_cancelar_Click
End Sub
En la tabla "Usuarios" debes introducir al menos uno, es decir, debe contener al menos un registro. Y lo siento pero se me escapoó un error y es el siguiente:
El campo del formulario denominado txtUsuario es un cuadrocombinado con origen en la tabla Usuarios. Por lo tanto cambialo a CuadroCombinado.
A parte de esto, también dará error, si escribes el código para el botón tal y como lo he puesto y lo dejas así, ya que la macro a la que hace referencia el código ("cierrePrincipalEntrada1"), todavía no existe.
El campo del formulario denominado txtUsuario es un cuadrocombinado con origen en la tabla Usuarios. Por lo tanto cambialo a CuadroCombinado.
A parte de esto, también dará error, si escribes el código para el botón tal y como lo he puesto y lo dejas así, ya que la macro a la que hace referencia el código ("cierrePrincipalEntrada1"), todavía no existe.
- Compartir respuesta
- Anónimo
ahora mismo