tiagozms 2/12/2017, 15:05
BD:o nome do banco de dados é: bd_documentos.mdb
Tabelas com problema:
tb_logColunas: Data, Hora, Local, Acao
tb_usuarioColunas: Usuario, Nivel, Senha, StatusSenha, PNome, SNome, Matricula, Secretaria, Funcao, Departamento
Todas as colunas acima estão como "texto curto", apenas criei e não mexi em nada de suas propriedades.
Código VBA para adicionar usuário e Log ao mesmo tempo: - Código:
Sub AdicionarNovoUsuario()
'Adiciona um novo usuário no botão Adicionar do frm_usuarios
If frm_usuarios.txtNome.Text = "" Or frm_usuarios.txtSNome.Text = "" Or frm_usuarios.txtUsuario.Text = "" Or frm_usuarios.txtMatricula.Text = "" Or frm_usuarios.txtFuncao.Text = "" Or frm_usuarios.txtDepartamento.Text = "" Then
msgbox "Preencha todos os campos", vbExclamation, "Erro"
frm_usuarios.txtNome.SetFocus
Else
' O código abaixo pesquisa se o nome a ser adicionado já existe.
Dim NomePesq As String
Dim strSQL As String
Dim ChecaNome
NomePesq = frm_usuarios.txtUsuario.Text
strSQL = "SELECT * FROM tb_usuario WHERE Usuario LIKE '" & NomePesq & "'"
Call Conectar
Set ConsuUsuario = Banco.OpenRecordset(strSQL)
On Error Resume Next
While Not ConsuUsuario.EOF
ChecaNome = ConsuUsuario(0) 'Esta variável recebe o nome da pesquisa (caso o encontre) e no código abaixo é submetido a uma condição.
ConsuUsuario.MoveNext
Wend
If ChecaNome = frm_usuarios.txtUsuario Then
Dim ChecaDuplicidadeUser
ChecaDuplicidadeUser = frm_usuarios.txtUsuario.Text
msgbox "Já existe usuário com o nome " & ChecaDuplicidadeUser & ". Digite outro nome.", vbCritical, "Erro"
frm_usuarios.txtUsuario.BackColor = &HC0C0FF
frm_usuarios.txtUsuario.SetFocus
Else
ConsuUsuario.MoveLast
ConsuUsuario.AddNew
ConsuUsuario!Usuario = frm_usuarios.txtUsuario.Text
ConsuUsuario!Nivel = "P"
ConsuUsuario!Senha = "t1986"
ConsuUsuario!StatusSenha = "N/C"
ConsuUsuario!PNome = frm_usuarios.txtNome.Text
ConsuUsuario!SNome = frm_usuarios.txtSNome.Text
ConsuUsuario!Matricula = frm_usuarios.txtMatricula.Text
ConsuUsuario!Secretaria = "SEDUC"
ConsuUsuario!Funcao = frm_usuarios.txtFuncao.Text
ConsuUsuario!Departamento = frm_usuarios.txtDepartamento.Text
ConsuUsuario.Update
msgbox "Adicionado com sucesso", vbInformation
'----- LOG -----
Dim userLogado
Dim userAdicionado
userLogado = frm_usuarios.lbUsuarioLogado.Caption
userAdicionado = frm_usuarios.txtUsuario.Text
ConsuTbLog.AddNew
ConsuTbLog!Data = Date
'o código abaixo exibe a hora no formato ideal.
Dim Hora
Hora = Format(Time, "hh:mm")
ConsuTbLog!Hora = Hora
ConsuTbLog!Acao = "O usuário " & userLogado & " adicionou o usuário " & userAdicionado
ConsuTbLog!Local = frm_principal.lbNomeMaquina.Caption
ConsuTbLog.Update
'-----------------
End Sub
Código para remover todos os usuários menos a primeira linha que é do Desenvolvedor. - Código:
Private Sub btRemoverTudo_Click()
'btRemoverTudo.Enabled = False
If lbCont.Caption = 1 Then
Exit Sub
Else
If msgbox("---------- ATENÇÃO ---------- " + vbCrLf + vbCrLf + "Todos os usuários serão apagados! Tem certeza que deseja apagar tudo? ", vbYesNo, "Remover") = vbYes Then
On Error Resume Next
ConsuUsuario.MoveFirst 'move para a primeira linha
ConsuUsuario.MoveNext 'pula uma linha para evitar apagar a conta de Desenvolvedor que é a primeira.
While Not ConsuUsuario.EOF
ConsuUsuario.Delete
ConsuUsuario.MoveNext
Wend
ConsuTbLog.MoveLast
'----- LOG -----
Dim userLog
userLog = lbUsuarioLogado.Caption
ConsuTbLog.AddNew
ConsuTbLog!Data = Date
'o código abaixo exibe a hora no formato ideal.
Dim Hora
Hora = Format(Time, "hh:mm")
ConsuTbLog!Hora = Hora
ConsuTbLog!Acao = "O usuário " & userLog & " removeu todas as contas de usuários."
ConsuTbLog!Local = frm_principal.lbNomeMaquina.Caption
ConsuTbLog.Update
txtUsuarioSelect.Text = ""
Call acaoBotoesUsuarios
Call AtualizaListViewUsuario
Else
txtUsuarioSelect.Text = ""
Call acaoBotoesUsuarios
End If
End If
End Sub
Código para remover apenas um usuário: - Código:
Private Sub bot_remover_Click()
Dim RemovePesq As String
Dim RemoveSql As String
If txtUsuarioSelect.Text = "" Then
Exit Sub
Else
RemovePesq = txtUsuarioSelect.Text
If msgbox("Tem certeza que deseja remover " & RemovePesq & "?", vbYesNo, "Remover") = vbYes Then
RemoveSql = "SELECT * FROM tb_usuario WHERE Usuario LIKE '" & RemovePesq & "'"
Call Conectar
Set ConsuUsuario = Banco.OpenRecordset(RemoveSql)
On Error Resume Next
ConsuUsuario.Delete
ConsuUsuario.MoveLast
AtualizaListViewUsuario
msgbox "Usuário removido com sucesso!", vbInformation, "Exclusão"
lbCont.Caption = ListView1.ListItems.Count
'----- LOG -----
Dim userLog
Dim userSelect
userLog = lbUsuarioLogado.Caption
userSelect = txtUsuarioSelect
ConsuTbLog.AddNew
ConsuTbLog!Data = Date
'o código abaixo exibe a hora no formato ideal.
Dim Hora
Hora = Format(Time, "hh:mm")
ConsuTbLog!Hora = Hora
ConsuTbLog!Acao = "O usuário " & userLog & " removeu a conta de " & userSelect
ConsuTbLog!Local = frm_principal.lbNomeMaquina.Caption
ConsuTbLog.Update
'-----------------
txtUsuarioSelect.Text = ""
Call acaoBotoesUsuarios
'Call LimpaItensUsuarios
Else
txtUsuarioSelect = ""
Call acaoBotoesUsuarios
End If
End If
End Sub
Última edição por tiagozms em 2/12/2017, 15:14, editado 1 vez(es)