USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  vba x query
Moreti
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 22/10/2008 05:42 hs            
Amigos, tenho que mapear uns job's de um monte de banco de dados, cada job tem no mínimo 5 step's, e tenho que colocar em uma planilha excel.
Bem, já montei minha query, acontece que quando executo ela  ele retorna o nome do job 5 vezes e os steps, está certo, pois cada step tem um nome diferente.
Eu quero colocar o nome do job em uma linha e os steps nas outras linhas sem repetir o nome do job assim:
 
nome do job         step
1job                     1
                           2                       
                           3
                           4
                           5 
2job                     1
                           2
                           3
                           4
                           5
e assim por diante
Obrigado
Claudio Moreti
                           
 
   
Guaitoli
Pontos: 2843
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 23/10/2008 15:59 hs            
Cara, eu não entendi muito bem oque vc precisa, mas ve se é isso e se resolve seu problema.

Dim NomeJob as String

for each job in jobs
     NomeJob = job.Name
     for each Step in Steps
          IF Job.name <> NomeJob then
               Me.PRINT Job.Name; Step.Name
               NomeJob = Job.Name
          ELSE
               me.print space(len(Job.Name)); Step.Name
          END IF
     next step
next step

tenta alguma coisa assim dentro da sua estrutura que vai funcionar, não dá para detalhar mais pois faltam informaçoes considerei que os jobs e os steps são como objetos que possuem a propiedade name

Eder Guaitoli
   
Moreti
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 24/10/2008 02:11 hs            
Cara, eu não consegui fazer roadar, dá erro no primeiro faço. onde vc fecha o primeiro laço com step seria job eu arrumei, mas não funfa não.
Vou colocar a minha query e tentar explicar melhor!
 
cString = "select Distinct sj.[name]as job_name, so.step_ID, so.step_name,"
cString = cString & " so.database_name, so.Max_run_time, so.Max_run_date,  sj.[description],sj.enabled,"
cString = cString & " ss.active_start_time , ss.active_end_time"
cString = cString & " from msdb.dbo.sysjobsteps as so"
cString = cString & " inner join msdb.dbo.sysjobs as sj on sj.job_id = so.job_id"
cString = cString & " inner join msdb.dbo.sysjobschedules as ss on sj.job_id = ss.job_id order by sj.job_name"
rs.Open cString, cn
Está funcionando ele me retorna tudo o que preciso.
quando falei que ela repete o mesmo nome de job estava me referindo a isso.
Jon_name                        Step_id             Step_name
 
Accounts Restrictions Job      1             Serasa Return Processing
Accounts Restrictions Job      2             Serasa Inclusion
Accounts Restrictions Job      3             Serasa Exclusion
Accounts Restrictions Job      4             Serasa Reset Inclusion
Accounts Restrictions Job      5             Serasa Mail Return Exclusion
Accounts Restrictions Job      6             ACSP Return Processing
Accounts Restrictions Job      7             ACSP Inclusion
Accounts Restrictions Job      8             ACSP Exclusion
Accounts Restrictions Job      9             EquiFax Return Processing
Accounts Restrictions Job     10            EquiFax Inclusion
Accounts Restrictions Job     11            EquiFax Exclusion
Agency EDI - Check             1             AVAL
Agency EDI - Check             2             BRH
Agency EDI - Check             3             PAC
Agency EDI - Check             4             MASTERCOB
 
O que eu quero é o seguinte:
Só vou colocar as 3 primeiras colunas se não fica muito grande.
Na planilha do excel
Coluna A                        Coluna B               Coluna C  
Jon_name                        Step_id             Step_name
 
Accounts Restrictions Job      1             Serasa Return Processing
                                        2             Serasa Inclusion
                                        3             Serasa Exclusion
                                        4             Serasa Reset Inclusion
                                        5             Serasa Mail Return Exclusion
                                        6             ACSP Return Processing
                                        7             ACSP Inclusion
                                        8             ACSP Exclusion
                                        9             EquiFax Return Processing
                                       10            EquiFax Inclusion
                                       11            EquiFax Exclusion
Agency EDI - Check             1             AVAL
                                        2             BRH
                                        3             PAC
                                        4             MASTERCOB
 
Acho que agora ficou melhor
Obrigado
   
Guaitoli
Pontos: 2843
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 24/10/2008 14:20 hs            
Cara a idéia é a mesma faz isso, coloca logo depois que vc abrir o RecosdSet

Dim ff as Integer
Dim JobName as String

ff=FreeFile
JobName = ""

Open "C:Jobs.csv" for output as #ff
     Do While Not Rs.EOF or Rs.BOF
          if rs!job_Name = JobName Then
               Print #ff, space(len(JobName));rs!Step_ID; rs!Step_Name
          Else
               JobName = rs!job_Name
               Print #ff, JobName;rs!Step_ID; rs!Step_Name
          End if
          Rs.MoveNext
     Loop
Close #ff

If rs.state = 1 then rs.close
TÓPICO EDITADO
 
Página(s): 1/1    

CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página