MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]ler linha a linha de tabela

    Compartilhe

    ifahidalgo
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 317
    Registrado : 13/10/2011

    [Resolvido]ler linha a linha de tabela

    Mensagem  ifahidalgo em Ter 30 Jun 2015, 20:43

    Senhores

    Tenho uma tabela onde preciso ler registro a registro, e pegar as informações quando da seguinte forma

    CRACHA DIRECAO hora                    data2
    44184603 E      08:56:00         29/04/2013
    44184603 S            11:57:00         29/04/2013
    44184603 E      12:17:00         29/04/2013
    44184603 S      18:21:00         29/04/2013
    44184603 E      18:37:00         29/04/2013
    44184603 S      20:06:00         29/04/2013
    44184603 E      08:50:00         30/04/2013
    44184603 S      11:31:00         30/04/2013
    44184603 E      11:55:00         30/04/2013
    44184603 S      20:09:00         30/04/2013

    deverá ser pego o primeiro registro na direção "E", com a data x e o ultimo registro na direção "S", com a mesma data x.
    mudando a data para y, pego o primeiro registro na direção "E", e o ultimo registro na direção "S", e assim até o final dos registro nessa tabela.
    avatar
    =>Nois
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 675
    Registrado : 09/11/2012

    Re: [Resolvido]ler linha a linha de tabela

    Mensagem  =>Nois em Ter 30 Jun 2015, 22:34

    pelo que entendi vc precisa filtrar onde termina com estas e E e S

    utilize em uma consulta esta pra retornar a letra,

    Meio([seucampo], 14, 4) 'não contei os caracteres, vc deve fazer isso.

    faça um filtro tipo "E" or "S" no resultado

    faça o filtro no campo data. (se precisar fazer a quebra também utilize a função Meio, ou Direita([seucampo])


    .................................................................................
    [Você precisa estar registrado e conectado para ver esta imagem.] Att. Nois

    Se tudo não der certo... Descanse e tente novamente!

    ifahidalgo
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 317
    Registrado : 13/10/2011

    Re: [Resolvido]ler linha a linha de tabela

    Mensagem  ifahidalgo em Qua 01 Jul 2015, 01:36

    na verdade preciso assim

    enquanto a data for igual verificar o primeiro registro com a letra "E" e pegar a (Hora) e o ultimo registro com a letra "S" pegar (Data, Hora).

    Preciso da seguinte informação

    no dia 29/04/2013, cracha 44184603, entrou as 08:56 e saiu as 20:06
    no dia 30/04/2013, cracha 44184603, entrou as 08:50 e saiu as 20:09

    preciso disso em vba em um evento click.
    avatar
    chsestrem
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 466
    Registrado : 01/03/2010

    Re: [Resolvido]ler linha a linha de tabela

    Mensagem  chsestrem em Qui 02 Jul 2015, 12:41

    Bom dia Ivan,

    Não saberia te precisar quanto ao desempenho, mas uma alternativa é esta:

    Coloquei como nome sugestivo da tabela "tb_horario" para testar. Troque para o nome da sua tabela

    para a consulta abaixo:

    SELECT DISTINCT tb_horario.data2, tb_horario.CRACHA, DFirst("hora","tb_horario","data2 = #" & [data2] & " #") AS HRINICIO, DLast("hora","tb_horario","data2 = #" & [data2] & " #") AS HRSAIDA
    FROM tb_horario;

    Sds,


    .................................................................................
    Charles Sestrem
    [Você precisa estar registrado e conectado para ver este link.]

    ifahidalgo
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 317
    Registrado : 13/10/2011

    Re: [Resolvido]ler linha a linha de tabela

    Mensagem  ifahidalgo em Seg 06 Jul 2015, 15:27

    chsestrem

    testei o seu codigo, mas ele fica em tipo um loop infinito.

    mas no codigo como identificaria, se é entrada "E" ou saida "S"?

    ifahidalgo
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 317
    Registrado : 13/10/2011

    Re: [Resolvido]ler linha a linha de tabela

    Mensagem  ifahidalgo em Seg 06 Jul 2015, 16:28

    tenho uma tabela importada do excel com seguintes informações (nome da tabela tblimportar)

    MATRICULA DIRECAO hora data2
    44184603 E 08:56:00 29/04/2013
    44184603 S 11:57:00 29/04/2013
    44184603 E 12:17:00 29/04/2013
    44184603 S 18:21:00 29/04/2013
    44184603 E 18:37:00 29/04/2013
    44184603 S 20:06:00 29/04/2013
    44184603 E 08:50:00 30/04/2013
    44184603 S 11:31:00 30/04/2013
    44184603 E 11:55:00 30/04/2013
    44184603 S 20:09:00 30/04/2013
    44184603 E 08:54:00 02/05/2013
    44184603 S 11:56:00 02/05/2013
    44184603 E 12:20:00 02/05/2013
    44184603 S 18:35:00 02/05/2013

    preciso que ela seja tranferida para outra tabela pegando o primeiro registro e o ultimo registro referente a mesma data. por exemplo;
    MATRICULA DIRECAO hora data2
    44184603 E 08:56:00 29/04/2013
    44184603 S 20:06:00 29/04/2013
    44184603 E 08:50:00 30/04/2013
    44184603 S 20:09:00 30/04/2013
    44184603 E 08:54:00 02/05/2013
    44184603 S 18:35:00 02/05/2013
    avatar
    chsestrem
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 466
    Registrado : 01/03/2010

    Re: [Resolvido]ler linha a linha de tabela

    Mensagem  chsestrem em Seg 06 Jul 2015, 17:40

    Olá Ivan,

    A melhor forma de conseguir o resultado é com consultas auxiliares.


    Segue anexo exemplo com 2 resultados.


    Sds,
    Anexos
    teste_forum.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (15 Kb) Baixado 10 vez(es)


    .................................................................................
    Charles Sestrem
    [Você precisa estar registrado e conectado para ver este link.]

    ifahidalgo
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 317
    Registrado : 13/10/2011

    Re: [Resolvido]ler linha a linha de tabela

    Mensagem  ifahidalgo em Ter 07 Jul 2015, 15:28

    segue o meu bd. que na minha necessidade seria;

    1º - já tenho as informações importadas na tabela "tblimportar";
    2º - tenho uma consulta "qry_teste", que digito a data inicio e data termino;
    3º - com essas informações da consulta, preciso alimentar a tabela "tblresultado", o primeiro e o ultimo registro de cada data.
    Anexos
    SysFunc - Cópia.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (436 Kb) Baixado 8 vez(es)

    ifahidalgo
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 317
    Registrado : 13/10/2011

    Re: [Resolvido]ler linha a linha de tabela

    Mensagem  ifahidalgo em Qua 08 Jul 2015, 14:42

    chsestrem

    muito obrigado, funcionou perfeito, depois de muito pesquisar e analisar. cheguei a esse codigo rm vba

    Option Compare Database
    Dim rstArq As DAO.Recordset, rstTemp As DAO.Recordset
    Dim strSQL As String

    Private Sub Comando0_Click()
    Dim rstArq As DAO.Recordset, rstTemp As DAO.Recordset
    Dim strSQL As String

    Datainicio = InputBox("Informe a Data Inicial")
    DataFim = InputBox("Informe a Data Final")

    strSQL = "Select tblresultado.* From tblresultado"
    Set rstArq = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)


    strSQL = "Select tblimportar.* From tblimportar WHERE tblimportar.data2 Between cdate('" & Datainicio & "') And cdate('" & DataFim & "')" & _
    " ORDER BY MATRICULA, tblimportar.data2, tblimportar.hora"
    Set rstTemp = CurrentDb.OpenRecordset(strSQL, dbOpenSnapshot)

    If rstTemp.EOF Then
    MsgBox "Registros não encontrados neste periodo"
    Exit Sub
    End If

    rstTemp.MoveFirst

    While Not rstTemp.EOF
    rstArq.AddNew
    rstArq("matricula") = rstTemp("matricula")
    rstArq("nome") = rstTemp("nome")
    rstArq("dataent") = rstTemp("data2")
    rstArq("horaent") = rstTemp("hora")
    Xmat = rstTemp("matricula")
    Xdat = rstTemp("data2")

    Do While Xmat = rstTemp("matricula") And Xdat = rstTemp("data2")
    If rstTemp("direcao") = "S" Then
    rstArq("datasai") = rstTemp("data2")
    rstArq("horasai") = rstTemp("hora")
    End If

    rstTemp.MoveNext

    If rstTemp.EOF Then
    Exit Do
    End If
    Loop

    rstArq.Update
    Wend

    rstArq.Close
    rstTemp.Close
    MsgBox "Tabela Gerada com Sucesso!"

    End Sub

    ifahidalgo
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 317
    Registrado : 13/10/2011

    Re: [Resolvido]ler linha a linha de tabela

    Mensagem  ifahidalgo em Qua 08 Jul 2015, 14:43

    esqueco de colocar resolvido

    ifahidalgo
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 317
    Registrado : 13/10/2011

    Re: [Resolvido]ler linha a linha de tabela

    Mensagem  ifahidalgo em Qua 08 Jul 2015, 16:02

    chsestrem

    depois que for tratado, a tabela, tem como colocar, incluir nessa tabela as datas faltantes?

    exemplo, nesse que você me passou, notou que somente 2 dias foram preenchidos, o que preciso é que os outros dias completando o mês, fossem preenchidos com a informação faltou no campo status.

      Data/hora atual: Qua 13 Dez 2017, 18:37