Fala Galera
Seguinte, estou usando o metodo DAO.Recordset com o Loop
Más não estou tendo sucesso
Vejam só.
Tenho 3 registros. (TABELA Carteira Preventiva)
Atividade - Nome - Data Programada - Data Final - Contagem Data - Periodicidade (As ATV vem da tabela Atividade Manutenção Preventiva)
010 - ATV01 - 06/03/2019 - 26/03/2019 - 20 - 1
020 - ATV02 - 06/03/2019 - 26/03/2019 - 20 - 2
030 - ATV03 - 06/03/2019 - 26/03/2019 - 20 - 3
A *data final* - *data programada* gera uma contagem de 20 dias ainda.(Calculado automaticamente)
Se você notar tenho a periodicidade ali de cada atividade, e oque ela significa?
a atividade 010, a cada 1 dia ela deve aparecer de novo.
a atividade 020, a cada 2 dias ela deve aparecer de novo.
a atividade 030, a cada 3 dias ela deve aparecer de novo.
Alguem tem alguma ideia?
Com o código que estou usando, ele está pegando só a primeira atividade e dando erro de bloco with, variável não definida no rs3.
vou deixar meu código aqui em baixo para qualquer duvida.
Olhá como está o meu código.
Dim DB As Database
Dim rs As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim rs3 As DAO.Recordset
Set DB = CurrentDb()
Set rs = DB.OpenRecordset("SELECT * FROM [Atividades Manutenção Preventiva] WHERE [Periodicidade] < " & Me.txt_somadatas & " ")
Set rs2 = DB.OpenRecordset("SELECT * FROM [Carteira De Preventiva]")
Do While Not rs.EOF
rs2.AddNew
rs2![Código Atividade] = rs![Código]
rs2![Parte a Verificar] = rs![Parte a Verificar]
rs2![Descrição Do Serviço] = rs![Descrição Do Serviço]
rs2![Periodicidade] = rs![Periodicidade]
rs2![Tempo Necessário] = rs![Tempo Necessário]
rs2![Instrução De Trabalho] = rs![Instrução De Trabalho]
rs2![Material Necessário] = rs![Material Necessário]
rs2![Observações De Segurança] = rs![Observações De Segurança]
rs2![Equipamento Pai] = rs![Equipamento Pai]
rs2![Plano De Manutenção] = rs![Plano De Manutenção]
rs2![Centro De Custo] = rs![Centro De Custo]
rs2![Data De Abertura] = Me.txt_datahoje.Value
rs2![Data Programada] = Me.txt_datahoje.Value + rs![Periodicidade]
rs2![Data Fim Plano] = Me.txt_diafim.Value
rs2![CNTG Datas] = Me.txt_diafim.Value - (Me.txt_datahoje.Value + rs![Periodicidade])
rs2.Update
rs2.Requery
Set rs3 = DB.OpenRecordset("SELECT * FROM [Carteira De Preventiva] WHERE [CNTG Datas] < " & rs3![Periodicidade] & "")
Do While Not rs3.EOF
rs2.AddNew
rs2![Código Atividade] = rs![Código]
rs2![Parte a Verificar] = rs![Parte a Verificar]
rs2![Descrição Do Serviço] = rs![Descrição Do Serviço]
rs2![Periodicidade] = rs![Periodicidade]
rs2![Tempo Necessário] = rs![Tempo Necessário]
rs2![Instrução De Trabalho] = rs![Instrução De Trabalho]
rs2![Material Necessário] = rs![Material Necessário]
rs2![Observações De Segurança] = rs![Observações De Segurança]
rs2![Equipamento Pai] = rs![Equipamento Pai]
rs2![Plano De Manutenção] = rs![Plano De Manutenção]
rs2![Centro De Custo] = rs![Centro De Custo]
rs2![Data De Abertura] = Me.txt_datahoje.Value
rs2![Data Programada] = rs3![Data Programada] + rs![Periodicidade]
rs2![Data Fim Plano] = Me.txt_diafim.Value
rs2![CNTG Datas] = Me.txt_diafim.Value - (Me.txt_datahoje.Value + rs![Periodicidade])
rs2.Update
rs3.MoveNext
Loop
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
rs2.Close
Set rs2 = Nothing
rs3.Close
Set rs3 = Nothing
DB.Close
Set DB = Nothing
Seguinte, estou usando o metodo DAO.Recordset com o Loop
Más não estou tendo sucesso
Vejam só.
Tenho 3 registros. (TABELA Carteira Preventiva)
Atividade - Nome - Data Programada - Data Final - Contagem Data - Periodicidade (As ATV vem da tabela Atividade Manutenção Preventiva)
010 - ATV01 - 06/03/2019 - 26/03/2019 - 20 - 1
020 - ATV02 - 06/03/2019 - 26/03/2019 - 20 - 2
030 - ATV03 - 06/03/2019 - 26/03/2019 - 20 - 3
A *data final* - *data programada* gera uma contagem de 20 dias ainda.(Calculado automaticamente)
Se você notar tenho a periodicidade ali de cada atividade, e oque ela significa?
a atividade 010, a cada 1 dia ela deve aparecer de novo.
a atividade 020, a cada 2 dias ela deve aparecer de novo.
a atividade 030, a cada 3 dias ela deve aparecer de novo.
Alguem tem alguma ideia?
Com o código que estou usando, ele está pegando só a primeira atividade e dando erro de bloco with, variável não definida no rs3.
vou deixar meu código aqui em baixo para qualquer duvida.
Olhá como está o meu código.
Dim DB As Database
Dim rs As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim rs3 As DAO.Recordset
Set DB = CurrentDb()
Set rs = DB.OpenRecordset("SELECT * FROM [Atividades Manutenção Preventiva] WHERE [Periodicidade] < " & Me.txt_somadatas & " ")
Set rs2 = DB.OpenRecordset("SELECT * FROM [Carteira De Preventiva]")
Do While Not rs.EOF
rs2.AddNew
rs2![Código Atividade] = rs![Código]
rs2![Parte a Verificar] = rs![Parte a Verificar]
rs2![Descrição Do Serviço] = rs![Descrição Do Serviço]
rs2![Periodicidade] = rs![Periodicidade]
rs2![Tempo Necessário] = rs![Tempo Necessário]
rs2![Instrução De Trabalho] = rs![Instrução De Trabalho]
rs2![Material Necessário] = rs![Material Necessário]
rs2![Observações De Segurança] = rs![Observações De Segurança]
rs2![Equipamento Pai] = rs![Equipamento Pai]
rs2![Plano De Manutenção] = rs![Plano De Manutenção]
rs2![Centro De Custo] = rs![Centro De Custo]
rs2![Data De Abertura] = Me.txt_datahoje.Value
rs2![Data Programada] = Me.txt_datahoje.Value + rs![Periodicidade]
rs2![Data Fim Plano] = Me.txt_diafim.Value
rs2![CNTG Datas] = Me.txt_diafim.Value - (Me.txt_datahoje.Value + rs![Periodicidade])
rs2.Update
rs2.Requery
Set rs3 = DB.OpenRecordset("SELECT * FROM [Carteira De Preventiva] WHERE [CNTG Datas] < " & rs3![Periodicidade] & "")
Do While Not rs3.EOF
rs2.AddNew
rs2![Código Atividade] = rs![Código]
rs2![Parte a Verificar] = rs![Parte a Verificar]
rs2![Descrição Do Serviço] = rs![Descrição Do Serviço]
rs2![Periodicidade] = rs![Periodicidade]
rs2![Tempo Necessário] = rs![Tempo Necessário]
rs2![Instrução De Trabalho] = rs![Instrução De Trabalho]
rs2![Material Necessário] = rs![Material Necessário]
rs2![Observações De Segurança] = rs![Observações De Segurança]
rs2![Equipamento Pai] = rs![Equipamento Pai]
rs2![Plano De Manutenção] = rs![Plano De Manutenção]
rs2![Centro De Custo] = rs![Centro De Custo]
rs2![Data De Abertura] = Me.txt_datahoje.Value
rs2![Data Programada] = rs3![Data Programada] + rs![Periodicidade]
rs2![Data Fim Plano] = Me.txt_diafim.Value
rs2![CNTG Datas] = Me.txt_diafim.Value - (Me.txt_datahoje.Value + rs![Periodicidade])
rs2.Update
rs3.MoveNext
Loop
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
rs2.Close
Set rs2 = Nothing
rs3.Close
Set rs3 = Nothing
DB.Close
Set DB = Nothing