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

2 participantes

    [Resolvido]Update vba

    avatar
    ictsp
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 220
    Registrado : 02/09/2016

    [Resolvido]Update vba Empty [Resolvido]Update vba

    Mensagem  ictsp 2/8/2022, 13:10

    Olá!

    Prezados, peço a compreensão dos colegas pois sou leigo em vba access mais tenho aprendido muito aqui com todos vocês.

    Tenho uma tabela vinculada que preciso atualizar dois campos através de um form.
    Estou fazendo da seguinte maneira:
    Dim StrSQL As String
    Dim SQL As String
    'Monta a consulta atualização utilizando'como critério o código do pedido

    StrSQL = "UPDATE cadpedsub SET func = '" & Me.FUNC & "' WHERE loc = " & Me.loc & ""
    SQL = "UPDATE cadpedsub SET sit = '" & Me.sit & "' WHERE loc = " & Me.loc & ""
    DoCmd.RunSQL StrSQL
    DoCmd.RunSQL SQL

    A principio, tem resolvido meu problema. Mas gostaria de atualizar mais campos. Encontrei esse código do mestre JPaulo, porém não atualiza

    Dim db As Database
    Dim rs As Recordset
    Set db = CurrentDb
    Set rs = db.OpenRecordset("Select * from cadpedsub Where loc= " & Me.loc & "")
    rs.Edit
    rs("func") = Me.func.Value
    rs("sit") = Me.sit.Value
    rs.Update
    rs.Close
    db.Close

    Qual a diferença entre os métodos? Onde estou errando no segundo método?
    Desde já, agradeço a todos pela ajuda.
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Update vba Empty Re: [Resolvido]Update vba

    Mensagem  Marcelo David 2/8/2022, 14:19

    Bom dia
    Não precisa ser dois updates, apenas um para quantos campos forem necessário...

    Para o que já está usando, apenas isso resolve:

    Código:
    StrSQL = "UPDATE cadpedsub SET func = '" & Me.FUNC & "', sit = '" & Me.sit & "' WHERE loc = " & Me.loc

    DoCmd.RunSQL StrSQL

    Se precisar de mais campos, basta separar com ,(vígula), semelhantemente ao que já está acima.



    .................................................................................
    Aprenda como criar formulário desacoplado.
    Clique aqui e conheça o treinamento.
    [Resolvido]Update vba Marcel11
    avatar
    ictsp
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 220
    Registrado : 02/09/2016

    [Resolvido]Update vba Empty Re: [Resolvido]Update vba

    Mensagem  ictsp 2/8/2022, 15:54

    Marcelo, primeiramente muito obrigado por seu tempo e atenção.
    Funcionou perfeitamente sua sugestão.
    Ainda assim, se possível, gostaria que vc me explicasse qual a diferença entre usar o DoCmd.RunSQL e o db.OpenRecordset.
    Quero realmente de entender essa questão.
    Obrigado!
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Update vba Empty Re: [Resolvido]Update vba

    Mensagem  Marcelo David 2/8/2022, 18:40

    ictsp escreveu:Marcelo, primeiramente muito obrigado por seu tempo e atenção.
    Fico muito feliz em poder ser útil.

    ictsp escreveu:Ainda assim, se possível, gostaria que vc me explicasse qual a diferença entre usar o DoCmd.RunSQL e o db.OpenRecordset.

    DoCmd.RunSQL: esse é um comando interno do Access, usado para o que o próprio nome diz: RunSQL,
    ou seja, ele roda comandos SQL direto do VBA, sem necessariamente ser executado a partir de uma consulta pré-existente e é amplamente usado para banco de dados vinculados ou locais.

    db.OpenRecordset: esse cara aqui é uma biblioteca (que já vem na instalação do office/access), ou seja, não faz parte direto do Access, porém é muito mais cheio de recursos, como o principal, abrir um conjunto de registros em memória e poder manipulá-los. Além dele facilitar o uso do banco de dados desvinculado.
    db.OpenRecordset , db pode ser um banco de dados em qualquer pasta e o OpenRecordset, estamos dando o comando para abrir uma tabela, consulta ou instrução SQL.

    Para coisas que não exigem um conjunto de registros em memória, use RunSQL, agora se precisar abrir vários registros em memória, vá de recordsets.






    .................................................................................
    Aprenda como criar formulário desacoplado.
    Clique aqui e conheça o treinamento.
    [Resolvido]Update vba Marcel11
    avatar
    ictsp
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 220
    Registrado : 02/09/2016

    [Resolvido]Update vba Empty Re: [Resolvido]Update vba

    Mensagem  ictsp 2/8/2022, 22:50

    Marcelo, muito, mais muito obrigado mesmo por sua explicação.
    Abraço! Sucesso!!

    Marcelo David gosta desta mensagem

    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Update vba Empty Re: [Resolvido]Update vba

    Mensagem  Marcelo David 3/8/2022, 04:46

    Grato pelo retorno! cheers


    .................................................................................
    Aprenda como criar formulário desacoplado.
    Clique aqui e conheça o treinamento.
    [Resolvido]Update vba Marcel11

      Data/hora atual: 1/10/2022, 14:47