Boa tarde Mestres.
Tenho um relatório com os seguintes TextBox por linha:
txtReg (Onde vai o Registro do funcionário); txtNome (Onde vai o Nome do Funcionário); txtABON1; txtABON2; txtABON3; txtABON4; txtABON5; txtABON6; (Onde tem que entrar as datas das faltas com Motivo = "ABONADA")
Este é baseado em uma tabela de faltas dos funcionários onde tenho os campos:
REG (Registro do funcionário); Nome (Nome do Funcionário); Motivo_Falta; Data_Falta; Ano
O que quero é o seguinte, todas as faltas com Motivo = "Abonada" do ano atual (Que são 6 por ano com datas quaisquer) sejam colocadas nos textbox do relatório relacionados ao número de registro.
No momento uso o seguinte código para isso:
Mas está repetindo o mesmo registro sempre e não preenche as datas de acordo com o registro, entram todas de quaisquer funcionários.
O que estou a fazer de errado?
Tenho um relatório com os seguintes TextBox por linha:
txtReg (Onde vai o Registro do funcionário); txtNome (Onde vai o Nome do Funcionário); txtABON1; txtABON2; txtABON3; txtABON4; txtABON5; txtABON6; (Onde tem que entrar as datas das faltas com Motivo = "ABONADA")
Este é baseado em uma tabela de faltas dos funcionários onde tenho os campos:
REG (Registro do funcionário); Nome (Nome do Funcionário); Motivo_Falta; Data_Falta; Ano
O que quero é o seguinte, todas as faltas com Motivo = "Abonada" do ano atual (Que são 6 por ano com datas quaisquer) sejam colocadas nos textbox do relatório relacionados ao número de registro.
No momento uso o seguinte código para isso:
- Código:
Option Compare Database
Option Explicit
Dim db As Dao.Database
Dim rsAbonadas, rsFunc As Dao.Recordset
Dim strAno, strMotivo, strReg, strNome As String
Dim yColuna, I As Integer
Sub Report_Load()
Set db = CurrentDb
strAno = Format(Date, "YYYY")
strMotivo = "ABONADA"
Set db = CurrentDb
Set rsFunc = db.OpenRecordset("Select [REG], [NOME] from tb_Faltas Where [MOTIVO_FALTA]= '" & strMotivo & "' And [ANO] = " & strAno & " ")
strReg = rsFunc("REG")
strNome = rsFunc("NOME")
Set rsAbonadas = db.OpenRecordset("Select [DATA_FALTA], [MOTIVO_FALTA], [ANO], [REG] From tb_Faltas where [REG] = '" & strReg & "' ORDER BY [DATA_FALTA]")
If rsAbonadas.RecordCount <> 0 Then
rsAbonadas.MoveLast
rsAbonadas.MoveFirst
For yColuna = 1 To rsAbonadas.RecordCount
For I = 1 To 6 'referente a 6 caixas de texto
On Error Resume Next
Me.Controls("txtABON" & I).Value = rsAbonadas("DATA_FALTA")
rsAbonadas.MoveNext
Next I
Next yColuna
rsAbonadas.Close
Set rsAbonadas = Nothing
Set db = Nothing
End If
End Sub
Private Sub Report_Close()
Set db = Nothing
Set rsAbonadas = Nothing
Set rsFunc = Nothing
End Sub
Mas está repetindo o mesmo registro sempre e não preenche as datas de acordo com o registro, entram todas de quaisquer funcionários.
O que estou a fazer de errado?