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.
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
- Teste.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)