MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    Atribuir Dados a um campo de uma Tabela por Variavel

    Compartilhe

    Luiz Guilherme
    Novato
    Novato

    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

    Mensagem  Luiz Guilherme em Qua Jul 19, 2017 3:13 am

    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
    avatar
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

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

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

    Mensagem  ronaldojr1 em Qua Jul 19, 2017 1:21 pm

    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

    Luiz Guilherme
    Novato
    Novato

    Respeito às Regras 100%

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

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

    Mensagem  Luiz Guilherme em Qua Jul 19, 2017 6:02 pm

    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
    avatar
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

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

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

    Mensagem  ronaldojr1 em Qua Jul 19, 2017 6:17 pm

    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

    Luiz Guilherme
    Novato
    Novato

    Respeito às Regras 100%

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

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

    Mensagem  Luiz Guilherme em Qui Jul 20, 2017 4:12 am

    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
    avatar
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

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

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

    Mensagem  ronaldojr1 em Qui Jul 20, 2017 1:17 pm

    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.

      Data/hora atual: Seg Set 25, 2017 10:33 am