Pintou mais uma dúvida.
Tenho um relatório que pega dados de uma 2 tabelas (tb_Func (funcionários) e tb_Faltas_Cartão (Faltas mensais dos funcionários)).
Neste relatório tenho 15 TextBox que são nomeadas assim:
txtOutros1, txtOutros2 ... txtOutros15.
Como tenho vários itens diferentes e a quantidade delas não é padrão, gostaria que, conforme fossem aparecendo as faltas, Se o txtOutros1 estivesse vazio, preenchia ele mesmo; se tivesse preenchido o txtOutros1, pulasse para o 2, e assim sucessivamente.
Tentei assim, mas não ta dando certo:
- Código:
For num = 1 To 12
Select Case num
Case 1
Mes = "Jan"
Mes1 = "janeiro"
DataFim = "31"
Case 2
If ANO Mod 400 = 0 Or (ANO Mod 4 = 0 And ANO Mod 100 <> 0) Then
Mes = "Fev"
Mes1 = "fevereiro"
DataFim = "29"
Else
Mes = "Fev"
Mes1 = "fevereiro"
DataFim = "28"
End If
Case 3
Mes = "Mar"
Mes1 = "março"
DataFim = "31"
Case 4
Mes = "Abr"
Mes1 = "Abril"
DataFim = "30"
Case 5
Mes = "Mai"
Mes1 = "maio"
DataFim = "31"
Case 6
Mes = "Jun"
Mes1 = "junho"
DataFim = "30"
Case 7
Mes = "Jul"
Mes1 = "julho"
DataFim = "31"
Case 8
Mes = "Ago"
Mes1 = "agosto"
DataFim = "31"
Case 9
Mes = "Set"
Mes1 = "setembro"
DataFim = "30"
Case 10
ANO = ANO - 1
Mes = "Out"
Mes1 = "outubro"
DataFim = "31"
Case 11
Mes = "Nov"
Mes1 = "novembro"
DataFim = "30"
Case 12
Mes = "Dez"
Mes1 = "dezembro"
DataFim = "31"
End Select
For cont1 = 1 To DataFim
‘Seta e determina onde são achadas as faltas na tb_Faltas_Cartao
Set RsFaltas = db.OpenRecordset("Select * From tb_Faltas_Cartao Where [REG]=" & _
Form_Funcionários.txtREG_FUNC.Value & " And [MES_FALTA]= '" & Mes1 & "'")
‘Confere se tem faltas na tb_Faltas_Cartao
If RsFaltas.RecordCount <> 0 Then RsFaltas.MoveFirst
RsFaltas.FindFirst "DIA_FALTA=" & cont1
If RsFaltas.NoMatch Then
‘Se não há faltas neste dia, preenche como dia de trabalho concluído
Dia = Weekday(cont1 & "/" & num & "/" & ANO)
If Dia = 1 Then
Me("txt" & Mes & cont1).Value = "D"
Me("txt" & Mes & cont1).ForeColor = 25600
Me("txt" & Mes & cont1).BackColor = 12713921
Me("txt" & Mes & cont1).FontBold = True
End If
If Dia = 2 Or Dia = 3 Or Dia = 4 Or Dia = 5 Or Dia = 6 Then
Me("txt" & Mes & cont1).Value = "C"
Me("txt" & Mes & cont1).ForeColor = 16711680
End If
If Dia = 7 Then
Me("txt" & Mes & cont1).Value = "S"
Me("txt" & Mes & cont1).ForeColor = 25600
Me("txt" & Mes & cont1).BackColor = 12713921
Me("txt" & Mes & cont1).FontBold = True
End If
If (num = 1 And cont1 = 1) Or (num = 4 And cont1 = 21) Or (num = 5 And cont1 = 1) Or (num = 6 And cont1 = 21) _
Or (num = 9 And cont1 = 7) Or (num = 10 And cont1 = 12) _
Or (num = 11 And (cont1 = 2 Or cont1 = 15)) Or (num = 12 And cont1 = 25) Then
Me("txt" & Mes & cont1).Value = "FN"
Me("txt" & Mes & cont1).ForeColor = vbRed
End If
If ((num = 1 And cont1 = 1) Or (num = 4 And cont1 = 21) Or (num = 5 And cont1 = 1) Or (num = 6 And cont1 = 21) _
Or (num = 9 And cont1 = 7) Or (num = 10 And cont1 = 12) _
Or (num = 11 And (cont1 = 2 Or cont1 = 15)) Or (num = 12 And cont1 = 25)) And Dia = 1 Then
Me("txt" & Mes & cont1).Value = "FN/D"
Me("txt" & Mes & cont1).ForeColor = vbRed
Me("txt" & Mes & cont1).BackColor = 12713921
Me("txt" & Mes & cont1).FontSize = 8
End If
If ((num = 1 And cont1 = 1) Or (num = 4 And cont1 = 21) Or (num = 5 And cont1 = 1) Or (num = 6 And cont1 = 21) _
Or (num = 9 And cont1 = 7) Or (num = 10 And cont1 = 12) _
Or (num = 11 And (cont1 = 2 Or cont1 = 15)) Or (num = 12 And cont1 = 25)) And Dia = 7 Then
Me("txt" & Mes & cont1).Value = "FN/S"
Me("txt" & Mes & cont1).ForeColor = vbRed
Me("txt" & Mes & cont1).BackColor = 12713921
Me("txt" & Mes & cont1).FontSize = 8
End If
If (num = 2 And (cont1 = 11 Or cont1 = 12 Or cont1 = 13)) Or (num = 3 And cont1 = 29) _
Or (num = 5 And (cont1 = 30 Or cont1 = 31)) Or (num = 7 And cont1 = 8) _
Or (num = 11 And cont1 = 16) Or (num = 12 And (cont1 = 24 Or cont1 = 31)) Then
Me("txt" & Mes & cont1).Value = "PF"
Me("txt" & Mes & cont1).ForeColor = vbRed
End If
If (num = 5 And cont1 = 19) Or (num = 6 And cont1 = 24) Or (num = 10 And cont1 = 28) Then
Me("txt" & Mes & cont1).Value = "FM"
Me("txt" & Mes & cont1).ForeColor = vbRed
End If
If ((num = 5 And cont1 = 19) Or (num = 6 And cont1 = 24) Or (num = 10 And cont1 = 28)) And Dia = 1 Then
Me("txt" & Mes & cont1).Value = "FM/D"
Me("txt" & Mes & cont1).ForeColor = vbRed
Me("txt" & Mes & cont1).BackColor = 12713921
Me("txt" & Mes & cont1).FontSize = 8
End If
If ((num = 5 And cont1 = 19) Or (num = 6 And cont1 = 24) Or (num = 10 And cont1 = 28)) And Dia = 7 Then
Me("txt" & Mes & cont1).Value = "FM/S"
Me("txt" & Mes & cont1).ForeColor = vbRed
Me("txt" & Mes & cont1).BackColor = 12713921
Me("txt" & Mes & cont1).FontSize = 8
End If
If (num = 7 And cont1 = 9) Then
Me("txt" & Mes & cont1).Value = "FE"
Me("txt" & Mes & cont1).ForeColor = vbRed
End If
If ((num = 7 And cont1 = 9)) And Dia = 1 Then
Me("txt" & Mes & cont1).Value = "FE/D"
Me("txt" & Mes & cont1).ForeColor = vbRed
Me("txt" & Mes & cont1).FontSize = 8
End If
If ((num = 7 And cont1 = 9)) And Dia = 7 Then
Me("txt" & Mes & cont1).Value = "FE/S"
Me("txt" & Mes & cont1).ForeColor = vbRed
Me("txt" & Mes & cont1).FontSize = 8
End If
If (num = 10 And cont1 = 15) Then
Me("txt" & Mes & cont1).Value = "FES"
Me("txt" & Mes & cont1).ForeColor = vbRed
End If
If ((num = 10 And cont1 = 15)) And Dia = 1 Then
Me("txt" & Mes & cont1).Value = "D"
Me("txt" & Mes & cont1).ForeColor = 25600
Me("txt" & Mes & cont1).BackColor = 12713921
Me("txt" & Mes & cont1).FontBold = True
End If
If ((num = 10 And cont1 = 15)) And Dia = 7 Then
Me("txt" & Mes & cont1).Value = "S"
Me("txt" & Mes & cont1).ForeColor = 25600
Me("txt" & Mes & cont1).BackColor = 12713921
Me("txt" & Mes & cont1).FontBold = True
End If
If ((num = 7 And (cont1 > 9 And cont1 <= 20))) Then
Me("txt" & Mes & cont1).Value = "RE"
Me("txt" & Mes & cont1).ForeColor = 25600
Me("txt" & Mes & cont1).BackColor = 65535
Me("txt" & Mes & cont1).FontBold = True
End If
If ((num = 12 And (cont1 > 25 And cont1 <= 28))) Then
Me("txt" & Mes & cont1).Value = "RE"
Me("txt" & Mes & cont1).ForeColor = 25600
Me("txt" & Mes & cont1).BackColor = 65535
Me("txt" & Mes & cont1).FontBold = True
End If
If ((num = 7 And (cont1 > 9 And cont1 <= 20))) And Dia = 1 Then
Me("txt" & Mes & cont1).Value = "D"
Me("txt" & Mes & cont1).ForeColor = 25600
Me("txt" & Mes & cont1).BackColor = 12713921
Me("txt" & Mes & cont1).FontBold = True
End If
If ((num = 7 And (cont1 > 9 And cont1 <= 20))) And Dia = 7 Then
Me("txt" & Mes & cont1).Value = "S"
Me("txt" & Mes & cont1).ForeColor = 25600
Me("txt" & Mes & cont1).BackColor = 12713921
Me("txt" & Mes & cont1).FontBold = True
End If
‘Se há faltas, seleciona o motive e insere a sigla do mesmo no dia referido, no relatório
Else
Select Case RsFaltas("MOTIVO_FALTA")
Case "ABONADA"
Me("txt" & Mes & cont1).Value = "FA"
Me("txt" & Mes & cont1).ForeColor = 14822282
Me("txt" & Mes & cont1).FontBold = True
Case "LICENÇA MÉDICA"
Me("txt" & Mes & cont1).Value = "LM"
Case "LICENÇA GESTANTE"
Me("txt" & Mes & cont1).Value = "LG"
Case "LICENÇA GALA"
Me("txt" & Mes & cont1).Value = "LC"
Case "LICENÇA PRÉ_NATAL"
Me("txt" & Mes & cont1).Value = "LPN"
Case "LICENÇA PRÊMIO"
Me("txt" & Mes & cont1).Value = "LP"
Case "LICENÇA NOJO"
Me("txt" & Mes & cont1).Value = "LN"
‘Aqui que quero que preencha de acordo com a sequência
Case "TRE"
Me("txt" & Mes & cont1).Value = "TRE"
If IsNull(Me("txtOutros" & RsFaltas.RecordCount).Value) Then
Me("txtOutros" & RsFaltas.RecordCount).Value = "TRE - " & RsFaltas("DATA_FALTA")
Me("txtOutros" & RsFaltas.RecordCount).FontSize = 8
End If
Case "DOAÇÃO DE SANGUE"
Me("txt" & Mes & cont1).Value = "DS"
If Me("txtJust" & RsFaltas.RecordCount).Value <> "" Then
RsFaltas.MoveNext
Me("txtJust" & RsFaltas.RecordCount).Value = "Doação de Sangue - " & RsFaltas("DATA_FALTA")
Me("txtJust" & RsFaltas.RecordCount).FontSize = 8
Else
Me("txtJust" & RsFaltas.RecordCount).Value = "Doação de Sangue - " & RsFaltas("DATA_FALTA")
Me("txtJust" & RsFaltas.RecordCount).FontSize = 8
End If
Case "FALTA INJUSTIFICADA"
Me("txt" & Mes & cont1).Value = "FI"
Me("txtInjust" & RsFaltas.RecordCount).Value = RsFaltas("DATA_FALTA")
Case "FALTA JUSTIFICADA"
Me("txt" & Mes & cont1).Value = "FJ"
Me("txtJust" & RsFaltas.RecordCount).Value = RsFaltas("DATA_FALTA")
Case "ATESTADO MÉDICO"
Me("txt" & Mes & cont1).Value = "FJ"
If Me("txtJust" & RsFaltas.RecordCount).Value <> "" Then
RsFaltas.MoveNext
Me("txtJust" & RsFaltas.RecordCount).Value = "Atestado Médico - " & RsFaltas("DATA_FALTA")
Me("txtJust" & RsFaltas.RecordCount).FontSize = 8
Else
Me("txtJust" & RsFaltas.RecordCount).Value = "Atestado Médico - " & RsFaltas("DATA_FALTA")
Me("txtJust" & RsFaltas.RecordCount).FontSize = 8
End If
Case "FALTA HTP"
Me("txtHTPDataFalta" & RsFaltas.RecordCount).Value = RsFaltas("DATA_FALTA")
Me.txtHTPTotalFaltas.Value = RsFaltas.RecordCount
If rs("CARGO") = "PPI" Then
Me("txtHTPHoraFalta" & RsFaltas.RecordCount).Value = ConverteHoraTexto("1")
Else
Me("txtHTPHoraFalta" & RsFaltas.RecordCount).Value = ConverteHoraTexto("2,50")
End If
End Select
Next cont1
Next num
Abrasss!!!