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]Localizar registro na tabela e alterar devido a determinada condição.

    MadMax
    MadMax
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 20/04/2021

    [Resolvido]Localizar registro na tabela e alterar devido a determinada condição. Empty [Resolvido]Localizar registro na tabela e alterar devido a determinada condição.

    Mensagem  MadMax 10/5/2021, 15:52

    Olá Pessoal sou novo aqui no fórum e não sei muito de VBA mas gostaria de saber como faço, através de cod. VBA, para encontrar e alterar todos os registros em uma determinada tabela de acordo com uma determinada condição de um campo de formulário.
    Exemplo:

    Tabela1:

    PlantaNumero|Status|RegistroNumero|


    Formulario1:

    Campo1: PlantaNumero
    Campo2: RegistroNumero

    Então eu gostaria de uma ajuda para criar um código, que de acordo com o Campo1, alterasse os dados da Tabela1 coluna RegistroNumero, com valor "VAZIO" para o valor inputado no Formulario1(Campo2), e alterasse também a Coluna da Tabela1 [Status] de "Aguardando" para "Registrado".

    Cod. VBA: (Que eu tentei sem sucesso)

    Código:
    Public Sub Registro()
       
    Dim strSQL As String
    Dim strSQL2 As String

    strSQL = "UPDATE [Tabela1] " & _
     "SET [Status] = Replace(Status,""Aguardando"",""Registrado"") " & _
     "WHERE InStr([PlantaNumero], "Form![Formulario1]!Campo1") > 0 "

    strSQL2 = "UPDATE [Tabela1] " & _
    "SET [RegistroNumero] = Replace(RegistroNumero,"""",""Form![Formulario1]!Campo2"") " & _
     "WHERE InStr([PlantaNumero], "Form![Formulario1]!Campo1") > 0 "

    CurrentDb.Execute strSQL, dbFailOnError

    End Sub

    Observação: Todos os Campos da Tabela1 são TEXTO.

    Obrigado a todos pelo suporte... Very Happy


    Última edição por MadMax em 10/5/2021, 19:29, editado 1 vez(es)

    MadMax gosta desta mensagem

    Marcelo David
    Marcelo David
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3324
    Registrado : 21/04/2011

    [Resolvido]Localizar registro na tabela e alterar devido a determinada condição. Empty Re: [Resolvido]Localizar registro na tabela e alterar devido a determinada condição.

    Mensagem  Marcelo David 10/5/2021, 16:00

    Tópico movido para sala mais apropriada.

    observe sua dúvida e onde abrir os tópicos das próximas vezes.

    Leia as regras do fórum aqui.

    Seja bem vindo a nossa comunidade de amantes do Access. cheers Very Happy

    Estou um tanto quanto atarefado agora. Vamos aguardar algum
    colega te auxiliar. Se quando eu desocupar um pouco aqui ainda
    não houver respostas, tentaremos algo.

    Boa sorte.


    .................................................................................
    Marcelo David | [Resolvido]Localizar registro na tabela e alterar devido a determinada condição. LinkedIn_Icon.jpg.original LinkedIn
    https://www.freetool.dev

    MadMax gosta desta mensagem

    MadMax
    MadMax
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 20/04/2021

    [Resolvido]Localizar registro na tabela e alterar devido a determinada condição. Empty Localizar registro na tabela e alterar devido a determinada condição.

    Mensagem  MadMax 11/5/2021, 15:39

    Pessoal meu problema está na parte do código abaixo, eu não consigo trazer o valor do campo do formulário, pois quando eu digito o valor entre ""_"" ele funciona.

    Código:
    "WHERE InStr([PlantaNumero], "Form![Formulario1]!Campo1") > 0 "

    Na parte do código "Form![Formulario1]!Campo1" se eu trocar por ""A123"" (que é o valor do Campo1 do form) funciona.

    Então alguém sabe como posso trazer esse valor de string para essa parte do código ("Form![Formulario1]!Campo1")?

    Obs.: O Formulário está aberto e o Campo1 não está associado.

    MadMax gosta desta mensagem

    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1455
    Registrado : 13/12/2016

    [Resolvido]Localizar registro na tabela e alterar devido a determinada condição. Empty Re: [Resolvido]Localizar registro na tabela e alterar devido a determinada condição.

    Mensagem  Alexandre Fim 11/5/2021, 17:03

    Olá MadMax,

    Seu código está equivocado, e do jeito que está, não irá funcionar.

    Tente isso:

    Código:


    Dim strSQL      As String
    Dim strSQL2    As String

        strSQL = "UPDATE Tabela1 SET"
        strSQL = strSQL & " Status = 'Registrado' "
        strSQL = strSQL & " WHERE PlantaNumero LIKE '*" & Form![Formulario1]!Campo1 & "*'"
        strSQL = strSQL & " AND Status = 'Aguardando'"
        strSQL = strSQL & " AND PlantaNumero <> '0'"
       
       
        strSQL2 = "UPDATE Tabela1 SET RegistroNumero = '" & Form![Formulario1]!Campo2 & "'"
        strSQL2 = strSQL2 & " WHERE PlantaNumero LIKE '*" & Form![Formulario1]!Campo1 & "*'"
       
        CurrentDb.Execute strSQL, dbFailOnError
        CurrentDb.Execute strSQL2, dbFailOnError




    Boa sorte

    []'s

    FIM


    .................................................................................
    - Procure sempre anexar seu projeto para análise do problema/dúvida.
    - Ao copiar/colar um código VBA, procure entender seu funcionamento.
    - Se o problema foi resolvido, não se esqueça de marcar o tópico como RESOLVIDO.

    MadMax gosta desta mensagem

    MadMax
    MadMax
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 20/04/2021

    [Resolvido]Localizar registro na tabela e alterar devido a determinada condição. Empty Re: [Resolvido]Localizar registro na tabela e alterar devido a determinada condição.

    Mensagem  MadMax 11/5/2021, 20:50

    Olá Alexandre Fim, obrigado pelo retorno.


    Não funcionou, "mensagem de erro '424' O objeto é obrigatório"

    No Depurador ele marca a linha abaixo em amarelo.

    strSQL = strSQL & " WHERE PlantaNumero LIKE '*" & Form![Formulario1]!Campo1 & "*'"


    Obrigado.

    MadMax gosta desta mensagem

    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1455
    Registrado : 13/12/2016

    [Resolvido]Localizar registro na tabela e alterar devido a determinada condição. Empty Re: [Resolvido]Localizar registro na tabela e alterar devido a determinada condição.

    Mensagem  Alexandre Fim 11/5/2021, 22:42

    Entendi.

    Ou não existe o campo "PlantaNumero" na tabela ou não existe o campo "Campo1" do formulário.

    Verifique.

    Se for o caso, disponibilize seu banco de dados (somente os objetos envolvidos do teu problema) para analisarmos.

    []'s

    FIM


    .................................................................................
    - Procure sempre anexar seu projeto para análise do problema/dúvida.
    - Ao copiar/colar um código VBA, procure entender seu funcionamento.
    - Se o problema foi resolvido, não se esqueça de marcar o tópico como RESOLVIDO.

    MadMax gosta desta mensagem

    MadMax
    MadMax
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 20/04/2021

    [Resolvido]Localizar registro na tabela e alterar devido a determinada condição. Empty Re: [Resolvido]Localizar registro na tabela e alterar devido a determinada condição.

    Mensagem  MadMax 12/5/2021, 14:40

    Caro, Alexandre Fim.

    Troquei tudo que tinha Form![Formulario1]! por Me. e funcionou.
    Só tem um problema quando eu rodo o código, invés de alterar somente os registros em que a PlantaNumero = Campo1 e Status = "Aguardando", ele altera tudo em [Tabela1][RegistroNumero] que PlantaNumero = Campo1 independente do Status.
    Imagino ser algo simples, eu tentei varias alternativas baseado nas outras instruções, mas sem sucesso.

    Segue abaixo o BD anexo.
    Anexos
    [Resolvido]Localizar registro na tabela e alterar devido a determinada condição. AttachmentDatabase8.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (47 Kb) Baixado 2 vez(es)

    MadMax gosta desta mensagem

    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1455
    Registrado : 13/12/2016

    [Resolvido]Localizar registro na tabela e alterar devido a determinada condição. Empty Re: [Resolvido]Localizar registro na tabela e alterar devido a determinada condição.

    Mensagem  Alexandre Fim 12/5/2021, 15:20

    MadMax,

    O que precisa alterar o status é somente a Planta informada no campo1, correto?

    Vou ajustar e já te mando.

    []'s

    FIM


    .................................................................................
    - Procure sempre anexar seu projeto para análise do problema/dúvida.
    - Ao copiar/colar um código VBA, procure entender seu funcionamento.
    - Se o problema foi resolvido, não se esqueça de marcar o tópico como RESOLVIDO.

    MadMax gosta desta mensagem

    MadMax
    MadMax
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 20/04/2021

    [Resolvido]Localizar registro na tabela e alterar devido a determinada condição. Empty Re: [Resolvido]Localizar registro na tabela e alterar devido a determinada condição.

    Mensagem  MadMax 12/5/2021, 15:44

    Alexandre
    Eu preciso que seja alterado o Status e RegistroNumero dos registros, desde que 2 condições sejam satisfeitas.

    1- PlantaNumero seja igual Campo1
    2- Status seja igual "Aguardando"

    Quando as condições acima forem satisfeitas ele deve alterar o registro conforme abaixo.

    1- Status fica com valor igual "Registrado"
    2- RegistroNumero fica Igual ao Campo2

    Obrigado pelo seu tempo dedicado...

    MadMax gosta desta mensagem

    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1455
    Registrado : 13/12/2016

    [Resolvido]Localizar registro na tabela e alterar devido a determinada condição. Empty Re: [Resolvido]Localizar registro na tabela e alterar devido a determinada condição.

    Mensagem  Alexandre Fim 12/5/2021, 16:11

    Olá MadMax,

    O formulário ficou assim:

    [Resolvido]Localizar registro na tabela e alterar devido a determinada condição. Planta10

    Todos os campos devem ser preenchidos.
    O sistema já faz esta validação

    Deixei os comentários no código informando o que cada linha executa.

    OBS: Procure nomear os objetos do form conforme sua característica, pois a manutenção fica mais fácil na hora de encontrar os controles
    Não utilize assim: Campo1, Comando792, Combinação35, Formulario1, Tabela1 e etc.

    Espero ter ajudado

    []'s

    FIM
    Anexos
    [Resolvido]Localizar registro na tabela e alterar devido a determinada condição. AttachmentDatabase8_v2.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (60 Kb) Baixado 6 vez(es)


    .................................................................................
    - Procure sempre anexar seu projeto para análise do problema/dúvida.
    - Ao copiar/colar um código VBA, procure entender seu funcionamento.
    - Se o problema foi resolvido, não se esqueça de marcar o tópico como RESOLVIDO.

    MadMax gosta desta mensagem

    MadMax
    MadMax
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 20/04/2021

    [Resolvido]Localizar registro na tabela e alterar devido a determinada condição. Empty Re: [Resolvido]Localizar registro na tabela e alterar devido a determinada condição.

    Mensagem  MadMax 12/5/2021, 22:00

    Alexandre, muito obrigado.

    Além de dar certo, obrigado pelo design do formulário, rsrsrs.

    Só fiz uma alteração para ele só alterar o campo onde a PlantaNumero e o Status fossem o mesmo valor do formulário.

    Código:
    strSQL = strSQL & " WHERE (PlantaNumero = '" & Trim(Me.cboPlanta) & "' AND Status  = ""Aguardando"")"

    Vlw.

    Alexandre Fim gosta desta mensagem

    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1455
    Registrado : 13/12/2016

    [Resolvido]Localizar registro na tabela e alterar devido a determinada condição. Empty Re: [Resolvido]Localizar registro na tabela e alterar devido a determinada condição.

    Mensagem  Alexandre Fim 12/5/2021, 23:09

    Blz MadMax..
    Boa sorte e sucesso !!!


    .................................................................................
    - Procure sempre anexar seu projeto para análise do problema/dúvida.
    - Ao copiar/colar um código VBA, procure entender seu funcionamento.
    - Se o problema foi resolvido, não se esqueça de marcar o tópico como RESOLVIDO.

    MadMax gosta desta mensagem


      Data/hora atual: 16/6/2021, 15:15