Que tal tengo una base de datos en el cual ingreso solicitudes de cheques o depósitos de diferentes departamentos y necesito llevar un control en el cual se vea reflejado quien solicto el cheche o deposito. Esto con el fin de deslindar responsabilidades. Al abrir la base de datos me pide un usuario y contraseña, posteriormente si esta dado de alta en la base me da acceso a un menu principal y en este elijo la opción que deseo realizar.
Selecciono la opción de Solicitudes de cheques y me proporciona un formulario en el cual esta la relación de cheque que se han realizado al presionar un botón me abre un formulario en el cual automáticamente aparece el nombre del usuario; al solicitar el departamento o tipo de solicitud automáticamente me genera un num consecutivo para dicho depto. Lleno los demás datos, al terminar o al hacer un nuevo registro quiero que me ingrese en el campo de la tabla de solicitudes el nombre del usuario que realizo el cheque. Sin más por el momento u en espera de su vaiosa ayuda
1 respuesta
Respuesta de Ulises Torres
-1
-1
Ulises Torres, manejo implacable, mi nave cibernética ...
Si aparece automáticamente el nombre del usuario en el formulario, lo que puedes hacer, es agregar en tu tabla de solicitudes el campo usuario, posteriormente agrega al formulario el campo usuario con la propiedad Visible = NO, para que no se vea, y en el evento Antes de Actualizar del formulario asigana el valor del campo en donde aparece el usuario al campo usuario y se cargara a la tabla al dar el botón Guardar.
Ok lo hice y no me lo proporciona te anexo el código para que me digas en que estoy mal Option Compare Database Option Explicit Private Sub Form_BeforeUpdate(Cancel As Integer) REF = Usuario End Sub Private Sub Form_Load() [REF] = Forms![Modulo principal].Form![REF] [CAT] = Forms![Modulo principal].Form![CAT] If [CAT] = 2 Or CAT = 3 Then Else MsgBox "Usted no tiene autorización para entrar a este Modulo", vbInformation, "MENSAJE DEL SISTEMA" DoCmd.Close End If End Sub Private Sub Tipo_Sol_AfterUpdate() ASIGNA_FOLIO End Sub Public Sub ASIGNA_FOLIO() Dim MSJ As String Dim RSP As String MSJ = "Desea asignar un folio a este registro....?" RSP = MsgBox(MSJ, vbYesNo, "MENSAJE DEL SISTEMA") If RSP = vbNo Then MsgBox "No se asignará ningun folio a este registro", vbInformation, "MENSAJE DEL SISTEMA" DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70 DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70 DoCmd.Close Else 'Dimensionamiento de Variables Dim db As Database Dim rs As Recordset Dim strSQL As String Dim REG As Long Dim RS1 As Recordset Dim strSQL1 As String Dim REG1 As Long Dim UF As Integer Dim NF As Integer Dim C As Long Dim U As Long 'Crea la intruccion SQL para llenar el recordset Set db = CurrentDb If [Tipo_Sol] = 2 Then Me.REFRESH 'Obtengo el conscutivo strSQL = "SELECT * FROM [Folios ASE];" Set rs = db.OpenRecordset(strSQL) C = rs!Consecutivo U = rs!Ultimo_Utilizado MsgBox "Consecutivo a utilizar: " & C, vbInformation, "FOLIOS CONSECUTIVOS DE LA ASE" strSQL1 = "SELECT * FROM [Solicitud de cheque o Depositos] Where ([ID_Registro]= " & Me.ID_Registro & ") ;" Set RS1 = db.OpenRecordset(strSQL1) [REG1] = RS1.RecordCount RS1.Edit RS1!Folio = "ASE" & "-" & C RS1.Update RS1.Bookmark = RS1.LastModified RS1.Close Me.REFRESH rs.Edit rs!Ultimo_Utilizado = rs!Ultimo_Utilizado + 1 rs!Consecutivo = rs!Consecutivo + 1 rs.Update rs.Bookmark = rs.LastModified rs.Close Me.REFRESH Else If [Tipo_Sol] = 3 Then Me.REFRESH 'Obtengo el conscutivo strSQL = "SELECT * FROM [Folios MTO];" Set rs = db.OpenRecordset(strSQL) C = rs!Consecutivo U = rs!Ultimo_Utilizado MsgBox "Consecutivo a utilizar: " & C, vbInformation, "FOLIOS CONSECUTIVOS DE MANTENIMIENTO" strSQL1 = "SELECT * FROM [Solicitud de cheque o Depositos] Where ([ID_Registro]= " & Me.ID_Registro & ") ;" Set RS1 = db.OpenRecordset(strSQL1) [REG1] = RS1.RecordCount RS1.Edit RS1!Folio = "MTO" & "-" & C RS1.Update RS1.Bookmark = RS1.LastModified RS1.Close Me.REFRESH rs.Edit rs!Ultimo_Utilizado = rs!Ultimo_Utilizado + 1 rs!Consecutivo = rs!Consecutivo + 1 rs.Update rs.Bookmark = rs.LastModified rs.Close Me.REFRESH Else If [Tipo_Sol] = 4 Then Me.REFRESH 'Obtengo el conscutivo strSQL = "SELECT * FROM [Folios REC];" Set rs = db.OpenRecordset(strSQL) C = rs!Consecutivo U = rs!Ultimo_Utilizado MsgBox "Consecutivo a utilizar: " & C, vbInformation, "FOLIOS CONSECUTIVOS DE REC" strSQL1 = "SELECT * FROM [Solicitud de cheque o Depositos] Where ([ID_Registro]= " & Me.ID_Registro & ") ;" Set RS1 = db.OpenRecordset(strSQL1) [REG1] = RS1.RecordCount RS1.Edit RS1!Folio = "REC" & "-" & C RS1.Update RS1.Bookmark = RS1.LastModified RS1.Close Me.REFRESH rs.Edit rs!Ultimo_Utilizado = rs!Ultimo_Utilizado + 1 rs!Consecutivo = rs!Consecutivo + 1 rs.Update rs.Bookmark = rs.LastModified rs.Close Me.REFRESH Else If [Tipo_Sol] = 5 Then Me.REFRESH 'Obtengo el conscutivo strSQL = "SELECT * FROM [Folios VAR];" Set rs = db.OpenRecordset(strSQL) C = rs!Consecutivo U = rs!Ultimo_Utilizado MsgBox "Consecutivo a utilizar: " & C, vbInformation, "FOLIOS CONSECUTIVOS DE VAR" strSQL1 = "SELECT * FROM [Solicitud de cheque o Depositos] Where ([ID_Registro]= " & Me.ID_Registro & ") ;" Set RS1 = db.OpenRecordset(strSQL1) [REG1] = RS1.RecordCount RS1.Edit RS1!Folio = "VAR" & "-" & C RS1.Update RS1.Bookmark = RS1.LastModified RS1.Close Me.REFRESH rs.Edit rs!Ultimo_Utilizado = rs!Ultimo_Utilizado + 1 rs!Consecutivo = rs!Consecutivo + 1 rs.Update rs.Bookmark = rs.LastModified rs.Close Me.REFRESH End If Me.REFRESH If [Tipo_Sol] = 6 Then Me.REFRESH 'Obtengo el conscutivo strSQL = "SELECT * FROM [Folios MAP];" Set rs = db.OpenRecordset(strSQL) C = rs!Consecutivo U = rs!Ultimo_Utilizado MsgBox "Consecutivo a utilizar: " & C, vbInformation, "FOLIOS CONSECUTIVOS DE MAP" strSQL1 = "SELECT * FROM [Solicitud de cheque o Depositos] Where ([ID_Registro]= " & Me.ID_Registro & ") ;" Set RS1 = db.OpenRecordset(strSQL1) [REG1] = RS1.RecordCount RS1.Edit RS1!Folio = "MAP" & "-" & C RS1.Update RS1.Bookmark = RS1.LastModified RS1.Close Me.REFRESH rs.Edit rs!Ultimo_Utilizado = rs!Ultimo_Utilizado + 1 rs!Consecutivo = rs!Consecutivo + 1 rs.Update rs.Bookmark = rs.LastModified rs.Close Me.REFRESH End If End If End If End If End If End Sub La tabla que utilizo son las siguientes Usuarios Categorías ¿Estas dos dan privilegios al menu principal o te puedo mandar mi base para que la cheques mejor?
Preferiría me enviaras tu base, para poder entender mejor, aparentemente tu código se ve bien. mail: [email protected]