estevan_rezende 8/2/2012, 18:45
Criquio,
ele ja esta sendo usado assim e nao estava tendo este problema. hoje que aconteceu isso.
basicamente ele está assim
formulario_login
formulario_user (onde fica aberto o tempo todo mostrando o Usuário logado, o setor q ele pertence e o perfil dele)
formulario_detalhes (onde mostra todas as requisições que são respectivas ao setor que o usuario pertence)
formulario_requisição (neste é onde a pessoa preenche)
Basicamente este é o ciclo do sistema.
Quando a pessoa faz login, no "formulario_user" fica o nome de usuário, o perfil, e o setor... ai quando ela entra em "formulario_detalhes" a consulta que está por traz verifica o setor e mostra somente os dados do setor q ela pertence.
O código de login do formulario_login é:
Private Sub cmdLogin_Click()
Dim Identificacao As String
If IsNull(Me.cbo_id) Or Me.cbo_id = "" Then
MsgBox "Usuário invalido ou não cadastrado. Escolha um novo usuário.", vbOKOnly + vbCritical, "Campo Obrigatório"
Me.cbo_usuario.SetFocus
Exit Sub
End If
If IsNull(Me.txtPassword) Or Me.txtPassword = "" Then
MsgBox "Introduza a Senha.", vbOKOnly + vbCritical, "Campo Obrigatório"
Me.txtPassword.SetFocus
Exit Sub
End If
If Me.txtPassword.Value = DLookup("Senha", "bd_login", "[ID]=" & Me.cbo_id.Value) Then
strLimpaID = Me.cbo_id.Value
CurrentDb.Execute "UPDATE bd_login Set [bd_login].[UltimoAcesso] = Now() WHERE [bd_login].[ID] = " & Me.cbo_id.Value & ""
Identificacao = DLookup("NivelSeguranca", "bd_login", "[ID]=" & strLimpaID)
Select Case Identificacao
Case "ADMINISTRADOR"
stDocName = "fml1_requisicao_user"
Case "USUARIO"
stDocName = "fml1_requisicao_user"
Case "SUPERVISOR"
stDocName = "fml1_requisicao_user"
End Select
DoCmd.Close acForm, "fml0_login", acSaveYes
DoCmd.OpenForm stDocName
Else
MsgBox "Senha Invalida. Por favor, Introduza novamente...", vbOKOnly, "Erro!"
Me.txtPassword.SetFocus
End If
strTentativas = strTentativas + 1
If strTentativas > 3 Then
MsgBox "As três(3) tentativas foram esgotadas, O Programa está sendo finalizado.", vbCritical, "Erro!"
Application.Quit
End If
End Sub
Private Sub BotaoAlterar_Click()
If Not IsNull(cbo_usuario) Then
DoCmd.OpenForm "fml0_AlterarSenha", , , , , , cbo_usuario
Else
MsgBox "Informe o usuário!", vbExclamation, "Alterar Senha"
cbo_usuario.SetFocus
End If
End Sub
Private Sub Form_Timer()
Me.cx_tempo.Requery
Static LinHor As Integer
Static LinMin As Integer
Static LinSeg As Integer
If Trim(txt_tempo_ocioso.Caption) = "00:00:00" Then
LinHor = 0
LinMin = 0
LinSeg = 0
End If
LinSeg = LinSeg + 1
If LinSeg = 60 Then
LinSeg = 0
LinMin = LinMin + 1
If LinMin = 60 Then
LinMin = 0
LinHor = LinHor + 1
If LinHor = 24 Then
LinHor = 0
End If
End If
End If
txt_tempo_ocioso.Caption = Format(LinHor, "00") & ":" & _
Format(LinMin, "00") & ":" & _
Format(LinSeg, "00")
If txt_tempo_ocioso.Caption = DLookup("horario", "inf_horario") Then
DoCmd.Quit acQuitSaveAll
End If
End Sub
--------------------------------------------------------------------------------------------------------------------
O codigo do formulario_user é assim:
Private Sub Form_Current()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim stMax As Date
Set rst = CurrentDb.OpenRecordset("Select * from bd_login")
stMax = DMax("[UltimoAcesso]", "bd_login")
Do Until rst.EOF
If rst.Fields("UltimoAcesso") = stMax Then
Me.txt_usuario.Value = rst![Usuario]
Me.txt_setor.Value = rst![setor]
Me.txt_perfil.Value = rst![NivelSeguranca]
End If
rst.MoveNext
Loop
rst.Close
End Sub
------------------------------------------------------------------------------------------------------------
E o módulo (strLimpaID) que supostamente limpa a variável quando a pessoa faz login é assim: (mas mesmo se eu desabilitar ele parece que nao interfere em nada)
Public strLimpaID As Long
---------------------------
Estava tudo funcionando perfeitamente, são mais ou menos umas 5 pessoas usando, quando coloquei uma outra pessoa agora deu isse problema.
o form_2012.accdb fica na rede, eu instalei o access runtime nas maquinas e o pessoal acessa direto da rede.
estava pensando em transformar isso em web, mas realmente ainda não vi uma forma mais fácil de fazer.
Voce conhece algum programa que eu consigo criar um sistema assim web, tipo aquele tal de Maker da softwall ?
Obrigado pela atenção e grande abraço.