Como refencio una tabla

Y disculpa por lo de la pregunta anterior pero hubieras esperado para calificarte por que si me sirvió tu primero respuesta con los usuarios de mi base de datos y de antemano gracias por todo
Tengo esta duda mira necesito hacer una bitácora en la cual si un usuario entra y por ejemplo guarda un registro, meter el nombre del usuario en un tabla que se llama Bitácora para esto cree un modulo llamado Modulouser con una variable publica llamada user, en mi formulario de inicio de sesión para usuarios tengo un botón de accesar en el cual al validar mi usuario lo guardo en la variable user de mi Modulouser .
En mi formulario principal tengo botones para moverme entre registros uno de guardar, borrar e imprimir, todos lo botones ejecutan macros, cree un modulo llamado Inserta y este es su código
Option Compare Database
Public Function Insertaguarda()
Bitacora!Accion = "Guardo Registro"
Bitacora!Usuario = Modulouser.user
End Function
Lo que hago es desde el macro de botón guardar llamo a la función Insertaguarda() del modulo Inserta
con la cual quiero guardar en mi tabla Bitácora el usuario que guardo y que fue lo que hizo(osea guardar)
lo que pasa es que al momento de oprimir el botón guardar me sale lo siguiente
"Se ha producido el error '424' en tiempo de ejecución: se requiere un objeto"
por lo que deduzco que mi referencia hacia mi tabla bitácora y sus campos acción y usuario están mal quisiera saber como referenciarlo correctamente para que me guarde esos datos en la tabla Bitácora
Si me pudieras ayudar a salir de esto je je es que soy un completo novato en access

1 Respuesta

Respuesta
1
Lamento informarte que tu código está mal.
No sé quien te esta sesorando pero eso es basura
Básicamente te pedí que te crearas un modulo, no una clase.
De inicio tienes que crear dos rutinas para abrir y cerrar la base de datos. Ejemplos
Public Sub AbrirBase()
Set ConFle = New ADODB.Connection
Set RstFle = New ADODB.Recordset
ConFle.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\logistica\control\Fle2007.mdb;Persist Security Info=False"
ConFle.Open
End Sub
Public Sub CerrarBase()
ConFle.Close
Set ConFle = Nothing
Set RstFle = Nothing
End Sub
Es importante que al cerrar la base destruyas las variables con nothing sino las tendrás acumuladas en memoria.
este es un ejemplo de funcion dentro de este modulo
Public Function Plazo(Clave As Integer) As Integer
StrRst = "SELECT TblCtrCli.CliCla, TblCtrCli.CliPla" & _
" FROM TblCtrCli WHERE (((TblCtrCli.CliCla)=" & Clave & "));"
If RstFle.State = 1 Then RstFle.Close
RstFle.Open StrRst, ConFle, adOpenStatic, adLockOptimistic, adCmdText
If RstFle.RecordCount > 0 Then
Plazo = RstFle("Clipla")
Else
Plazo = 0
End If
RstFle.Close
End Function
En este ejemplo le pedimos a una función que devuela el valor que corresponde al campo CliPla de un solo cliente
Primero creamos la cadena que va a ser la instrucción SQL de donde obtendremos el recordset
Luego con if verificamos si el recordset esta abierto de ser así lo cerramos para que no nos de error y ademas podamos volver a jecutar la consulta
Luego si el recordset tiene al menos 1 registro entonces existe el plazo y se lo asigamos al valor de la función
En caso contrario le asignamos valor 0
Y al final cerramos el recordset
Desde un formulario la función se llama así:
Private Sub FacREm_AfterUpdate()
AbrirFletera
Cliplazo = Plazo(Me.FacREm)
Me.FacVen = DateAdd("D", Cliplazo, Me.FacFec)
CerrarFletera
End Sub
Esa es la forma correcta de usar un modulo
este es un ejemplo de como insertar campos a una tabla
Public Sub Movimiento(Usuario As String, Accion As Long)
Dim Fecha As Date
Dim hra As String
'se definen los movimientos
VarMov(1) = "Guardo"
VarMov(2) = "Borro"
VarMov(3) = "Modifico"
VarMov(4) = "Pagó"
Fecha = Format(Date, "mm/dd/YYYY")
hras = Format(Time(), "hh:mm:ss AMPM")
StrRst = "INSERT INTO Movimientos(MovFec, MovHra,MovUsr,MovAcc)" & _
" Values (#" & Fecha & "#,hras,Usuario,VarMov(Accion));"
ConMcn.Execute StrRst
End Sub
Y al llamarlo sería
Movimiento ValUsuario, 1
Donde Valusuario es tu variable de usuario y 1 la acción que en este caso al pasar al modulo se convertirá en guardo
Es todo :)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas