MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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

3 participantes

    Recordset não retorna a quantidade de registro da tabela

    wellingtoneo
    wellingtoneo
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 294
    Registrado : 30/07/2012

    Recordset não retorna a quantidade de registro da tabela Empty Recordset não retorna a quantidade de registro da tabela

    Mensagem  wellingtoneo 24/7/2013, 11:29

    Pessoal, bom dia!

    Bom, eu estou com um probleminha com meu recordset que o seguinte:

    Dim rsPai As DAO.Recordset
    Dim fdPai As DAO.Field
    Dim strfiltro As String
    Dim num As Integer
    srtfonte = "SELECT IdSolicitacao, Usuario, UTE, Linha, Turno, Reserva, Material, QuatidadeSolicitado, QuantidadeEntregue, DataPedido,"
    srtfonte = srtfonte & " HoraPedido, DataEntrega, HoraEntrega FROM tblPrincipal WHERE Reserva=" & Me.txReserva

    Set rsPai = CurrentDb.OpenRecordset(srtfonte)
    If rsPai.RecordCount = 0 Then
    MsgBox (" Não há registro para serem apresentados"), vbInformation, "Sem Pedidos"
    Exit Sub
    End If
    .... continuação do codigo....

    No meu rsPai.RecordCount, me retorna 1 registro, mas na tabela e com os mesmo criterios, existem 3. Alguém sabe me dizer o que
    tem de errado? Há e aproveitando tem como usar esse recordset como base para outro filtro? vejam:

    strfiltro = """principal.ute=" & """ & " & " rs!UTE And " & """principal.linha=" & """ & " & " rs!Linha And " & """principal.Turno=" & """ & " & " rs!Turno"
    num = Dcount("linha", "principal", strfiltro) Isso é possível? Obrigado a todos!!!
    Cláudio Más
    Cláudio Más
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1310
    Registrado : 21/01/2012

    Recordset não retorna a quantidade de registro da tabela Empty Re: Recordset não retorna a quantidade de registro da tabela

    Mensagem  Cláudio Más 24/7/2013, 12:53

    Bom dia,

    Antes de usar o RecordCount, deve fazer:

    Código:
    rsPai.MoveLast
    rsPai.MoveFirst
    E se o conteúdo da variável strfiltro estiver ok, pode usar sim como filtro no DCount.
    wellingtoneo
    wellingtoneo
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 294
    Registrado : 30/07/2012

    Recordset não retorna a quantidade de registro da tabela Empty Re: Recordset não retorna a quantidade de registro da tabela

    Mensagem  wellingtoneo 24/7/2013, 14:18

    O problema ainda continua...
    Cláudio Más
    Cláudio Más
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1310
    Registrado : 21/01/2012

    Recordset não retorna a quantidade de registro da tabela Empty Re: Recordset não retorna a quantidade de registro da tabela

    Mensagem  Cláudio Más 24/7/2013, 14:45

    Como ficou o código?
    wellingtoneo
    wellingtoneo
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 294
    Registrado : 30/07/2012

    Recordset não retorna a quantidade de registro da tabela Empty Re: Recordset não retorna a quantidade de registro da tabela

    Mensagem  wellingtoneo 24/7/2013, 14:55

    Dim rsPai As DAO.Recordset
    Dim fdPai As DAO.Field

    Me.txtQuantidadeEntregue.enabled = True
    Me.btConfirmar.visible = True

    k = 1
    l = 0

    srtfonte = "SELECT IdSolicitacao, Usuario, UTE, Linha, Turno, Reserva, Material, QuatidadeSolicitado, QuantidadeEntregue, DataPedido,"
    srtfonte = srtfonte & " HoraPedido, DataEntrega, HoraEntrega FROM tblPrincipal WHERE Reserva= " & Me.txReserva

    Set rsPai = CurrentDb.OpenRecordset(srtfonte)
    rsPai.MoveFirst 'tentei com os dois (MoveLast), mas ambos retornaram 1 registro.

    If rsPai.RecordCount = 0 Then
    MsgBox (" Não há registro para serem apresentados"), vbInformation, "Sem Pedidos"
    Exit Sub
    End If
    ...
    Cláudio Más
    Cláudio Más
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1310
    Registrado : 21/01/2012

    Recordset não retorna a quantidade de registro da tabela Empty Re: Recordset não retorna a quantidade de registro da tabela

    Mensagem  Cláudio Más 24/7/2013, 15:02

    Somente MoveFirst não resolve, tem que incluir MoveLast.

    Se com MoveLast retorna 1 registro, é porque só tem 1 registro mesmo.

    Reserva é do tipo número ou texto?
    wellingtoneo
    wellingtoneo
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 294
    Registrado : 30/07/2012

    Recordset não retorna a quantidade de registro da tabela Empty Re: Recordset não retorna a quantidade de registro da tabela

    Mensagem  wellingtoneo 24/7/2013, 15:22

    Tipo Número.
    Cláudio Más
    Cláudio Más
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1310
    Registrado : 21/01/2012

    Recordset não retorna a quantidade de registro da tabela Empty Re: Recordset não retorna a quantidade de registro da tabela

    Mensagem  Cláudio Más 24/7/2013, 15:27

    Então só tem 1 registro mesmo.
    Se quiser enviar uma cópia do banco de dados, posso confirmar.
    wellingtoneo
    wellingtoneo
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 294
    Registrado : 30/07/2012

    Recordset não retorna a quantidade de registro da tabela Empty Re: Recordset não retorna a quantidade de registro da tabela

    Mensagem  wellingtoneo 24/7/2013, 15:59

    Bom, eu uso o codigo abaixo no modo SQL da consulta e me retorna 3 registros.

    SELECT IdSolicitacao, Usuario, UTE, Linha, Turno, Reserva, Material, QuatidadeSolicitado, QuantidadeEntregue, DataPedido, HoraPedido, DataEntrega, HoraEntrega
    FROM tblPrincipal
    WHERE Reserva= 12518;

    e me retornou os 3 registros. Coloquei o mesmo codigo no rsPai = CurrentDB.OpenRecordset(), e foi me retornado 1 registro...

    Por que? era para me retornar os 3 registro!
    Cláudio Más
    Cláudio Más
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1310
    Registrado : 21/01/2012

    Recordset não retorna a quantidade de registro da tabela Empty Re: Recordset não retorna a quantidade de registro da tabela

    Mensagem  Cláudio Más 24/7/2013, 16:24

    É porque não está usando rsPai.MoveLast
    wellingtoneo
    wellingtoneo
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 294
    Registrado : 30/07/2012

    Recordset não retorna a quantidade de registro da tabela Empty Re: Recordset não retorna a quantidade de registro da tabela

    Mensagem  wellingtoneo 24/7/2013, 16:30

    Poder ser isso. Agora eu gostaria de saber se não seria por causa das "" que acredito não ser passadas pela variavel. A essa possibilidade??

    eu digitei todo o select para poder resolver o problema... veja:
    Set rsPai = CurrentDb.OpenRecordset("SELECT IdSolicitacao, Usuario, UTE, Linha, Turno, Reserva, Material, QuatidadeSolicitado, QuantidadeEntregue, DataPedido,HoraPedido, DataEntrega, HoraEntrega FROM tblPrincipal WHERE Reserva=" & Me.txReserva)

    Ai, já começo a puxar os 3 registros...
    Cláudio Más
    Cláudio Más
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1310
    Registrado : 21/01/2012

    Recordset não retorna a quantidade de registro da tabela Empty Re: Recordset não retorna a quantidade de registro da tabela

    Mensagem  Cláudio Más 24/7/2013, 16:57

    Aparentemente o recordset estava ok.

    Mesmo com a alteração, se não usar MoveLast não vai funcionar, o problema é que o RecordCount só conta os registros depois de executar um MoveLast.
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    Recordset não retorna a quantidade de registro da tabela Empty Re: Recordset não retorna a quantidade de registro da tabela

    Mensagem  Dilson 24/7/2013, 17:34

    Considerando todas as dicas do Cláudio.

    Tente usar o valor do recordcount numa variável e com ela realize os testes no if
    ex.

    dim quant as long

    quant = rsPai.RecordCount

    wellingtoneo
    wellingtoneo
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 294
    Registrado : 30/07/2012

    Recordset não retorna a quantidade de registro da tabela Empty Re: Recordset não retorna a quantidade de registro da tabela

    Mensagem  wellingtoneo 24/7/2013, 17:43

    Pensei nisto também, mas quando realizei o teste percebir que o resultado é mesmo já que o recordcount estava passando 1 único registro...
    Irei realizar um teste passa para a variavel as "" no inicio e no final da string... acredito que essa possa ser a causa do problema... Logo posto um retorno do teste.
    Obrigado a todos pelas dicas!!!
    Cláudio Más
    Cláudio Más
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1310
    Registrado : 21/01/2012

    Recordset não retorna a quantidade de registro da tabela Empty Re: Recordset não retorna a quantidade de registro da tabela

    Mensagem  Cláudio Más 24/7/2013, 17:53

    Desisto...
    Shocked
    wellingtoneo
    wellingtoneo
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 294
    Registrado : 30/07/2012

    Recordset não retorna a quantidade de registro da tabela Empty Re: Recordset não retorna a quantidade de registro da tabela

    Mensagem  wellingtoneo 24/7/2013, 18:26

    Calma Cláudio, nunca desista! Somo todos vitoriosos nesta vida e jámais desistimos de algo... Bom, eu considero todas as suas dicas que me enriqueceram muito!!! cheers  O que estou tentando é só verificar se é por causa destas duas aspas("select ..... ") que o código não está rodando.
    Bem, quando testei no verificador imediato ele me mostrou o seguinte:
    Obs. Alterei um pouco o exemplo para facilitar o entendimento.

    Janela verificação imediata
    ?srtfonte
    Select * From  tblPrincipal Where Reserva= Me.txReserva

    Bom, se eu tivesse que digitar o select ficaria assim:

    Set rsPai = CurrentDB.OpenRecorset("Select * From  tblPrincipal Where Reserva=" & Me.txReserva

    Observem que as aspas não estão sendo passada na janela de verificação imediata... Ai que pensei que poderia ser esse o problema.
    Alguém sabe me dizer se é isto? Obrigado!

      Data/hora atual: 27/1/2023, 04:19