Pessoal bom dia, possuo um formulário para importação de txt que esta funcionando normalmente, com o seguinte código que segue, que infelizmente não me lembro que ha muito tempo me ajudou. Perdão,
As linha do arquivo texto do relógio de ponto estão da seguinte forma:
O campo 02813 é a matricula,
O campo 121020 é a data do relógio de ponto
O (08,00) é o hora da batida do ponto
0,027813,121020,08,00,01,0,
0,027813,121020,12,00,01,0,
0,027813,121020,14,00,01,0,
0,027813,121020,18,00,01,0,
0,027813,121021,08,01,01,0,
0,027813,121021,12,01,01,0,
0,027813,121021,14,01,01,0,
0,027813,121021,18,01,01,0,
O que perciso é que no momento da importação seja colocado os dados da seguinte forma já tentei algumas coisas por aqui, mas não to sabendo como tratara a mesma data, matricula e diversos horário e colocar na mesma linha da tabela para que ficasse da seguine forma:
Data, matricla hora_inicial_manha, hora_final_manha, hora_inicial_tarde, hora_final_tarde
20/10/12 – 27813, 08:00, 12:00, 14:00, 18:00
21/10/12 - 27813, 08:01, 12:01, 14:01, 18:01
Esis o codigo que utilizo atualmente:
Private Sub Comando68_Click()
On Error GoTo TrataErro
Dim db As DAO.Database
Dim RS As DAO.Recordset
Dim Linha As String
If Len(Me.txtNomeArq & vbNullString) = 0 Then ' Testa se txtNomeArq contém alguma coisa
MsgBox "Informe o nome do arquivo a ser importado", vbExclamation + vbOKOnly, "Vazio"
Me.txtNomeArq.SetFocus
Exit Sub
End If
If Len(Dir(Me.txtNomeArq)) = 0 Then ' Testa a existência do arquivo
MsgBox "O arquivo não existe!!!", vbCritical + vbOKOnly, "Erro"
Me.txtNomeArq.SetFocus
Exit Sub
End If
Open Me.txtNomeArq For Input As #1 ' Abre o arquivo a ser importado
Set db = CurrentDb
Set RS = db.OpenRecordset("PONTO")
While Not EOF(1)
Line Input #1, Linha ' Lê uma linha do arquivo texto
If Left$(Linha, 1) = "0" Then
With RS
.AddNew
!MATRÍCULA = Mid$(Linha, 4, 6)
!DATA = CVDate(Mid$(Linha, 14, 2) & "/" & _
Mid$(Linha, 12, 2) & "/" & _
Mid$(Linha, 10, 2))
!Hora = CVDate(Mid$(Linha, 17, 2) & ":" & _
Mid$(Linha, 20, 2))
.Update
End With
Else
End If
Wend
MsgBox "ARQUIVO DE PONTO IMPORTADO COM SUCESSO !!! "
SAIDA:
Close
Set RS = Nothing
Set db = Nothing
Exit Sub
TrataErro:
MsgBox Err.Description, vbExclamation + vbOKOnly, "Erro: " & CStr(Err.Number)
#If DESENV Then ' Compilação condicional - Em desenvolvimento
Stop
Resume
#End If
Resume SAIDA
End Sub
Desculpas se não soube me explicar
Grato a quem puder me dar uma luz
As linha do arquivo texto do relógio de ponto estão da seguinte forma:
O campo 02813 é a matricula,
O campo 121020 é a data do relógio de ponto
O (08,00) é o hora da batida do ponto
0,027813,121020,08,00,01,0,
0,027813,121020,12,00,01,0,
0,027813,121020,14,00,01,0,
0,027813,121020,18,00,01,0,
0,027813,121021,08,01,01,0,
0,027813,121021,12,01,01,0,
0,027813,121021,14,01,01,0,
0,027813,121021,18,01,01,0,
O que perciso é que no momento da importação seja colocado os dados da seguinte forma já tentei algumas coisas por aqui, mas não to sabendo como tratara a mesma data, matricula e diversos horário e colocar na mesma linha da tabela para que ficasse da seguine forma:
Data, matricla hora_inicial_manha, hora_final_manha, hora_inicial_tarde, hora_final_tarde
20/10/12 – 27813, 08:00, 12:00, 14:00, 18:00
21/10/12 - 27813, 08:01, 12:01, 14:01, 18:01
Esis o codigo que utilizo atualmente:
Private Sub Comando68_Click()
On Error GoTo TrataErro
Dim db As DAO.Database
Dim RS As DAO.Recordset
Dim Linha As String
If Len(Me.txtNomeArq & vbNullString) = 0 Then ' Testa se txtNomeArq contém alguma coisa
MsgBox "Informe o nome do arquivo a ser importado", vbExclamation + vbOKOnly, "Vazio"
Me.txtNomeArq.SetFocus
Exit Sub
End If
If Len(Dir(Me.txtNomeArq)) = 0 Then ' Testa a existência do arquivo
MsgBox "O arquivo não existe!!!", vbCritical + vbOKOnly, "Erro"
Me.txtNomeArq.SetFocus
Exit Sub
End If
Open Me.txtNomeArq For Input As #1 ' Abre o arquivo a ser importado
Set db = CurrentDb
Set RS = db.OpenRecordset("PONTO")
While Not EOF(1)
Line Input #1, Linha ' Lê uma linha do arquivo texto
If Left$(Linha, 1) = "0" Then
With RS
.AddNew
!MATRÍCULA = Mid$(Linha, 4, 6)
!DATA = CVDate(Mid$(Linha, 14, 2) & "/" & _
Mid$(Linha, 12, 2) & "/" & _
Mid$(Linha, 10, 2))
!Hora = CVDate(Mid$(Linha, 17, 2) & ":" & _
Mid$(Linha, 20, 2))
.Update
End With
Else
End If
Wend
MsgBox "ARQUIVO DE PONTO IMPORTADO COM SUCESSO !!! "
SAIDA:
Close
Set RS = Nothing
Set db = Nothing
Exit Sub
TrataErro:
MsgBox Err.Description, vbExclamation + vbOKOnly, "Erro: " & CStr(Err.Number)
#If DESENV Then ' Compilação condicional - Em desenvolvimento
Stop
Resume
#End If
Resume SAIDA
End Sub
Desculpas se não soube me explicar
Grato a quem puder me dar uma luz