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

    [Resolvido]Erro em recordeset from uma outra consulta

    avatar
    nucosta
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 25
    Registrado : 24/07/2012

    [Resolvido]Erro em recordeset from uma outra consulta Empty [Resolvido]Erro em recordeset from uma outra consulta

    Mensagem  nucosta 17/2/2016, 23:04

    Boa noite,

    Não sei se será neste tema mas como me surgiu na construção de um relatório, aqui fica.

    Tenho um erro na consulta de uma consulta, ou seja recordset = select * from consulta1.
    Não sei como proceder.

    Em anexo deixo uma amostra do que acontece.

    Formulário index com dois botões (comando0 e comando1)

    O comando 2 abre um form aaa com uma caixa de listagem da consulta2 e selecionando o campo tudo funciona.

    O comando1 faz a consulta directamente:

    Set dbs = CurrentDb
    Set rst = dbs.OpenRecordset("Consulta2")

    dá erro.

    Não queria criar forms desnecessários.

    Obrigado,
    Anexos
    [Resolvido]Erro em recordeset from uma outra consulta Attachmenterro.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (281 Kb) Baixado 2 vez(es)
    philipp.moreira
    philipp.moreira
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 257
    Registrado : 05/02/2016

    [Resolvido]Erro em recordeset from uma outra consulta Empty Re: [Resolvido]Erro em recordeset from uma outra consulta

    Mensagem  philipp.moreira 17/2/2016, 23:26

    Nucosta, boa noite!

    O Erro que esta encontrando é por que você criou a consulta [ano] passando como parâmetro diretamente o campo do formulário.
    Como sugestão:

    1 - Recrie a consulta. criando parâmetros para a consulta e não referenciando diretamente o campo do formulário no Where;
    Obs.: Abra sua consulta no modo design, na Ribbon Design, verá do seu lado superior direito a opção parâmetros. Clique e crie os parâmetros que necessita. Depois na sua consulta, basta incluir os parâmetros

    2 - Pelo VBA utilize o objeto QueryDef, recuperando a referencia da consulta e setando o valor dos parâmetros

    Dim dbs As Database
    Dim rs As DAO.Recordset
    Dim qrd As QueryDef

    Set dbs = CurrentDb
    Set qrd = dbs.QueryDefs("Ano")

    With qrd
    .Parameters("[Nome do parametro 1]") = [Valor do campo do formulário]
    .Parameters("Nome do parametro 2") = [Valor do campo do formulário]
    .Parameters("Nome do parametro 3") = [Valor do campo do formulário]
    End With

    Set rs = qrd.Execute
    avatar
    nucosta
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 25
    Registrado : 24/07/2012

    [Resolvido]Erro em recordeset from uma outra consulta Empty Re: [Resolvido]Erro em recordeset from uma outra consulta

    Mensagem  nucosta 18/2/2016, 10:04

    Olá philipp.moreira,

    Obrigado pela ajuda mas continuo com o mesmo problema.
    Segue em anexo.

    O problema é esse mesmo, tenho um parâmetro com base no formulário na consulta ano e depois a segunda consulta vai buscar a ano.

    Eu tenho a consulta assim porque ela é introduzida por vba dependendo das opções antes de criar o relatório e refere-se a resumos de movimentos que podem ser mensais anuais ou até de vários anos.

    Bem, no fundo, mesmo com a tua sugestão não consegui.

    O anexo mostra o erro com a tua sugestão, verifica se cometi algum erro porque não costumo usar parameters.

    Obrigado.
    Anexos
    [Resolvido]Erro em recordeset from uma outra consulta Attachmenterro2.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (310 Kb) Baixado 1 vez(es)
    philipp.moreira
    philipp.moreira
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 257
    Registrado : 05/02/2016

    [Resolvido]Erro em recordeset from uma outra consulta Empty Re: [Resolvido]Erro em recordeset from uma outra consulta

    Mensagem  philipp.moreira 18/2/2016, 13:13

    Nucosta, bom dia!

    Veja se este é o que precisa?
    Anexos
    [Resolvido]Erro em recordeset from uma outra consulta AttachmentNew.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (292 Kb) Baixado 2 vez(es)
    avatar
    nucosta
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 25
    Registrado : 24/07/2012

    [Resolvido]Erro em recordeset from uma outra consulta Empty Re: [Resolvido]Erro em recordeset from uma outra consulta

    Mensagem  nucosta 19/2/2016, 09:02

    Olá mais uma vez,

    Antes de mais, muito obrigado pela ajuda.

    O problema que tinha é que o filtro de datas tem de ser feito na consulta ano. É a consulta base para várias opções de várias listagens.
    No entanto resolvi de uma maneira simples do tipo:

           CurrentDb.QueryDefs("ano").SQL = "SELECT movimentos.mvcliente, Sum(movimentos.mvvalor) AS valor " _
                                           & "FROM movimentos " _
                                           & "WHERE (((Format([mvdata],'yyyy'))= " & Format(Me.Data, "yyyy") & "))" _
                                           & "AND ((Format([mvdata],'mm'))<= " & Format(Me.Data, "mm") & ")" _
                                           & "GROUP BY movimentos.mvcliente;"

    O que eu acho mais estranho é que no meu primeiro problema, se abrir a consulta no access não dá erro e por vba dá. Não percebi porquê.

    Mais uma vez obrigado pela ajuda.

      Data/hora atual: 11/4/2021, 13:46