Ir para conteúdo
Fórum Script Brasil

Leo Baiano

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Tudo que Leo Baiano postou

  1. PessoALL, Estou com um problema que espero possam me ajudar. Me passaram um banco de dados ACCESS já com registros só para eu trabalhar relatorios. Tenho que fazer isso o mais breve possivel e estou com um problema. O problema esta em duas tabelas, uma chamada pesq (cadastro pesquisadores) e a outra chamada prod_b (produção destes pesquisadores. Na tabela pesquisadores tem um campo chamado area (area de atuação do pesquisador), a tabela de produção também deveria ter esse campo pois cada produção tem sua área de aplicação. Bom, eu criei o campo area na tabela produção e agora preciso colocar a área de cada uma delas. É muito registro e pensei em automatizar o serviço, e ai é que estou com problemas, vejam o que pensei fazer. Criei uma página ASP onde eu seto rs e rs1 para cada uma das tabelas. Depois eu abro um laço da tabela pesq ----- LAÇO DA TABELA PESQ ----- if not rs1.eof then while not rs1.eof ------ FECHA -------- e dentro do laço eu pego o valor da ID e AREA do pesquisador e coloco nas variaveis IDPESQ e PESQAREA. Depois abro o laço da tabela prod_b ----- LAÇO DA TABELA PROD_B ----- if not rs.eof then while not rs.eof ------ FECHA -------- Onde pego o valor do campo ID_PESQ (que é igual a ID do pesquisador). Na tabela PROD_B existem bem mais registros do que na tabela PESQ pois cada pesquisador pode ter várias produções e as produções estão ligadas ao pesquisador pelos campos ID (tabela pesq) e ID_PESQ (tabela prod_b). Depois de pegar a variavel ID_PESQ eu faço o update dos registros da tabela prod_b colocando o valor da variavel PESQAREA (area do pesquisador que peguei na tabela pesq) no campo AREA (da tabela prod_b) onde o ID_PESQ for igual a ID do pesquisador o qual peguei a area desta forma: db.Execute("update prod_b set area='"&pesqarea&"' where id_pesq="&idpesq&"") Então fecho o laço da tabela PROD_B e em seguida fecho o laço da tabela PESQ assim: rs.Movenext wend end if rs1.Movenext wend end if A idieá é que o sistema leria as variaveis do primeiro registro da tabela pesq e gravaria a ID do pesquisador e AREA numa variavel, depois ele iria para a tabela PROD_B onde leria compararia os campos ID_PESQ com a variavel ID escrevendo a variavel PESQAREA no campo AREA daqueles registros que fossem iguais. Ao terminar de fazer esta operação em todos os registros com ID igual ele passaria para o proximo registro da tabela PESQ e repetiria o processo. Em teoria esta tudo ok mas quando rodo o sistema ele faz isso apenas com o primeiro pesquisador, ele grava o valor da area do pesquisador no campo area na tabela prod_b mas faz isso só nas produções do primeiro pesquisador. Segue o código completo. ------------- <!-- #include file=conexao.asp --> <% Set rs = Server.CreateObject( "ADODB.Recordset" ) rs.ActiveConnection = db rs.open "SELECT * FROM prod_b" Set rs1 = Server.CreateObject( "ADODB.Recordset" ) rs1.ActiveConnection = db rs1.open "SELECT * FROM pesq" if not rs1.eof then while not rs1.eof idpesq = rs1("id") pesqarea = rs1("area") if not rs.eof then while not rs.eof idprod = rs("id_pesq") db.Execute("update prod_b set area='"&pesqarea&"' where id_pesq="&idpesq&"") rs.Movenext wend end if rs1.Movenext wend end if Obrigado a todos.
×
×
  • Criar Novo...