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


4 participantes

    Usando for next para acessar registros em tabelas

    avatar
    ANSFREITAS
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 13
    Registrado : 17/01/2011

    Usando for next para acessar registros em tabelas Empty Usando for next para acessar registros em tabelas

    Mensagem  ANSFREITAS 22/6/2014, 22:07

    Prezados,

    estou precisando de uma ajuda, tenho um tabela e deseja pesquisar dados de dois campos da mesma tabela e atualiza-la. tentei criar um laço for next, mas nada acontece alguém pode me ajudar?

    segue o que estou fazendo:

    Private Sub cmdEcec_Click()
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim i

    Set db = CurrentDb
    Set rs = db.OpenRecordset("SERVICOS", dbOpenTable)

    'Copiar registro do campo SM na linha i +1 para o campo RT, isso na mesma tabela
    For i = 1 To rs.EOF
    rs.Edit
    rs.Fields("RT[i]") = rs.Fields("SM[i+1]")
    rs.Fields("RT[i]") = rs.Fields("SM[i+1]")
    rs.Update
    MsgBox "atualizados"
    Next
    End Sub
    Gilberto Rocha
    Gilberto Rocha
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1027
    Registrado : 21/01/2010

    Usando for next para acessar registros em tabelas Empty Re: Usando for next para acessar registros em tabelas

    Mensagem  Gilberto Rocha 23/6/2014, 15:16

    Amigo, tente:

    Private Sub cmdEcec_Click()
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim i
    Dim vfim As Integer

    Set db = CurrentDb
    Set rs = db.OpenRecordset("SERVICOS", dbOpenTable)

    'substitua o id por seu campo id da tabela
    vfim = Dlast("id", "SERVICOS")

    'Copiar registro do campo SM na linha i +1 para o campo RT, isso na mesma tabela
    For i = 1 To vfim
    rs.Edit
    rs.Fields("RT[i]") = rs.Fields("SM[i+1]")
    rs.Fields("RT[i]") = rs.Fields("SM[i+1]")
    rs.Update
    MsgBox "atualizados"
    Next
    End Sub


    .................................................................................
    Resolveu? Clique em resolvido!
    Sistema para administração de Igrejas e Ministérios Evangélicos Congrega Fácil Online.
    Seja um representante em sua cidade!
    Código de cliente para testes: congregafacil

    SisFAT Cursos Online
    www.congregafacil.com

    Analista de BI SR
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    Usando for next para acessar registros em tabelas Empty Re: Usando for next para acessar registros em tabelas

    Mensagem  Marcelo David 23/6/2014, 23:25

    Regras do Fórum
    1. Tenha paciência com quem coloca aqui as suas duvidas.
    2. Clareza nos títulos dos tópicos e duvidas, evite a linguagem MSN.
    3. Não colocar diversas vezes a mesma dúvida.
    4. Explicar detalhadamente o problema e informar a versão do seu Office + Sistema Operativo.
    5. Retorne sempre se deu certo, esse retorno é muito importante.
    6. Respeite toda a equipe Staff e demais membros deste fórum.
    7. Use sempre o botão Busca, sempre que tiver uma dúvida e antes de abrir tópicos.
    8. Não usar palavras como "Urgente". O fórum é livre e ninguém é obrigado a responder com urgência.
    9. A publicidade é proíbida e só pode ser feita pelo Administrador ou depois de aprovada pelo Administrador.
    10. Se o seu tópico não for respondido, tem o direito de fazer um Up ao final de 24horas!
    11. A colocação de Códigos ou Exemplos, devem constar sempre os créditos de quem o elaborou.
    12. Fale, não GRITE! Só letras Maiúsculas, na Internet é o mesmo que gritar!
    13. É proibido tirar duvidas nas Salas de Repositório, devem abrir um novo tópico nas salas de duvidas, relacionando o Exemplo em causa.

    Amigo Andre Freitas, seja bem vindo ao Fórum, mas não esqueça de observar as regras e nesse caso, a regra 12!

    Seu título foi editado de acordo com o permitido.



    .................................................................................
    Usando for next para acessar registros em tabelas Favicon-16x16   Domine Access e VBA Criando Um Incrível Sistema Financeiro - [Passo a passo]
    Usando for next para acessar registros em tabelas Favicon-16x16   Access e VBA - Formulário Desacoplado - [Passo a passo]
    Usando for next para acessar registros em tabelas Yt_16x10 Conheça meu canal no Youtube e se inscreva.
    Usando for next para acessar registros em tabelas Marcel11
    avatar
    ANSFREITAS
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 13
    Registrado : 17/01/2011

    Usando for next para acessar registros em tabelas Empty Usando for next para acessar registros em tabelas

    Mensagem  ANSFREITAS 23/6/2014, 23:37

    Amigão boa noite,

    tentei acrescentar o que você informou, mas não funcionou, agora deu um erro, informa que o item não foi encontrado na coleção.

    Private Sub cmdEcec_Click()
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim i
    Dim vFim As Integer

    Set db = CurrentDb
    Set rs = db.OpenRecordset("SERVICOS", dbOpenTable)

    vFim = DLast("id", "SERVICOS")

    'Copiar registro do campo SM na linha i +1 para o campo RT, isso na mesma tabela
    For i = 1 To vFim
    rs.Edit
    rs.Fields("RT[i]") = rs.Fields("SM[i]")
    rs.Update
    MsgBox "atualizados"
    Next
    End Sub
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3900
    Registrado : 04/04/2010

    Usando for next para acessar registros em tabelas Empty Re: Usando for next para acessar registros em tabelas

    Mensagem  Avelino Sampaio 24/6/2014, 08:34

    Olá!

    Quais os reias nomes dos dois campos na tabela ? RT e SM ?

    Você quer pegar o valor de SM do registro posterior e passar para RT do registro atual ?

    Aguardamos



    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    avatar
    ANSFREITAS
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 13
    Registrado : 17/01/2011

    Usando for next para acessar registros em tabelas Empty Usando for next para acessar registros em tabelas

    Mensagem  ANSFREITAS 24/6/2014, 21:23

    O nome dos campos são os mesmos informados RT e SM.

    tenho um numero de RT e quero substituir este numero pela SM isso de uma única vez.
    Então pode ser que eu substitua a RT corrente pela SM abaixo, ou substitua por duas abaixo.

    exemplo
    Dados originais
    RT - SM
    2     S1
    2     S2
    3     S2
    4     S3

    Tarefa 1 - Se substituir com i+1 SM abaixo
    RT - SM
    2  <- S2
    2  <- S2
    3  <- S3
    4  <- " "  

    Tarefa 2 - Se substituir com i+2 SM abaixo
    RT - SM
    2  <- S2
    2  <- S3
    3  <- " "
    4  <- " "

    Então estou tentando ao clicar no botão executar a tarefa 1

    Private Sub cmdEcec_Click()
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim i

    Set db = CurrentDb
    Set rs = db.OpenRecordset("SERVICOS", dbOpenTable)

    'Copiar registro do campo SM na linha i +1 para o campo RT, isso na mesma tabela
    For i = 1 To rs.EOF
    rs.Edit
    rs.Fields("RT[i]") = rs.Fields("SM[i+1]")
    rs.Fields("RT[i]") = rs.Fields("SM[i+1]")
    rs.Update
    MsgBox "atualizados"
    Next
    End Sub

    A tabela esta no anexo.

    Se puder me ajudar eu agradeço.
    Anexos
    Usando for next para acessar registros em tabelas AttachmentCONSULTAS.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (74 Kb) Baixado 5 vez(es)
    Gilberto Rocha
    Gilberto Rocha
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1027
    Registrado : 21/01/2010

    Usando for next para acessar registros em tabelas Empty Re: Usando for next para acessar registros em tabelas

    Mensagem  Gilberto Rocha 25/6/2014, 13:39

    Não existe campos rt + um número para que você possa fazer o que pretende.

    E confesso que não entendi o que vc deseja!

    rs.Fields("RT]i]") = rs.Fields("SM]i+1]")
    rs.Fields("RT]i]") = rs.Fields("SM]i+1]")


    .................................................................................
    Resolveu? Clique em resolvido!
    Sistema para administração de Igrejas e Ministérios Evangélicos Congrega Fácil Online.
    Seja um representante em sua cidade!
    Código de cliente para testes: congregafacil

    SisFAT Cursos Online
    www.congregafacil.com

    Analista de BI SR
    avatar
    ANSFREITAS
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 13
    Registrado : 17/01/2011

    Usando for next para acessar registros em tabelas Empty Re: Usando for next para acessar registros em tabelas

    Mensagem  ANSFREITAS 26/6/2014, 23:47

    Boa noite amigos,

    1º os nomes dos campo são estes mesmos
    RT - Requisição de transporte
    SM - Solicitação de material

    ...Então qual o objetivo...

    Para toda registro da tabela na posição i
    A RT deve ser substituida pela SM na posição i+1 (ou seja uma linha abaixo, ou ate mesmo duas linhas abaixo).

    Este teste servirá para uma aplicação que substituira a RT e calcular a data e hora da linha atual com a anterior.

    ...Quem puder me ajudar eu agradeço.


    Private Sub cmdEcec_Click()
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim i

    Set db = CurrentDb
    Set rs = db.OpenRecordset("SERVICOS", dbOpenTable)

    'Copiar registro do campo SM na linha i +1 para o campo RT, isso na mesma tabela
    For i = 1 To rs.EOF
    rs.Edit
    rs.Fields("RT[i]") = rs.Fields("SM[i+1]")
    rs.Fields("RT[i]") = rs.Fields("SM[i+1]")
    rs.Update
    MsgBox "atualizados"
    Next
    End Sub

    Conteúdo patrocinado


    Usando for next para acessar registros em tabelas Empty Re: Usando for next para acessar registros em tabelas

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 22:37