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


3 participantes

    Distribuir Nome de Acordo com Cód - Duas Tabelas

    avatar
    williansoaresbr
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 26/01/2012

    Distribuir Nome de Acordo com Cód - Duas Tabelas Empty Distribuir Nome de Acordo com Cód - Duas Tabelas

    Mensagem  williansoaresbr 15/8/2013, 01:31

    Olá amigos, desculpem por lhes incomodarem, mais estou a tempo tentando fazer o código e não estou conseguindo,

    Bom eu montei um banco de access para exemplificar o que eu desejo fazer com o código em vba no próprio access utilizando essas tabelas.

    Bom são três tabelas, TB_METAS, TB_PRINCIPAL E TB_REGIONAL

    O método é bem simples, a cada três dias eu irei gerar uma tabela nova com os dados da TB_PRINCIAL, porém a coluna Desc_regional sempre estará em branco, ou seja, as que eu ja adicionei os dados anteriores nao irei mexer entao poderemos iniciar o acesso a tabela informando para adicionar os dados somente para os campos null ou nulo.

    Bom tenho uma Tabela TB_REGIONAL essa é fixa, terá os códigos repetindo mesmo várias vezes porém esses mesmos códigos que se repetem possui várias regionais, ai que entra o algorítimo, eu preciso que a Desc_Regional da TB_Regional adicione na Desc_regional da tabela TB_PRincipal, porém da seguinte maneira, enquanto possuir código igual ele vá adicionando randomicamente do começo até o o final do código e depois inicia novamente o começo do nome até o final até que na TB_Principal não tenha mais o código igual ao código da TB_regional, assim ele irá para o próximo código e sucessivamente repetindo o mesmo processo. Ou seja, mesmo que ja TB_Princial o código 1111 se repita 100 vezes, e na tabela TB_Regional só possua o código 1111 4 vezes, ele tem que repetir os nomes varias vezes do A ao D até completar as 100 vezes da Tabela TB_Principal, e somente após isso ele irá para o próximo código e pegará os outros nomes da tabela TB_Regional de acordo com o código e repete o processo, só irá concluir quando os campos nulos da TB_Princial forem todos preenchidos alternadamente de acordo com o código da outra Tabela, não sei se expliquei direito, mais é isso

    A única diferença será a TB_Metas ou seja, nao se se conseguirei explicar certinho, mais vou tentar, antes de fazer o processo de distribuição acima, primeira devemos seguir a regra das metas ou seja, se no código 1111 a desc_regional estiver 10% ou 20% etc para os outros códigos, ela deverá adicionar as informações na TB_PRincipal de acordo com o percentual aplicado, ou seja, supamos que na TB_Princial, temos 11 contratos, e nesses na TB_Regional, eu tenho 4 Desc_Regional, eu tenho que distribuir de acordo com o código e a meta ou seja, pegamos a quantidade total que temos de campos nulo na TB_Princial, dividimos pela quantidade de Desc_Regional da TB_Regional e adicionamos os nomes de acordo com a quantidade da meta, ou seja se repetir 11 vezes mais o percentual é de 10%, então a primeira Desc_REgional 11111 deverá receber somente 1 contrato então ela irá ser adicionado somente uma vez, a proxima com o codigo 2222 se for 30% ele receberá 4 contratos então será adicionado quatros vezes na tabela até preenchermos a TB_principal, porém randomicamente.

    Sei que essa regra de Metas é complicado, mais se não der, poderiam tentar me ajudarem no primeiro código, achei um exemplo, mais não consegui adaptar

    Obrigado a todos.

    Código contendo um exemplo, mais não é o que desejo, pois eu preciso conectar duas tabelas ou tres se for utilizado o processo de metas.
    Código:
    Sub distribuirTarefas()

        Dim rstTarefas As Recordset
        Dim rstOperadores As Recordset
        Dim strSql As String
        
        'Montado o código para buscar as tarefas cujo
        'campo chave esteja vazio
        strSql = "Select * From Tarefas Where chave Is Null"
        
        'Buscando as tarefas
        Set rstTarefas = CurrentDb.OpenRecordset(strSql)
        
        'Montando o código para buscar os
        'operadores na tabela Chaves
        strSql = "Select operadores From Chaves"
        
        'Buscando os operadores
        Set rstOperadores = CurrentDb.OpenRecordset(strSql)
        
        'Iniciando o Loop nas tarefas
        While Not rstTarefas.EOF
            
            'Editando o campo chave
            'para inserir o operador atual
            rstTarefas.Edit
            rstTarefas("chave") = rstOperadores("operadores")
            rstTarefas.Update
            
            'Próxima tarefa
            rstTarefas.MoveNext
            
            'Próximo operador ou volta ao início
            rstOperadores.MoveNext
            If rstOperadores.EOF Then rstOperadores.MoveFirst
            
        Wend

    End Sub
    Anexos
    Distribuir Nome de Acordo com Cód - Duas Tabelas AttachmentTeste.zip
    Arquivo de Access contendo as Tabelas para Exemplo de como Seria.
    Você não tem permissão para fazer download dos arquivos anexados.
    (27 Kb) Baixado 14 vez(es)
    avatar
    williansoaresbr
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 26/01/2012

    Distribuir Nome de Acordo com Cód - Duas Tabelas Empty Re: Distribuir Nome de Acordo com Cód - Duas Tabelas

    Mensagem  williansoaresbr 19/8/2013, 00:06

    Ninguém consegue ajudar !!!
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    Distribuir Nome de Acordo com Cód - Duas Tabelas Empty Re: Distribuir Nome de Acordo com Cód - Duas Tabelas

    Mensagem  Alexandre Neves 19/8/2013, 12:20

    Bom dia,
    Não consigo entender como pretende


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    matheuspereira
    matheuspereira
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 513
    Registrado : 31/12/2012

    Distribuir Nome de Acordo com Cód - Duas Tabelas Empty bom dia..

    Mensagem  matheuspereira 19/8/2013, 13:31

    Nossa, amigo difícil em.. Tente explicar melhor pois ficou complicado ate para ler.. Vc pois muita coisa ao mesmo tempo e não consegui intender seu objetivo...
    avatar
    williansoaresbr
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 26/01/2012

    Distribuir Nome de Acordo com Cód - Duas Tabelas Empty Re: Distribuir Nome de Acordo com Cód - Duas Tabelas

    Mensagem  williansoaresbr 19/8/2013, 23:38

    Obrigado pelo Retorno Amigos.

    Vou tentar exemplificar melhor o que gostaria de fazer, não vou incluir o da meta no momento, só os campos que serão adicionados na tabela.

    Bem, eu tenho uma tabela A onde essa tabela possui duas colunas, código e nome, nessa tabela A eu terei vários codigos que irão se repetir devido eu possuir vários nomes diferentes para o mesmo código, exemplo:

    Tabela A

    Código - Nomes
    111 - Nome A
    111 - Nome B
    111 - Nome C
    111 - Nome D
    111 - Nome E
    222 - Nome AA
    222 - Nome BB
    222 - Nome CC
    222 - Nome DD
    222 - Nome EE

    Na Tabela B eu terei um campo onde esse Código igual o Código da Tabela A já estão definidos, porém eles aparecem umas 100 vezes, só que o Campo de nomes não possuirá nenhum Nome, o que eu precisaria é que rodasse um algoritimo onde os nomes A,B,C,D,E vão sendo adicionados de A até o E e quando concluir a primeira volta, ele comece a segunda volta novamente, e adicione novamente de A até E só irá parar quando não possuir o mesmo código da Tabela B, e só irá para o próximo looping, quando terminar de adicionar todos os campos nomes, do mesmo código, assim poderá adicionar os outros nomes na tabela B.

    Exemplo de como ficaria na Tabela B

    Só com os códigos

    Cod - Nomes
    111
    111
    111
    111
    111
    111
    111
    111
    111
    222
    222
    222
    222
    222
    222
    222
    222
    222

    Tabela B após rodar o looping e adicionar os campos nomes de acordo com o código e repetindo até não possuir o mesmo código.

    Cod - Nomes
    111 - Nome A
    111 - Nome B
    111 - Nome C
    111 - Nome D
    111 - Nome E
    111 - Nome A (começa a repetir até não possuir mais o mesmo código da tabela)
    111 - Nome B
    111 - Nome C
    111 - Nome D
    222 - Nome AA (Como iniciou outro código, ele irá começar adicionar os nomes de acordod com o novo código pegando os nomes que estão na Tabela A e adicionando na Tabela B fazendo o mesmo looping)
    222 - Nome BB
    222 - Nome CC
    222 - Nome DD
    222 - Nome EE
    222 - Nome AA
    222 - Nome BB
    222 - Nome CC
    222 - Nome DD (Apara de adicionar pois não possui mais nenhum código e não repete o mesmo código, nao sei se dessa vez consegui explicar, espero que sim, obrigado pela ajuda.
    avatar
    williansoaresbr
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 26/01/2012

    Distribuir Nome de Acordo com Cód - Duas Tabelas Empty Re: Distribuir Nome de Acordo com Cód - Duas Tabelas

    Mensagem  williansoaresbr 22/8/2013, 13:47

    Tentei exemplificar o máximo possível, mais pelo jeito parece que não ha solução, obrigado a todos.
    avatar
    williansoaresbr
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 26/01/2012

    Distribuir Nome de Acordo com Cód - Duas Tabelas Empty Re: Distribuir Nome de Acordo com Cód - Duas Tabelas

    Mensagem  williansoaresbr 11/9/2013, 01:13

    Ninguém teria nenhuma solução quanto ao problema, looping sobre looping.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    Distribuir Nome de Acordo com Cód - Duas Tabelas Empty Re: Distribuir Nome de Acordo com Cód - Duas Tabelas

    Mensagem  Alexandre Neves 13/9/2013, 18:42

    Boa tarde.
    Disponibilize dados significativos


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    Conteúdo patrocinado


    Distribuir Nome de Acordo com Cód - Duas Tabelas Empty Re: Distribuir Nome de Acordo com Cód - Duas Tabelas

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 8/5/2024, 01:19