BRUCCE Postado Dezembro 12, 2007 Denunciar Share Postado Dezembro 12, 2007 Bom dia Galera!já dei uma pesquisada no Forum , mas nçao encontrei nada..Estou precisando criar um Campo que registre A DATA E A ALTERAÇÃO/ÎNCLUSÃO REALIZADA POR UM USUÀRIO.eX. sE O USUÁRIO ALTEROU ALGUMA INFORMAÇÃO NO CADASTRO:Data: Campo Usuário10/07/07 "Inclusão de Cadastro" Joao (O campo inclusão seria quando o usuário incluiria o cadastro pela primeira vez.10/11/07 Nome Pedro12/07/07 Parecer AdministradorAcho que dá pra ter uma idéia!Valeu pessoal, fico esperando uma ajuda!Abçs! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MrMALJ Postado Dezembro 12, 2007 Denunciar Share Postado Dezembro 12, 2007 Bom primeiro precisa-se ter o sistema de login (ou qualquer outro que registre o usuario ativo), depois use a propriedade "após atualizar" dos campos para registrar o nome e a data conforme desejar!me.seuControle.value=date() & " " & me.seuCampoUsuarioViu muito simples, substitua seuControle pelo nome do objeto que irá armazenar a informação que deseja e seuCampoUsuario pelo objeto ou váriavel que tem a informação sobre o usuário... ok! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Humm Postado Dezembro 12, 2007 Denunciar Share Postado Dezembro 12, 2007 olha isso me lembrou a trabalheira que tive pra criar um sistema de controle de usuario.. tive que fazer ele completo, pois o do access é muito fracose quiserem posso depois postar um BD de exemplo de sistema de login e alguns exemplos de aplicação dele nas propriedades dos forms e relatorios.. inclusive com log de atividades. mas tenha em mente que isso abarrota o BD com informacoes hehe..pra ter ideia, até quando alguém deleta algo, na verdade não deleta, mas transfere conteudo para uma especie de lixeia indicando quem criou e quem deletouabraçosAssim, a minha aplicação é em access, mas meu banco é em SQLServer,na tabela tenho um campo pra o sim e outro para o não,esse campo é int, pois pensava que retornava 0 ou 1,assim como eu fiz com os checkbox e deu certo... vamos tomar por exemplo, numa das opcoes você fez como? você colocou uma caixa de opcoes no form e fez o q? na tabela que se refere a ela, está setad acomo Sim/Não ?Bom primeiro precisa-se ter o sistema de login (ou qualquer outro que registre o usuario ativo), depois use a propriedade "após atualizar" dos campos para registrar o nome e a data conforme desejar!me.seuControle.value=date() & " " & me.seuCampoUsuarioViu muito simples, substitua seuControle pelo nome do objeto que irá armazenar a informação que deseja e seuCampoUsuario pelo objeto ou váriavel que tem a informação sobre o usuário... ok! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MrMALJ Postado Dezembro 12, 2007 Denunciar Share Postado Dezembro 12, 2007 Acho que será uma boa contribuição para a comunidade, lembro que já deixei um exemplo simples de sistema de login (mais como disse "simples")... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 BRUCCE Postado Dezembro 12, 2007 Autor Denunciar Share Postado Dezembro 12, 2007 (editado) bom dia MrMajl!Entendi o que você explicou, mas esta dando uma mensagem de erro.Fiz assim, na Opções APOS ATUALIZAR do campo PARECER, coloquei o seguinte código:me.Alteração(o campo de registrará as alterações).value=date() & " " & me.Form!Main!operadorMeu BD tem um form principal(MAIN), que atraves dele é aberto dos demais, sempre que o usuário logo, aparece o nome no campo OPERADOR (esse campos "operador" aparece no mode design como OBJETO NÃO ACLOPADO.quando eu altere algo no campo Parecer, e opto em salvar, aparece a seguinte mensagemERRO EM TEMPO DE EXECUÇÃO: '2465':O Seguro Desemprego nçao pode localizar o Campo MAIN referido em sua experessão.O que eu fiz está correto?Como posso resolver esse erro.Obrigado! Editado Dezembro 12, 2007 por BRUCCE Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Humm Postado Dezembro 12, 2007 Denunciar Share Postado Dezembro 12, 2007 o seu erro está no me.me significa formulario atual de onde o codigo esta rodando..o teu form MAIN não é o atual.. então não tem me.use forms!MAIN!operador Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 BRUCCE Postado Dezembro 12, 2007 Autor Denunciar Share Postado Dezembro 12, 2007 (editado) Valeu HUmmm!Deu certo, é que sou meio leigo em VBA, mas consegui fazer..Só uma coisa, no meu form, tenho 20 campos, é possivel criar somente um Campo para registrar as alterações?Preciso de informações sobre quais os campos que foram alterados.Se alteraram o nome, preciso que aparecer:DIa; Quem Alterou, Qual o Campo;Outra coisa que percebi é que ele sempre altera quem modificou algo, tem como fazer com que as informações sobre alterações fiquem visiveis?01/01/01 NOME Joao10/10/10 Endereço Jose12/12/07 Parecer BrucceÉ possivel fazer isso?Obrigado!o seu erro está no me.me significa formulario atual de onde o codigo esta rodando..o teu form MAIN não é o atual.. então não tem me.use forms!MAIN!operador Editado Dezembro 12, 2007 por BRUCCE Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MrMALJ Postado Dezembro 12, 2007 Denunciar Share Postado Dezembro 12, 2007 Faça o código de atualização para todos os campos então independente de qual você alterar ele atualiza a informação!Posoo colocar Resolvido no seu tópico? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 BRUCCE Postado Dezembro 12, 2007 Autor Denunciar Share Postado Dezembro 12, 2007 beleza MrMalj.Se eu colocar os códigos em todos os campos, quando eu atualizar, ele irá mostrar qual o campo que foi atualizado? Ou somente irá colocar a data e o nome do Usuário no campo.No caso, crei somente um campo para guardar essa informação de quando e quem alterou.....Se pude me ajudar beleza!Se quise, pode por como resolvido...VlwAbçcs!Faça o código de atualização para todos os campos então independente de qual você alterar ele atualiza a informação!Posoo colocar Resolvido no seu tópico? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Humm Postado Dezembro 12, 2007 Denunciar Share Postado Dezembro 12, 2007 (editado) Valeu HUmmm!Deu certo, é que sou meio leigo em VBA, mas consegui fazer..Só uma coisa, no meu form, tenho 20 campos, é possivel criar somente um Campo para registrar as alterações?Preciso de informações sobre quais os campos que foram alterados.Se alteraram o nome, preciso que aparecer:DIa; Quem Alterou, Qual o Campo;Outra coisa que percebi é que ele sempre altera quem modificou algo, tem como fazer com que as informações sobre alterações fiquem visiveis?01/01/01 NOME Joao10/10/10 Endereço Jose12/12/07 Parecer BrucceÉ possivel fazer isso?Obrigado!o seu erro está no me.me significa formulario atual de onde o codigo esta rodando..o teu form MAIN não é o atual.. então não tem me.use forms!MAIN!operadorrapaz.. olha só to percebendo que você quer saber todo o historico de alteracoes de cada registro certo?é melhor você criar um tabela só pra isso.. ao invez de ficar criando um campo de historico pra cada campo, até porque tem um porem que você não pensou..o cara vai lá e entra com dados.. depois alguém atera.. e se depois outra pessoa alterar novamente, você perderá o historico da penultima alteracao..bom a dica é.. crie uma tabela pra armazenar o log de acões dos usuarios..nessa tabela você cria varios campos indices pra pra relacionar com cada tabela que pode ser alterada pelos user..crie tb um campo para armazenar o usuario da açãocrie tb um campo pra armazenar data/horae mais um onde vai concatenar: [valor antigo] & ", " & [valor novo]então na propriedade "antes de atualizar" você bota o codigo, pois antes de alterar, ele tem que capturar o valor antigo do campo.fica mais ou menos assim:Dim Db As DAO.Database, Rs As DAO.Recordset Set Db = CurrentDb() Set Rs = Db.OpenRecordset("Tabela Historico") Rs.AddNew Rs("Codigo de Relacionamento") = Me.CodigoIndice Rs("Data") = Time() Rs("Operador") = Forms!Main!Operador Rs("Dados") = DlookUp("[Campo]", "Tabela", "[CodigoIndice] =" & Me.CodigoIndice) & ", " & Me.Campo Rs.Update Db.Close Set Db = Nothing Set Rs = Nothingnão testei, adeque ao seu BD e veja como fica.. não esquecendo que nessa tabela você tem que adicionar um campo de relacionamento pr acada outra tabela que quiser monitorar. assim você pode colocar um botao que chame o historico somente pr adeterminada tabela sacou?e ai MrMALJ gostou dessa ideia né?abraços Editado Dezembro 12, 2007 por Humm Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MrMALJ Postado Dezembro 12, 2007 Denunciar Share Postado Dezembro 12, 2007 Bom eu não uso sistema de log, no maximo que faço é ver quem alterou ou cadastrou esse ou aquele registro, claro que isso vai do cliente mais ateh então nunca precisei e quando pediram algo assim, mostrei que de certa forma seria inviavel pois seria uma tabela a mais pra alimentar e deixaria a aplicação mais lenta, mais a ideia em si é boa!Mais ao foco do tópico... caso não consiga utilizar a ideia amigo Humm e quiser ter essas informação você teria que um campo espelho pra cada um que pode ser alterado e ir atualizando conforme suas imagens fossem alteradas, mais eu acho que aumentaria o tamanho do BD... Bom acho q é só! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Humm Postado Dezembro 12, 2007 Denunciar Share Postado Dezembro 12, 2007 Bom eu não uso sistema de log, no maximo que faço é ver quem alterou ou cadastrou esse ou aquele registro, claro que isso vai do cliente mais ateh então nunca precisei e quando pediram algo assim, mostrei que de certa forma seria inviavel pois seria uma tabela a mais pra alimentar e deixaria a aplicação mais lenta, mais a ideia em si é boa!Mais ao foco do tópico... caso não consiga utilizar a ideia amigo Humm e quiser ter essas informação você teria que um campo espelho pra cada um que pode ser alterado e ir atualizando conforme suas imagens fossem alteradas, mais eu acho que aumentaria o tamanho do BD... Bom acho q é só!o cara tb pode criar uma tabela separada do BD principal.. e linkar o frontend a ela.. talvez assim fique mais leve..bom, eu acho que fica mais leve tendo uma tabela só pra isso do que ter um campo espelho pra cada campo.. sem falar que esse metodo do campo espelho só vai armazenar a ultima alteracao e não todo o historico..já a tabela armazena tudo que você quiserabraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 BRUCCE Postado Dezembro 13, 2007 Autor Denunciar Share Postado Dezembro 13, 2007 MrMalje HUmmm, Bom dia!Valeu pelas dicas, vou tentar fazer da maneira que vocês me disseram.Acho que pra mim, a primeira opção é a mais facil, já que nçao entendo muito.Só tenho mais uma dúvida:Como disse, meu aplicativo funciona com um FORM principal, que atraves dele abre os demais form, por um sub FORM.Tenho o Botão de Opção num FORM que abre a página de parecer, gostaria que quando eu alterasse algo nesse FORM (movimentação) ele incluisse a data de alteração e o nome do user no FORM de cadastrados (fichas)Tentei fazer assim:Forms!Main!Cadastro_Fichas!alteração .value=Date() & " " & Forms!Main!operadorPensei assim: Pesquisar em Formulários! Main (form atual); Cadastro_Ficha (form onde está o campo, é aberto num sub form (frameMain)) e alteração (o campo que salvará as alterações)Ate ai eu consigo alterar de boa, mas quando clico em salvar, da uma mensagem de erro: ERRO EM TEMPO DE EXECUÇÃO '2465';O SEGURO DESEMPREGO NÃO PODE LOCALIZAR O CAMPOR 'CADASTRO_FICHAS' REFERIDO EM SUA EXPESSÃOtEM ALGO ERRADO NESSO CÓDIGO? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MrMALJ Postado Dezembro 13, 2007 Denunciar Share Postado Dezembro 13, 2007 De novo você tah errando tratando Cadastro_Fichas como um objeto de MAIN, a não ser que ele seja um subformulario dentro Main...Forms!Cadastro_Fichas!alteração .value=Date() & " " & Forms!Main!operadorok! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Humm Postado Dezembro 13, 2007 Denunciar Share Postado Dezembro 13, 2007 pra evitar estes erros, você pode usar o construtor de expressoes pesquisando os itens que são mostrados no canto inferior esquerdo..abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 BRUCCE Postado Dezembro 14, 2007 Autor Denunciar Share Postado Dezembro 14, 2007 Bom dia MrMalj e Humm, Valeu pelas dicas, eu até tentei colocar o código, como o MrMarjl disse:Forms!Cadastro_Fichas!alteração .value=Date() & " " & Forms!Main!operadorMas ainda continuava dando erro, pois ele nçao achava o FORM Cadastro_Fichas!Hoje deu uma fuçada e consegui resolver:Como o FORM Cadastro_Fichas é aberto em uma SUBFORM, o código ficou assim:Forms!Main!frameMain!alteração.Value = Date & " " & Forms!Main!operadorValeu pelas dicas, me ajudaram muito........Aos poucos estou aprendendo!....MrMajl, se quiser, pode definir o tópico como Resolvido!Abçs! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
BRUCCE
Bom dia Galera!
já dei uma pesquisada no Forum , mas nçao encontrei nada..
Estou precisando criar um Campo que registre A DATA E A ALTERAÇÃO/ÎNCLUSÃO REALIZADA POR UM USUÀRIO.
eX. sE O USUÁRIO ALTEROU ALGUMA INFORMAÇÃO NO CADASTRO:
Data: Campo Usuário
10/07/07 "Inclusão de Cadastro" Joao (O campo inclusão seria quando o usuário
incluiria o cadastro pela primeira vez.
10/11/07 Nome Pedro
12/07/07 Parecer Administrador
Acho que dá pra ter uma idéia!
Valeu pessoal, fico esperando uma ajuda!
Abçs!
Link para o comentário
Compartilhar em outros sites
15 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.