MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


    [Resolvido]Ajuda com Função Update

    ronaldojr1
    ronaldojr1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 01/08/2011

    [Resolvido]Ajuda com Função Update Empty [Resolvido]Ajuda com Função Update

    Mensagem  ronaldojr1 21/8/2012, 15:12

    Bom dia a Todos

    Preciso mais uma vez da ajuda de vcs do forum, desde já agredeço a todos pela ajuda.

    Minha dúvida é o seguinte:

    Eu tenho um formulário que eu chamo AIServico e nele tem o Campo "AI" Que Significa Autorização de Impressão, pois bem, quando eu chamo a Função que eu criei chamada OrdemServico(codigo as long) ela tem que atualizar o Registro que eu estou no Campo AI. O código funciona na boa, mas o problema é que nesse Formulário 1 Codigo pode ter Várias AI então como eu posso arrurmar meu código pra que apenas o Último Codigo passado pela função seja alterado? pq do jeito que está todos os Codigos vão ser alterados para apenas uma AI, ou seja, a última.

    Segua Abaixo o código:

    Function OrdemServico(Codigo As Long)


    Dim valor_os As Long

    valor_os = os() 'valor_os Recebe a Ordem de Serviço Vaga

    Dim bc As Database
    Dim ordem As Recordset
    Dim aos As Recordset

    Set bc = CurrentDb()
    Set ordem = bc.OpenRecordset("AIServico")
    Set aos = bc.OpenRecordset("AOSFinal")


    aos.MoveLast
    ordem.MoveFirst

    'Insere Valor da OS na Tabela AOSFinal, nela contém todas a Ordem de Serviço.
    aos.AddNew
    aos.Fields("OS") = valor_os
    aos.Update

    Do While Not ordem.EOF

    If Codigo = ordem.Fields("Cod_L") Then
    ordem.Edit
    ordem.Fields("AI") = valor_os
    ordem.Update
    ordem.MoveNext
    Else
    ordem.MoveNext
    End If
    Loop

    Set bc = Nothing
    Set ordem = Nothing
    Set aos = Nothing

    End Function
    avatar
    Convidado
    Convidado


    [Resolvido]Ajuda com Função Update Empty Re: [Resolvido]Ajuda com Função Update

    Mensagem  Convidado 21/8/2012, 16:33

    Ai seja o caso de utulizar o CurrtentDb.Execute "Update.....

    Filtrando a instrução pleo registro ativo.

    Podes tambem carregar o recordset filtrado pelo registro ativo.

    Ajudaria se disponibilizasse o bd para que possamos ver.

    Cumprimentos.
    ronaldojr1
    ronaldojr1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 01/08/2011

    [Resolvido]Ajuda com Função Update Empty Re: [Resolvido]Ajuda com Função Update

    Mensagem  ronaldojr1 21/8/2012, 17:06

    Se vc puder me ensinar esses metódos eu ficaria grato. Eu só consegui fazer esse
    Código graças a toda ajuda do forum, o repositório é uma ótima fonte de aprendizado. Se não for abusar da sua pessoa, vc pode comentar o código que vc vai usar e algumas dicas de como o comando funciona?

    Vlw

    o BD ta em Anexo
    Anexos
    [Resolvido]Ajuda com Função Update Attachmentfunction.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (102 Kb) Baixado 50 vez(es)
    avatar
    Convidado
    Convidado


    [Resolvido]Ajuda com Função Update Empty Re: [Resolvido]Ajuda com Função Update

    Mensagem  Convidado 21/8/2012, 18:41

    Você está querendo atualizar o campo da Chave primária. O ideal é ter o campo da chave primária como numeração automática, e o campo AL como numero, porém sem ser chave primária.

    A atualização do Campo AL... De onde voce pega o novo numero que vai atualizar?

    Me dê o raciocionio prático disto.

    Mas de antemão ja aviso, este campo como chave primária está errado.


    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Ajuda com Função Update Empty Re: [Resolvido]Ajuda com Função Update

    Mensagem  Convidado 21/8/2012, 18:53

    Me explique a logica das tabelas:

    AlServico
    AlOs
    AlOsFinal..

    porque essas 3...
    como saber qual a OS Vaga...
    onde se insere Os..


    Tente me explicar o funcionamento pretendido...

    Aguardo.
    ronaldojr1
    ronaldojr1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 01/08/2011

    [Resolvido]Ajuda com Função Update Empty Re: [Resolvido]Ajuda com Função Update

    Mensagem  ronaldojr1 21/8/2012, 19:02

    Então Blz vou mudar a Chave Primaria pra outro campo.

    Eu pego o Valor da AI através dessa linha

    valor_os = os() 'valor_os Recebe a Ordem de Serviço Vaga

    A função OS() Ela apenas pega a ultima OS da Tabela AOS e Soma + 1
    Retornando o Valor Final que seria OS=OS+1

    A AI está nessa Variável "valor_os" é o valor dessa variavel que eu quero jogar no campo me.ai da tabela AIServico, mas tem que jogar no Registro que chamou a função.

    Como eu faria isso?

    Grato
    avatar
    Convidado
    Convidado


    [Resolvido]Ajuda com Função Update Empty Re: [Resolvido]Ajuda com Função Update

    Mensagem  Convidado 21/8/2012, 19:36

    Vamos la...

    Na tabela AIServico coloque um campo de Chave primária: ID_AIServ
    Deixe o campo AI como numero (Sem ser chave primária)

    Na sua função... substitua os códigos por este:

    Function OrdemServico(Codigo As Long)
    Dim valor_os As Long

    valor_os = os() 'valor_os Recebe a Ordem de Serviço a ser utilizada
    'Insere na tabela AOSFinal o novo numero da OS
    CurrentDb.Execute "INSERT INTO AOSFinal (Os) Values(""" & valor_os & """)"
    'Atualiza a tabela AIServico com o numero da OS, observe que filtra de acordo com o numero do Livro
    CurrentDb.Execute "UPDATE AIServico SET AI = " & valor_os & " WHERE Cod_L = " & Codigo & " ;"
    End Function


    Basta apenas isso para o que pretende.


    Cumprimentos.
    ronaldojr1
    ronaldojr1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 01/08/2011

    [Resolvido]Ajuda com Função Update Empty Re: [Resolvido]Ajuda com Função Update

    Mensagem  ronaldojr1 22/8/2012, 13:24

    Bom Dia Piloto

    Testei o Código que vc mandou e também fiz as alterações na Tabela conforme vc disse.

    Parabéns pelo código vc deu uma resumida legal no meu código.

    É mais ou menos isso que eu preciso, mas só tem um problema. Conforme um código tem mais de uma Ordem De Serviço quando eu executo a função que vc passou todos os códigos são alterados e não somente o último código passado pela função.

    Grato pela ajuda
    avatar
    Convidado
    Convidado


    [Resolvido]Ajuda com Função Update Empty Re: [Resolvido]Ajuda com Função Update

    Mensagem  Convidado 22/8/2012, 14:19

    Cite um exemplo prático:

    De exemplo de dois registros com os codigos iguais.


    Nesse caso o que tem que fazer é aplicar mais de uma condição de checagem na clausura WHERE, para assim identificar qual o registro especifico.

    Suponha que em dois registros:

    Registro 1 > Cod_L: 4050 > OutroCampo: xxxx
    Registro 2 > Cod_L: 4050 > OutroCampo: yyyy

    Se colocar como critério apenas o Cod_L, ele atualizará os dois registros
    Porém se colocar os dois campos como critério, atualizará apenas um

    Ex:

    CurrentDb.Execute "UPDATE AIServico SET AI = " & valor_os & " WHERE Cod_L = " & Codigo & " And OutroCampo = " & OutroCriterio & " ;"


    é por ai.


    Cumprimentos.
    ronaldojr1
    ronaldojr1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 01/08/2011

    [Resolvido]Ajuda com Função Update Empty Re: [Resolvido]Ajuda com Função Update

    Mensagem  ronaldojr1 22/8/2012, 15:04

    Então o problema que é eu não tenho esse "OutroCampo" a condição que eu preciso é que atualize o Último Registro referente ao código X e eu não consigo pensar um jeito de passar isso em uma condição. Vc pode me ajudar a bolar um jeito pra resolver isso?

    Muito Grato pela ajuda
    ronaldojr1
    ronaldojr1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 01/08/2011

    [Resolvido]Ajuda com Função Update Empty Re: [Resolvido]Ajuda com Função Update

    Mensagem  ronaldojr1 22/8/2012, 15:25

    Eu Criei um Campo a Mais na Tabela AIServico chamado agora do tipo data e hora

    a minha idéia é o seguinte com esse campo, na hora de preencher a ordem de serviço eu uso a função Now() atribuindo o resultado da função no campo "agora".

    Mudei a função pra receber dois parametro assim:

    Function OrdemServico(codigo as long, agora as date)

    ai na linha que atualiza a tabela eu deixei assim

    CurrentDb.Execute "UPDATE AIServico SET AI = " & valor_os & " WHERE Cod_L = " & Codigo & " and agora= " & agora & ";"

    Mas ta dando erro, Ta falando que ta faltando Operador, vc sabe me dizer o que errado ai?


    Cumprimentos
    avatar
    Convidado
    Convidado


    [Resolvido]Ajuda com Função Update Empty Re: [Resolvido]Ajuda com Função Update

    Mensagem  Convidado 22/8/2012, 16:19

    Voce quer atualizar sempre o último registro da tabela ou o registro ativo no form?

    Saudações.
    ronaldojr1
    ronaldojr1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 01/08/2011

    [Resolvido]Ajuda com Função Update Empty Re: [Resolvido]Ajuda com Função Update

    Mensagem  ronaldojr1 22/8/2012, 16:22

    Boa Tarde Piloto

    Obrigado Pela ajuda aí que vc me deu. Só voltei pra avisar que eu consegui resolver o meu problema. O que eu fiz foi mudar toda a lógica do código. Em vez de tentar achar o último registro por meio de uma função eu mandei o campo AI(É o Campo que recebe o Ordem de Serviço) receber o valor da função que eu define sendo o valor_os(é a variável que recebe o valor da OS Vaga) no próprio formulário, com isso vai ser atualizado apenas o registro ativo. Para quem quiser segue o Codigo em anexo

    Function OrdemServico()

    Dim valor_os As Long

    valor_os = os() 'valor_os Recebe a Ordem de Serviço a ser utilizada

    'Insere na tabela AOSFinal o novo numero da OS
    CurrentDb.Execute "INSERT INTO AOSFinal (Os) Values(""" & valor_os & """)"

    'Função Recebe o Valor_OS
    OrdemServico = valor_os

    End Function

    ' No Formulario o Botão Chama a função Atribuindo o Valor Da OS Ao Campo AI
    Private Sub Comando165_Click()

    Me.AI = OrdemServico

    End Sub

    Com isso não preciso mais passar a função por parametro, exclui o campo "agora" e o código ficou bem menor com a ajuda do Piloto.

    Grato a todos e até a próxima
    ronaldojr1
    ronaldojr1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 01/08/2011

    [Resolvido]Ajuda com Função Update Empty Re: [Resolvido]Ajuda com Função Update

    Mensagem  ronaldojr1 22/8/2012, 16:25

    Voce quer atualizar sempre o último registro da tabela ou o registro ativo no form?

    O Registro ativo no form.

    Como eu faria pra atualizar o registro ativo no form?
    avatar
    Convidado
    Convidado


    [Resolvido]Ajuda com Função Update Empty Re: [Resolvido]Ajuda com Função Update

    Mensagem  Convidado 22/8/2012, 17:05

    Mas disse no post que havia resolvido.... Resolveu ou não?
    ronaldojr1
    ronaldojr1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 01/08/2011

    [Resolvido]Ajuda com Função Update Empty Re: [Resolvido]Ajuda com Função Update

    Mensagem  ronaldojr1 22/8/2012, 17:13

    Sim, mas se vc puder me mostrar como eu faço pra alterar um registro ativo pela função eu ficaria agradecido. Se der problema de violar as regras do forum não tem problema eu posso abrir outro tópico, mas de qualquer maneira obrigado
    avatar
    Convidado
    Convidado


    [Resolvido]Ajuda com Função Update Empty Re: [Resolvido]Ajuda com Função Update

    Mensagem  Convidado 22/8/2012, 18:08

    Lembra-se que te falei sobre criar um campo de chave primária com numereção automática?

    Pois bem, este campo é a "Identidade" do registro na tabela, e com ele atualiza o registro pretendido.

    1 - Crie na tabela o Campo ID_AIServ, o coloque como: Numeração Automática e como chave primária.
    2 - No form uma caixa texto com o nome de: txtID, acople a mesma ao campo ID_AIServ na tabela, pode o deixa oculto caso queira.
    3 - na função:
    Código:
    Function OrdemServico_1(Codigo As Long)
    Dim valor_os As Long

    valor_os = os() 'valor_os Recebe a Ordem de Serviço a ser utilizada

    CurrentDb.Execute "INSERT INTO AOSFinal (Os) Values(""" & valor_os & """)"

    CurrentDb.Execute "UPDATE AIServico SET AI = " & valor_os & "  WHERE ID_AIServ =  " & Codigo & " ;"

    End Function

    4 - No form:
    Código:
    Call OrdemServico_1(Me.txtID)

    Cumprimentos.
    ronaldojr1
    ronaldojr1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 01/08/2011

    [Resolvido]Ajuda com Função Update Empty Re: [Resolvido]Ajuda com Função Update

    Mensagem  ronaldojr1 22/8/2012, 19:37

    Nossa, Muito bacana esse código eu testei aqui e funcionou perfeitamente

    Obrigado pelo esclarecimento, vou pesquisar mais afundo o uso desse recurso que vc utilizou "CurrentDb.Execute"

    Grato e tenha uma boa tarde
    avatar
    Convidado
    Convidado


    [Resolvido]Ajuda com Função Update Empty Re: [Resolvido]Ajuda com Função Update

    Mensagem  Convidado 22/8/2012, 19:43

    O Fórum agradece o Retorno.

    >>> Não se esqueça de clicar no Joinha da menssagem que o auxiliou.

    Conteúdo patrocinado


    [Resolvido]Ajuda com Função Update Empty Re: [Resolvido]Ajuda com Função Update

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 27/4/2024, 05:57