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


2 participantes

    [Resolvido]OpenRecordset Utilizando uma Consulta

    pengo
    pengo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 85
    Registrado : 10/12/2013

    [Resolvido]OpenRecordset Utilizando uma Consulta Empty [Resolvido]OpenRecordset Utilizando uma Consulta

    Mensagem  pengo 3/10/2014, 18:18

    Boa Tarde Pessoal,

    A algum tempo o colega Dilson, me ajudou com o código abaixo (http://maximoaccess.forumeiros.com/t18664-resolvidoloop-somar-datas-e-preencher-registros-usando)

    Porém, hoje depois de já ter vários registros em meu banco de dados, o formulário que utiliza esse código tem ficado lento, pois o código percorre todos os registros da minha tabela.

    Eu encontrei uma solução mas não estou conseguindo implementar.

    Minha ideia é colocar uma consulta no OpenRecordset, assim, o código iria percorrer somente alguns registros e tornaria o formulário bem mais rápido.

    Bom, em substituição a linha vermelha eu tentei o código abaixo.

    strsql = "SELECT * "
    strsql = strsql & "FROM Cad_Tratamentos "
    strsql = strsql & "WHERE (((Protocolo) = " & Me.Protocolo.Value & "));"
    Set rst = CurrentDb.OpenRecordset(strsql)

    Porém ele me da o erro, 3061 - Parâmetros insuficientes. Eram esperados 1.

    Depois tentei outro código que se não me engano é do amigo JPaulo.

    Set rst = db.OpenRecordset("SELECT * FROM Cad_Tratamentos WHERE Protocolo = '" & Protocolo.Value & "'", dbOpenDynaset, dbSeeChanges)

    Porém esse da o erro 424 - O objeto é obrigatório.

    E eu não estou conseguindo resolver o problema, já tentei varias coisas, mas não está dando certo.

    Alguém poderia me ajudar?




    On Error GoTo TratareiErro
    Me.Recalc
    Dim rSt As DAO.Recordset
    Dim CodRef As Long
    Dim rData As Date
    Dim rDias As Integer
    Set rSt = CurrentDb.OpenRecordset("Cadastro")
    rSt.MoveLast
    rSt.MoveFirst
      Do While Not rSt.EOF
            rDias = Nz(rSt("DIAS"))
            CodRef = Nz(rSt("CodigoRef"))
            rData = Nz(DLookup("DATA_PREVISTA", "tblTemp", _
                                                       "Registro =" & CodRef))
            rSt.Edit
            If CodRef > 0 And rData <> "00:00:00" Then
                rSt("DATA_PREVISTA") = rData + rDias
            End If
            rSt.Update
            rSt.MoveNext
      Loop
    rSt.Close
    Me.Requery
    Exit_TratareiErro:
    Exit Sub
    TratareiErro:
    MsgBox "Aconteceu falha neste processamento." _
         & vbCrLf & "Trata-se do erro n°: " & Err.Number _
         & vbCrLf & "Descrição: " _
         & Err.Description, vbInformation, "Erro inesperado"
    Exit Sub
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8443
    Registrado : 05/11/2009

    [Resolvido]OpenRecordset Utilizando uma Consulta Empty Re: [Resolvido]OpenRecordset Utilizando uma Consulta

    Mensagem  Alexandre Neves 3/10/2014, 21:20

    Boa noite,
    Veja qual o valor do Me.Protocolo.Value aquando da chamada


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    pengo
    pengo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 85
    Registrado : 10/12/2013

    [Resolvido]OpenRecordset Utilizando uma Consulta Empty Re: [Resolvido]OpenRecordset Utilizando uma Consulta

    Mensagem  pengo 3/10/2014, 21:23

    Boa Tarde Alexandre,

    Por exemplo, o valor está "P", então, eu acredito que ele deveria analisar todos os registros que contenham o valor "P" no campo especificado.

    Obrigado.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8443
    Registrado : 05/11/2009

    [Resolvido]OpenRecordset Utilizando uma Consulta Empty Re: [Resolvido]OpenRecordset Utilizando uma Consulta

    Mensagem  Alexandre Neves 3/10/2014, 21:25

    Então, falta as pelicas a envolver a expressão
    Set rst = CurrentDb.OpenRecordset("SELECT * FROM Cad_Tratamentos WHERE Protocolo='" & Me.Protocolo.Value & "';")


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    luciagomide gosta desta mensagem

    pengo
    pengo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 85
    Registrado : 10/12/2013

    [Resolvido]OpenRecordset Utilizando uma Consulta Empty Re: [Resolvido]OpenRecordset Utilizando uma Consulta

    Mensagem  pengo 3/10/2014, 21:33

    Amigo Alexandre,

    Era exatamente isso que estava faltando, como pode uma coisa tão pequena passar despercebida.

    Bom, meu formulário ainda continuou lendo, acho que terei que colocar alguma barra de progresso para o usuário não pensar que o aplicativo travou, mas isso é assunto para outro tópico.

    Por enquanto muito obrigado pela sua imensa ajuda.

    Abraços

    Conteúdo patrocinado


    [Resolvido]OpenRecordset Utilizando uma Consulta Empty Re: [Resolvido]OpenRecordset Utilizando uma Consulta

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/3/2024, 23:31