MaximoAccess

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

Obrigado

Administração do MaximoAccess

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]Consulta a campo de outra tabela cujo ID está na tabela da consulta

    HARYSOHN
    HARYSOHN
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12227
    Registrado : 01/03/2011

    [Resolvido]Consulta a campo de outra tabela cujo ID está na tabela da consulta Empty [Resolvido]Consulta a campo de outra tabela cujo ID está na tabela da consulta

    Mensagem  HARYSOHN em 4/12/2017, 18:52

    Amigos tenho a seguinte consulta que funciona perfeitamente:

    StrSql = "Select idMovimento as Num,IdCaixa as Documento, space(3) & dataMovimento As Movimento, Historico AS Histórico, iif(valorCredito=0,'',format(valorcredito,'standard')) As Crédito, " _
    & "iif(valordebito=0,'',format(valorDebito,'standard')) AS Débito, format(SaldoLinha,'standard') as Saldo, CpDescId, cpTipoId, CpContaId" _
    & " FROM " & tblTemp & " WHERE " & filtro & " ORDER BY dataMovimento;"

    Esta consulta é baseada na tabela constante na string tblTemp
    Nesta tabela tenho o campo cpTipoID (Em negrito acima)
    Este campo refere-se a uma identificação na tabela ContaDetalhes

    Pretendo através do Dlookup exibir na consulta o campo referente
    Tentei assim a a consulta retorna vazia:

    StrSql = "Select idMovimento as Num,IdCaixa as Documento, space(3) & dataMovimento As Movimento, Historico AS Histórico, iif(valorCredito=0,'',format(valorcredito,'standard')) As Crédito, iif(valordebito=0,'',format(valorDebito,'standard')) AS Débito, format(SaldoLinha,'standard') as Saldo, CpDescId, cpTipoId, CpContaId" _
    & "DLookup(TipoConta, ContaDetalhes, Id_Detalhes = CpTipoID)" _
    & " FROM " & tblTemp & " WHERE " & filtro & " ORDER BY dataMovimento;"

    Alguma sugestao?

    Saudações
    Harysohn
    HARYSOHN
    HARYSOHN
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12227
    Registrado : 01/03/2011

    [Resolvido]Consulta a campo de outra tabela cujo ID está na tabela da consulta Empty Re: [Resolvido]Consulta a campo de outra tabela cujo ID está na tabela da consulta

    Mensagem  HARYSOHN em 4/12/2017, 19:16

    Amigos.. Em uma MSG funciona com aspas duplas:

                MsgBox DLookup("[TipoConta]", "ContaDetalhes", "[Id_Detalhes] = 53")

    Na consulta SQL/VBA com aspas Simples:
    DLookup('TipoConta', 'ContaDetalhes', 'Id_Detalhes = 53')

    44400 StrSql = "Select idMovimento as Num,IdCaixa as Documento, space(3) & dataMovimento As Movimento, Historico AS Histórico, iif(valorCredito=0,'',format(valorcredito,'standard')) As Crédito, " _
                 & "iif(valordebito=0,'',format(valorDebito,'standard')) AS Débito, format(SaldoLinha,'standard') as Saldo, CpDescId, cpTipoId, CpContaId," _
                 & " DLookup('TipoConta', 'ContaDetalhes', 'Id_Detalhes = 53')" _
                 & " FROM " & tblTemp & " WHERE " & filtro & "  ORDER BY dataMovimento;"

    Obrigado
    HARYSOHN
    HARYSOHN
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12227
    Registrado : 01/03/2011

    [Resolvido]Consulta a campo de outra tabela cujo ID está na tabela da consulta Empty Re: [Resolvido]Consulta a campo de outra tabela cujo ID está na tabela da consulta

    Mensagem  HARYSOHN em 4/12/2017, 19:23

    Agora funciona colocando o numero da id

    DLookup('TipoConta', 'ContaDetalhes', 'Id_Detalhes = 53')

    Como ao inves de 53 colocar o campo referante na tabela de origem?

    Que é o cpTipoID

    Cumprimentos
    HARYSOHN
    HARYSOHN
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12227
    Registrado : 01/03/2011

    [Resolvido]Consulta a campo de outra tabela cujo ID está na tabela da consulta Empty Re: [Resolvido]Consulta a campo de outra tabela cujo ID está na tabela da consulta

    Mensagem  HARYSOHN em 4/12/2017, 19:47

    A solução:

    StrSql = "Select idMovimento as Num,IdCaixa as Documento, space(3) & dataMovimento As Movimento, Historico AS Histórico, iif(valorCredito=0,'',format(valorcredito,'standard')) As Crédito, " _
    & "iif(valordebito=0,'',format(valorDebito,'standard')) AS Débito, format(SaldoLinha,'standard') as Saldo, CpDescId, cpTipoId, CpContaId," _
    & " DLookup('TipoConta', 'ContaDetalhes', 'Id_Detalhes = ' & CpTipoID)" _
    & " FROM " & tblTemp & " WHERE " & filtro & " ORDER BY dataMovimento;"

    Dlookup em uma consulta SQL/VBA fazendo referência a um campo da tabela de origem

    DLookup('TipoConta', 'ContaDetalhes', 'Id_Detalhes = ' & CpTipoID)


    Cumprimentos
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    [Resolvido]Consulta a campo de outra tabela cujo ID está na tabela da consulta Empty Re: [Resolvido]Consulta a campo de outra tabela cujo ID está na tabela da consulta

    Mensagem  Alexandre Neves em 4/12/2017, 19:52

    Boa noite, amigo Hary
    Porque não incluir na instrução o relacionamento da tabela?
    StrSql = "Select idMovimento as Num,IdCaixa as Documento, space(3) & dataMovimento As Movimento, Historico AS Histórico, iif(valorCredito=0,'',format(valorcredito,'standard')) As Crédito, iif(valordebito=0,'',format(valorDebito,'standard')) AS Débito, format(SaldoLinha,'standard') as Saldo, CpDescId, cpTipoId, CpContaId", _
    & "(SELECT TipoConta FROM ContaDetalhes WHERE Id_Detalhes=CpTipoID) AS TipoConta" _
    & " FROM " & tblTemp & " WHERE " & filtro & " ORDER BY dataMovimento;"
    Abraço,

    Será mais rápido que DLookup


    .................................................................................
    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
    HARYSOHN
    HARYSOHN
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12227
    Registrado : 01/03/2011

    [Resolvido]Consulta a campo de outra tabela cujo ID está na tabela da consulta Empty Re: [Resolvido]Consulta a campo de outra tabela cujo ID está na tabela da consulta

    Mensagem  HARYSOHN em 4/12/2017, 20:18

    Boas Alexandre... Tudo na Paz?

    Então... o que ocorre é que este formulário é baseado em uma tabela temporária...
    ou seja, quando o formulário abre extrai as informações da tabela base segundo critérios de filtros de dias... justamente devido a limitação de registro na lstBox... Ao abrir o formulário é criada uma tabela temporária que recebe os registros filtrados da tabela original... essa tabela é excluida recriada a cada operação...Eu ate fiz o relacionamento... o que funcionou para uma consulta... so que o relacionamento impede a exclusao e criação de nova tabela... Então dá erro "A tabela Tmp já existe" Por isso optei pelo Dlookup


    Abraços
    avatar
    gutobrotas
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 71
    Registrado : 16/02/2013

    [Resolvido]Consulta a campo de outra tabela cujo ID está na tabela da consulta Empty Re: [Resolvido]Consulta a campo de outra tabela cujo ID está na tabela da consulta

    Mensagem  gutobrotas em 6/12/2017, 16:13

    caramba... vcs manjam demais!!!
    vou tentar adaptar aqui
    obrigado

      Data/hora atual: 20/10/2020, 21:30