Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Controle de Operações


BRUCCE

Pergunta

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

  • 0

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.seuCampoUsuario

Viu 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!

Link para o comentário
Compartilhar em outros sites

  • 0

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 fraco

se 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 deletou

abraços

Assim, 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.seuCampoUsuario

Viu 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!

Link para o comentário
Compartilhar em outros sites

  • 0

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!operador

Meu 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 mensagem

ERRO 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 por BRUCCE
Link para o comentário
Compartilhar em outros sites

  • 0

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 Joao

10/10/10 Endereço Jose

12/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 por BRUCCE
Link para o comentário
Compartilhar em outros sites

  • 0

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...

Vlw

Abç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?

Link para o comentário
Compartilhar em outros sites

  • 0
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 Joao

10/10/10 Endereço Jose

12/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

rapaz.. 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ção

crie tb um campo pra armazenar data/hora

e 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 = Nothing

nã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 por Humm
Link para o comentário
Compartilhar em outros sites

  • 0

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ó!

Link para o comentário
Compartilhar em outros sites

  • 0
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ê quiser

abraços

Link para o comentário
Compartilhar em outros sites

  • 0

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!operador

Pensei 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ÃO

tEM ALGO ERRADO NESSO CÓDIGO?

Link para o comentário
Compartilhar em outros sites

  • 0

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!operador

ok!

Link para o comentário
Compartilhar em outros sites

  • 0

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!operador

Mas 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!operador

Valeu pelas dicas, me ajudaram muito........Aos poucos estou aprendendo!....

MrMajl, se quiser, pode definir o tópico como Resolvido!

Abçs!

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...