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

    Atribuir Dados a um campo de uma Tabela por Variavel

    avatar
    Luiz Guilherme
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 19/07/2017

    Atribuir Dados a um campo de uma Tabela por Variavel Empty Atribuir Dados a um campo de uma Tabela por Variavel

    Mensagem  Luiz Guilherme 19/7/2017, 03:13

    Boa Noite,

    Tentar exemplificar meu problema para vocês:

    Tenho uma tabela que os campos são : 1, 2,3 ... 15
    queria atribuir valor a esses campos utilizando um laço de repetição, por exemplo

    Set tbl = CurrentDb.OpenRecordset("tabela") 'tabela tem os campos 1, 2, 3 ..., 15

    'queria fazer algo do tipo:

    for x=1 to 15

     tbl![x] = qualquer coisa

    next


    'Mas através da variável X, conseguir preencher os campos  1,2,3 ...,15

    Deste já agradeço a ajuda e desculpe, sou novo nisso kkkkkkk
    ronaldojr1
    ronaldojr1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    Atribuir Dados a um campo de uma Tabela por Variavel Empty Re: Atribuir Dados a um campo de uma Tabela por Variavel

    Mensagem  ronaldojr1 19/7/2017, 13:21

    bom dia
    ate aqui ta certo
    Código:
    Set tbl = CurrentDb.OpenRecordset("tabela")

    ai para fazer o que vc quer vc precisa fazer um loop para percorrer o recordset, que no seu caso seria usando a variavel "tbl" e dentro do loop
    usar as funções ObjetoRecordSet.Edit e ObjetoRecordSet.Update. Exemplo:


    Código:

    'Vou mostrar dois tipos de loop para percorrer o RecordSet ai vc escolhe qual usar

    'Loop com for
    'as duas linhas abaixo serve apenas para a funcao RecordCount nao mostrar uns valor nada a ver, ja aconteceu muito comigo.
    dim i as integer

    tbl.moveLast
    tbl.moveFirst

    for i = 0 to tbl.RecordCount -1
       tbl.Edit
           tbl!seuCampo = qualquerCoisa
       tbl.Update
       tbl.moveNext
    next i

    '-----------------------------------------

    'loop com while
    'verifica se possui registro, nesse caso nao precisa mover o recordSet para o fim e depois para o começo
    'pq nao precisamos do valor exato, apenas precisamos saber se existe dados a ser exibido

    IF tbl.RecordCount > 0 then
        'faz o loop com while
        tbl.moveFirst 'aqui movo para o primeiro registro pq um recordSet sempre começa no BOF, ou seja, antes do primeiro registro
        do while not tbl.EOF 'enquanto tbl nao chegar depois do ultimo registro
             tbl.Edit
                 tbl!seuCampo = qualquerCoisa
             tbl.Update
             tbl.moveNext
        loop

    END IF

    set tbl = nothing
    avatar
    Luiz Guilherme
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 19/07/2017

    Atribuir Dados a um campo de uma Tabela por Variavel Empty Re: Atribuir Dados a um campo de uma Tabela por Variavel

    Mensagem  Luiz Guilherme 19/7/2017, 18:02

    Amigo, obrigado pela resposta , mas não é isso que preciso.

    Do jeito que você vez o loop está servindo apenas para mudar de registro e não é isso que preciso.

    Preciso que no mesmo registro , com o loop mudar o campo e o registro.




    os seguintes dados na planilha:

    ID. NOME1. NOME2.
    1. LUIZ. GUILHERME


    for x=1 to 2
    tbl!Nome[ x ] = " qualquer coisa"
    next

    Tabela ficaria


    ID. NOME1. NOME2
    1. Luiz. Guilherme
    2. Quaisquer coisa. Qualquer coisa
    ronaldojr1
    ronaldojr1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    Atribuir Dados a um campo de uma Tabela por Variavel Empty Re: Atribuir Dados a um campo de uma Tabela por Variavel

    Mensagem  ronaldojr1 19/7/2017, 18:17

    para alterar o valor do campo e nessa parte, nos dois loops esta o exemplo abaixo
    Código:

            tbl.Edit
                tbl!seuCampo = qualquerCoisa
            tbl.Update
            tbl.moveNext
    avatar
    Luiz Guilherme
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 19/07/2017

    Atribuir Dados a um campo de uma Tabela por Variavel Empty Re: Atribuir Dados a um campo de uma Tabela por Variavel

    Mensagem  Luiz Guilherme 20/7/2017, 04:12

    Desculpe mas você não está me entendendo.
    Não quero mudar de registro e sim de campo. É diferente.

    Mudar de registro é

    ID. Nome
    1. Luiz

    Passar


    ID. ........NONE
    2. NOME2


    EXEMPLO acima mudei de registro. É o caso dos seus é exemplos.


    O que eu quero é mudar de campo em um mesmo registro.


    Registro
    ID
    1. mudar para o campo nome mas do mesmo registro 1
    ronaldojr1
    ronaldojr1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    Atribuir Dados a um campo de uma Tabela por Variavel Empty Re: Atribuir Dados a um campo de uma Tabela por Variavel

    Mensagem  ronaldojr1 20/7/2017, 13:17

    me desculpe, mas ainda estou um pouco confuso com seu objetivo. rsrsrs

    mas esse codigo percorre os campos e não registros.

    Código:

    Public Function setNomeCampoTable(nmTabela As String)

    Dim objTable As DAO.TableDef
    Dim db As Database
    Dim i As Integer

    Set db = CurrentDb
        
        Set objTable = db.TableDefs(nmTabela)
        For i = 0 To objTable.Fields.Count - 1
            objTable.Fields(i).Name = "qualquer coisa " & i
        Next i
    db.Close
    Set objTable = Nothing
    Set db = Nothing
    End Function

    mas se vc quer ir para o proximo campo do registro 1 por exemplo e so continuar a escrever os campos dentro do loop. exemplo:
    Código:

    'Observação, por nao ter um if aqui todos os registros serão editados, para mudar um registro especifico observe o segundo exeplo:
    do while not tbl.EOF 'enquanto tbl nao chegar depois do ultimo registro
            tbl.Edit
                tbl!NOME1 = qualquerCoisa
                tbl!NOME2 = qualquerCoisa
                tbl!seuCampo3 = qualquerCoisa
                tbl!seuCampo4 = qualquerCoisa
                tbl!seuCampo5 = qualquerCoisa
                tbl!seuCampo6 = qualquerCoisa
            tbl.Update
            tbl.moveNext
        loop

    'agora se vc quer mudar apenas o registro 1 e deixar os outros registros intacto vc tem que trabalhar com ifs. exemplo:
    do while not tbl.EOF 'enquanto tbl nao chegar depois do ultimo registro
            tbl.Edit
            if tbl!ID = 1 then 'quando a id for igual a 1 alterar dados, caso contrario apenas passa para o proximo registro
                tbl!NOME1 = qualquerCoisa
                tbl!NOME2 = qualquerCoisa
                tbl!seuCampo4 = qualquerCoisa
                tbl!seuCampo5 = qualquerCoisa
                tbl!seuCampo6 = qualquerCoisa
            tbl.Update
            end if
            tbl.moveNext
        loop

    espero que com td isso vc consiga fazer o que pretende
    boa sorte ai e se tiver duvida nao deixe de perguntar.

    Conteúdo patrocinado


    Atribuir Dados a um campo de uma Tabela por Variavel Empty Re: Atribuir Dados a um campo de uma Tabela por Variavel

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 7/11/2024, 23:48