MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Executa loop em um registro e adicionar valor em mais de um campo

    avatar
    PetryX
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 25
    Registrado : 22/03/2017

    [Resolvido]Executa loop em um registro e adicionar valor em mais de um campo Empty [Resolvido]Executa loop em um registro e adicionar valor em mais de um campo

    Mensagem  PetryX em 15/8/2020, 14:32

    Olá mestres!

    Então venho solicitar a ajuda de vocês para esse problema...

    Tenho um form com dois botões, Salvar e Excluir.
    Quero que ao clicar em Salve ele vá na Tbl, encontre o registro e marque de FI a FF.
    E antes de  Excluir ele vá na Tbl, encontre o registro e desmarque de FI a FF.  

    Desde já muito obrigado a todos. Cool
    Anexos
    [Resolvido]Executa loop em um registro e adicionar valor em mais de um campo AttachmentBancoTesteselo.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (16 Kb) Baixado 1 vez(es)


    Última edição por PetryX em 16/8/2020, 20:33, editado 1 vez(es)
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1148
    Registrado : 13/12/2016

    [Resolvido]Executa loop em um registro e adicionar valor em mais de um campo Empty Re: [Resolvido]Executa loop em um registro e adicionar valor em mais de um campo

    Mensagem  Alexandre Fim em 15/8/2020, 17:10

    Olá Petryx,

    A sua tabela não possuem os campos "FI" E "FF"?
    Você quer que marque todas as folhas ao clicar em Salvar?
    É isso?


    .................................................................................
    - Procure sempre anexar seu projeto para análise do problema/dúvida.
    - Ao copiar/colar um código VBA, procure entender seu funcionamento.
    - Se o problema foi resolvido, não se esqueça de marcar o tópico como RESOLVIDO.
    avatar
    PetryX
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 25
    Registrado : 22/03/2017

    [Resolvido]Executa loop em um registro e adicionar valor em mais de um campo Empty Re: [Resolvido]Executa loop em um registro e adicionar valor em mais de um campo

    Mensagem  PetryX em 15/8/2020, 17:32

    Olá Alexandre.

    Desculpa a minha falha por não ter me expresado bem...
    Cada registro vai de F001 á F200, logo terei que formatar o texto pois no formulario so é digitado os numeros, por exemplo: 004, 060, 149.
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1148
    Registrado : 13/12/2016

    [Resolvido]Executa loop em um registro e adicionar valor em mais de um campo Empty Re: [Resolvido]Executa loop em um registro e adicionar valor em mais de um campo

    Mensagem  Alexandre Fim em 15/8/2020, 18:13

    Petryx,

    Por gentileza, me dê mais detalhes sobre o que vc pretende.
    A inclusão de mais de 200 campos em uma tabela não é usual e também existem limitações de campos em uma tabela.

    De repente, podemos fazer de forma mais simples.

    Att,



    .................................................................................
    - Procure sempre anexar seu projeto para análise do problema/dúvida.
    - Ao copiar/colar um código VBA, procure entender seu funcionamento.
    - Se o problema foi resolvido, não se esqueça de marcar o tópico como RESOLVIDO.
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1148
    Registrado : 13/12/2016

    [Resolvido]Executa loop em um registro e adicionar valor em mais de um campo Empty Re: [Resolvido]Executa loop em um registro e adicionar valor em mais de um campo

    Mensagem  Alexandre Fim em 15/8/2020, 18:34

    Petryx,

    Fiz algumas alterações no teu sistema para atender sua necessidade.

    A tela principal ficou assim;

    [Resolvido]Executa loop em um registro e adicionar valor em mais de um campo Livros10

    Apos abrir o formulário acima, pressione ALT+F11, e o Access vai abrir a janela do código-fonte que executa toda a rotina.

    Fiz os comentários em cada procedimento pra vc entender o que cada evento executa.

    Segue exemplo em anexo.


    Espero ter ajudado.
    Anexos
    [Resolvido]Executa loop em um registro e adicionar valor em mais de um campo AttachmentBancoTesteselo_v2.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (35 Kb) Baixado 10 vez(es)


    .................................................................................
    - Procure sempre anexar seu projeto para análise do problema/dúvida.
    - Ao copiar/colar um código VBA, procure entender seu funcionamento.
    - Se o problema foi resolvido, não se esqueça de marcar o tópico como RESOLVIDO.
    avatar
    PetryX
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 25
    Registrado : 22/03/2017

    [Resolvido]Executa loop em um registro e adicionar valor em mais de um campo Empty Re: [Resolvido]Executa loop em um registro e adicionar valor em mais de um campo

    Mensagem  PetryX em 16/8/2020, 20:27

    Olá Alexandre Fim.

    Ótimo código!

    Mais quero que ele fique mais altomatico.

    Minha sugestão e a seguinte...

    Partindo do principio de tenho o campo principal que seria o Livro e mais dois campos em que coloco a Folha inicial e Folha Final.

    Qual a possibilidade de geral esses campos sequencial no subformulário?

    Exemplo:

    no livro: 1218-N, FI: 008, FF: 020, ele gerar um subformulário com a sequencia ficaria...

    1;Livro;F008;F009;F010;F011;F012;F013;F014;F015;F016;F017;F018;F019;F020

    E logo apos geral o subformulário ele ativa o laço como você avia criado.

    Desde já muito obrigado vou usar este código em outro que estava em mente, muito grato!
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1148
    Registrado : 13/12/2016

    [Resolvido]Executa loop em um registro e adicionar valor em mais de um campo Empty Re: [Resolvido]Executa loop em um registro e adicionar valor em mais de um campo

    Mensagem  Alexandre Fim em 17/8/2020, 13:44

    Olá Petryx,

    Sim, é possivel informar a Folha inicial e Folha final e gerar automaticamente.
    Como mencionei anteriormente, existe um limite 255 colunas(campos) em uma tabela, e se a quantidade de folhas for maior que este número, o Access vai gerar um erro.
    Gostaria de saber se o intervalo de folhas do livro poderia ser informado em um campo texto.
    Ex.:
    [Resolvido]Executa loop em um registro e adicionar valor em mais de um campo Folhas10


    Att,


    .................................................................................
    - Procure sempre anexar seu projeto para análise do problema/dúvida.
    - Ao copiar/colar um código VBA, procure entender seu funcionamento.
    - Se o problema foi resolvido, não se esqueça de marcar o tópico como RESOLVIDO.
    avatar
    PetryX
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 25
    Registrado : 22/03/2017

    [Resolvido]Executa loop em um registro e adicionar valor em mais de um campo Empty Re: [Resolvido]Executa loop em um registro e adicionar valor em mais de um campo

    Mensagem  PetryX em 17/8/2020, 13:59

    Olá Alexandre Fim

    Para esse projeto não!

    A tbl em questão tem exatas 207 colunas, basicamente a função que quero executar e pegar essa folha inicial e final e marca-las em sequencia na tabela que não faz parte do formulário por isso minha insistência nesse método de gerar uma sequência de campos automático baseado na sequencia que sara informado no formulário, assim marca-las e desmarca-las conforme comando.

    Muito obrigado pelo seu auxílio!
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1148
    Registrado : 13/12/2016

    [Resolvido]Executa loop em um registro e adicionar valor em mais de um campo Empty Re: [Resolvido]Executa loop em um registro e adicionar valor em mais de um campo

    Mensagem  Alexandre Fim em 17/8/2020, 15:34

    Petryx,

    Essa lógica precisa ser modificada.
    O livros terão nº de páginas distintos, e isso não funciona muito bem em banco de dados, pois a tabela terá sempre a quantidade maior de campos (207), mas, em alguns livros, serão utilizados 10...outros 20 campos e os demais campos não serão utilizados.

    O correto seria verticalizar os dados e criar outra tabela que armazenará a quantidade de registros referente ao nº de páginas de cada livro.
    Ex.:

    [Resolvido]Executa loop em um registro e adicionar valor em mais de um campo Vertic10

    E a apresentação dos dados no formulário seria HORIZONTALIZADA, através de consulta de Tabela de Referencia Cruzada, conforme abaixo:
    [Resolvido]Executa loop em um registro e adicionar valor em mais de um campo Refer_11


    Espero ter ajudado.



    .................................................................................
    - Procure sempre anexar seu projeto para análise do problema/dúvida.
    - Ao copiar/colar um código VBA, procure entender seu funcionamento.
    - Se o problema foi resolvido, não se esqueça de marcar o tópico como RESOLVIDO.
    avatar
    PetryX
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 25
    Registrado : 22/03/2017

    [Resolvido]Executa loop em um registro e adicionar valor em mais de um campo Empty Re: [Resolvido]Executa loop em um registro e adicionar valor em mais de um campo

    Mensagem  PetryX em 17/8/2020, 15:56

    Alexandre Fim,

    No inicio do projeto eu avia cogitado esse formato mas identifiquei que iria adicionar muitas linhas sem a devida necessidade das mesmas.
    Respondendo seu argumento eu utilizo as 200 folhas!

    Esse formulario em questão vai alimentar outra tabela adicionado estas sequencia em um protocolo, afirmo que esse formulario ja esta em uso minha dificuldade esta em manipular essa sequencia e marca essas folhas completando assim a tabela livro...

    O codigo que você desenvolveu e sim oque eu estava procurando ajudou muito vou tentar agora manipular a sequencia pra executar o msm

    Muito obrigado pela ajuda meu caro...
    avatar
    PetryX
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 25
    Registrado : 22/03/2017

    [Resolvido]Executa loop em um registro e adicionar valor em mais de um campo Empty Re: [Resolvido]Executa loop em um registro e adicionar valor em mais de um campo

    Mensagem  PetryX em 19/8/2020, 14:09

    Colega Alexandre obrigado pelo código!

    Apos uma analisada no código que avia escrito eu compilei da seguinte maneira...

    Código:
    Option Compare Database
    Dim db          As DAO.Database 'variavel que assume as propriedados do banco de dados
    Dim rs          As DAO.Recordset 'variavel que assume as propriedades da tabela
    Dim msql        As String 'variavel que armazena instrução SQL
    Dim i, FI1, FF2 As Integer 'variavel utilizada como contador

    'Instrução genériaca utilizada conforme parametro (nValor) informado
    Public Sub GravaDados(nValor As Integer)

        Set db = CurrentDb
        msql = "SELECT * FROM nometabela WHERE campocod=" & Me.campocodnoform & ""
        Set rs = db.OpenRecordset(msql, dbOpenDynaset)
        FI1 = FI
        FF2 = FF
        
            With rs
               'Laço da folha inicial a folha final na tabela, comecando do FI
                For i = FI1 To FF2   'define o index do campo na tabela
                .Edit
                .Fields(i).Value = nValor 'Altera o devido campo
                .Update 'Atualiza o campo na tabela
                Next i
            End With

        rs.Close 'Fecha o recordset
        Set rs = Nothing 'Limpa da memória
        
    End Sub


    Dasta maneira posso escolher os campo inicial e final para devidas marcações...


    Encerro esse tópico muito feliz com e resultado.
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1148
    Registrado : 13/12/2016

    [Resolvido]Executa loop em um registro e adicionar valor em mais de um campo Empty Re: [Resolvido]Executa loop em um registro e adicionar valor em mais de um campo

    Mensagem  Alexandre Fim em 19/8/2020, 14:38

    Olá Petryx,

    Parabéns !!! É isso ai !!!
    O fórum agradece.

    Boa sorte e bons projetos !!!


    .................................................................................
    - Procure sempre anexar seu projeto para análise do problema/dúvida.
    - Ao copiar/colar um código VBA, procure entender seu funcionamento.
    - Se o problema foi resolvido, não se esqueça de marcar o tópico como RESOLVIDO.

      Data/hora atual: 28/9/2020, 11:23