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]Atualizar vários campos em simultaneo de um Registo

    sardao
    sardao
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 328
    Registrado : 12/03/2011

    [Resolvido]Atualizar vários campos em simultaneo de um Registo Empty [Resolvido]Atualizar vários campos em simultaneo de um Registo

    Mensagem  sardao 2/3/2018, 18:54

    Boa tarde,

    Cada vez mais o sistema que criei na empresa tem vindo a crescer, da mesma forma que o numero de pessoas a mexer no mesmo.
    Desta forma, ha necessidade que as ligações constantes as tabelas, sejam menores, para que o sistema não tenha erros constantes, e desta forma apenas irá existir ligação as tabelas principais por pequenos segundos, para fazer atualizações nos registo, copia de dados, inserção de novos dados.

    Desta forma, tenho uma ideia para ser usada em VBA ou MySQl, mas nao sei como fazer.
    Sabendo apenas o ID que foi reservado para o novo registo (que ficará em branco até ser terminado no Frontend), como poderia atualizar o mesmo na sua totalidade?

    O unico comando que conheço só me deixa atualizar um campo de cada vez, e precisava de atualizar cerca de 20 campos de uma só vez.
    DoCmd.RunSQL "Update Tabela Set[Tabela]![Campo] = 1 where [Campo]='" & Me.CampoForm & "'"

    Alguem sabes como fazer?

    Cumprimentos,
    Pedro Costa
    good guy
    good guy
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1304
    Registrado : 05/02/2010

    [Resolvido]Atualizar vários campos em simultaneo de um Registo Empty Atualizar vários campos em simultaneo de um Registo

    Mensagem  good guy 2/3/2018, 20:11

    Olá Sardao,

    Você deseja atualizar os 20 registos com o mesmo valor do campo do seu formulário do campo ID = 1 até 20 da tabela?Como é isso?
    sardao
    sardao
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 328
    Registrado : 12/03/2011

    [Resolvido]Atualizar vários campos em simultaneo de um Registo Empty Re: [Resolvido]Atualizar vários campos em simultaneo de um Registo

    Mensagem  sardao 2/3/2018, 20:18

    Boa noite Good Guy,

    A questão não sao os 20 Registos, mas sim os 20 Campos.

    Exemplo:
    ID, Nome, Contato, Morada, Contribuinte.

    Acima estao 4 campos que preciso de atualizar de uma so vez e a unica forma que conheço é atualizar campo a campo, ou seja:

    DoCmd.RunSQL "Update Tabela Set[Tabela]![Nome] = 1 where [Nome]='" & "Pedro Costa" & "'"
    DoCmd.RunSQL "Update Tabela Set[Tabela]![Contato] = 1 where [Contato]='" & "91999999" & "'"
    DoCmd.RunSQL "Update Tabela Set[Tabela]![Morada] = 1 where [Morada]='" & "Av Liberdade" & "'"
    DoCmd.RunSQL "Update Tabela Set[Tabela]![Contribuinte] = 1 where [Contribuinte]='" & "11111111" & "'"


    Obrigado
    good guy
    good guy
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1304
    Registrado : 05/02/2010

    [Resolvido]Atualizar vários campos em simultaneo de um Registo Empty Atualizar vários campos em simultaneo de um Registo

    Mensagem  good guy 2/3/2018, 21:56

    Código de um botão que fará as alterações.

    Código:


    Private Sub cmdAlterar_Click()

    Dim ws As DAO.Workspace
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim Trans As Boolean
    Dim sNome, sEndereco As String
    Dim tNome, tEndereco As String

    On Error GoTo Erro

    Trans = False
    Set ws = DBEngine.Workspaces(0) 'Referir-se ao Workspace padrão
    Set db = CurrentDb 'Banco de Dados corrente
    Set rs = db.OpenRecordset("Teste", dbOpenDynaset)    'Verificar sempre na propriedade do formulário qual é o tipo de acesso
    ws.BeginTrans
    Trans = True

    'Aqui entra os seus campos que deseja alterar
    sNome = Dlookup("Nome","NomedaTabela","ID= 1")
    sEndereco =Dlookup("Endereco","NomedaTabela,"ID = 1")
    ....

    'Aqui entra os novos campos que vão alterá-los
    tNome = Forms!NomedoForms!Nome
    tEndereco = Forms!NomedoForms!Endereco
    .....

    rs.MoveFirst    'Garantir que iniciará no primeiro registro

    Do Until rs.EOF   'Faça enquanto não chegar ao final da Tabela
    rs.Fields("Nome") = sNome Then
    rs.Fields("Endereco") = sEndereco Then
    ....
    rs.Edit   'Abre para alterações
    rs.Fields("Nome") = tNome
    rs.Fields("Endereco") = tEndereco
    .....
    rs.Update
    rs.MoveNext 'Mover para o próximo registro
    Loop

    If MsgBox("Salvar alterações?", vbQuestion + vbYesNo, "Salvar") = vbYes Then
    ws.CommitTrans 'Salva alterações
    Me.Requery
    Else
    ws.Rollback 'Desfaz alterações
    End If

    Sair:
    rs.Close
    Set db = Nothing
    Set ws = Nothing
    Exit Sub

    Erro:
    MsgBox "Erro"
    If Trans = True Then
    Exit Sub
    End If

    Resume Sair
    End Sub


    Última edição por good guy em 2/3/2018, 23:29, editado 2 vez(es)
    sardao
    sardao
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 328
    Registrado : 12/03/2011

    [Resolvido]Atualizar vários campos em simultaneo de um Registo Empty Re: [Resolvido]Atualizar vários campos em simultaneo de um Registo

    Mensagem  sardao 2/3/2018, 23:15

    Boa noite Good Guy,

    Desde já muito obrigado pela ajuda.
    Hoje já não conseguirei testar o código, mas Segunda-feira irei testar lá no trabalho.
    Alguma questão voltarei a reabrir o tema.

    Cumprimentos,
    Pedro Costa
    sardao
    sardao
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 328
    Registrado : 12/03/2011

    [Resolvido]Atualizar vários campos em simultaneo de um Registo Empty Re: [Resolvido]Atualizar vários campos em simultaneo de um Registo

    Mensagem  sardao 5/3/2018, 17:30

    Boas Good Guy,

    Consegui por o codigo a funcionar, com algumas alterações mas está lá! Very Happy
    Desde já obrigado.

    Agora estou cum uma duvida, para que serve o seguinte codigo?

    Dim Trans As Boolean
    trans = true
    trans = false
    good guy
    good guy
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1304
    Registrado : 05/02/2010

    [Resolvido]Atualizar vários campos em simultaneo de um Registo Empty Atualizar vários campos em simultaneo de um Registo

    Mensagem  good guy 6/3/2018, 18:18

    Olá sardao,

    Trans significa transação, isto é, o processo de abertura e encerramento das alterações no recordset ou tabela. Esta transação é do tipo boleano (início/fim) ou melhor, (verdadeiro/falso).

    Se quiser aprender mais adquira os meus dois livros DOMINE O ACCESS VBA e TÉCNICAS ESPECIAIS DE ACCESS VBA e você vai aprender isto e muito mais.

    Editora Livrorama(DOMINE ...):
    www.livrorama.com.br

    Editora Ciência Moderna(TÉCNICAS...):
    www.lcm.com.br


    Um grande abraço.

    "O temor do Senhor(respeito pela Palavra de Deus, leitura e obediência) é o princípio do conhecimento" (Prov. 1.7)
    Disse Jesus: "E conhecereis a Verdade e a Verdade vos libertará". (Jo 8.32)
    Disse Jesus: “Eu sou a luz do mundo; aquele que me segue, não andará em trevas, mas terá a luz da vida.” (Jo. 8.12)

    Conteúdo patrocinado


    [Resolvido]Atualizar vários campos em simultaneo de um Registo Empty Re: [Resolvido]Atualizar vários campos em simultaneo de um Registo

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 18/10/2024, 05:04