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]Inserir IIf em string para caixa de combinação

    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Inserir IIf em string para caixa de combinação Empty Inserir IIf em string para caixa de combinação

    Mensagem  Leandro 12/7/2013, 19:31

    Boa tarde,

    Preciso inserir essa string em uma caixa de combinação via vba, mas emperrei na inserção do IIf (Seimed).

    SELECT CodMaterialMovimento, DescMaterial, EquipeMovimentacao, CMMovimentacao, Sum(IIf([TipoMovimentacao]='Retirada Equipes',[QtdeMaterialMovimento],[QtdeMaterialMovimento]*-1)) AS Qtde
    FROM TabMateriais INNER JOIN TabMovimentacoes ON TabMateriais.CodMaterial = TabMovimentacoes.CodMaterialMovimento
    GROUP BY CodMaterialMovimento, DescMaterial, EquipeMovimentacao, CMMovimentacao
    WHERE TipoMovimentacao In ('" & 'Baixa Equipes','Devolucao Equipe','Retirada Equipes' & "') AND ChecHD=" & Me!CheckHD
    HAVING (((EquipeMovimentacao)= Forms!FormMaterialBaixado!EquipeBaixa) AND ((CMMovimentacao)=" & Me!CMBaixa) AND ((Sum(IIf([TipoMovimentacao]='Retirada Equipes',[QtdeMaterialMovimento],[QtdeMaterialMovimento]*-1)))>0))
    ORDER BY TabMovimentacoes.CodMaterialMovimento;

    Como é o certo?

    Me retorna uma mensagem de erro: "A instrução SELECT inclui uma palavra reservada ou um nome de argumento que está incorreto ou faltando, ou a pontuação está incorreta"

    Agradeço a atenção.

    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Inserir IIf em string para caixa de combinação Empty Re: [Resolvido]Inserir IIf em string para caixa de combinação

    Mensagem  Alexandre Neves 12/7/2013, 20:49

    Boa tarde, Leandro
    Tem destacada a expressão
    IIf([TipoMovimentacao]='Retirada Equipes',[QtdeMaterialMovimento],[QtdeMaterialMovimento]*-1)
    Porquê o asterisco?
    Não será
    IIf([TipoMovimentacao]='Retirada Equipes',[QtdeMaterialMovimento],[QtdeMaterialMovimento]-1)
    Abraço,
    Alexandre


    .................................................................................
    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
    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Inserir IIf em string para caixa de combinação Empty Re: [Resolvido]Inserir IIf em string para caixa de combinação

    Mensagem  Leandro 12/7/2013, 21:08

    Obrigado pelo interesse Alexandre, boa tarde.

    Esse asterisco está multiplicando por "menos um", tornando o número negativo.

    Funciona numa combo, com linguagem nativa SQL, agora preciso restringir os códigos para evitar repetições por isso comecei a tentar inserir com vba na linha combo.

    No meio tempo em que postei, resolvi mudar o IIf para SeIMed e coloquei espaços onde não haviam, com isso o erro de palavra reservada cessou, o código agora está assim:

    Porém o erro agora é na parte em vermelho.

    strCbo = "SELECT CodMaterialMovimento, DescMaterial, EquipeMovimentacao, CMMovimentacao, Sum(SeImed([TipoMovimentacao]='Retirada Equipes',[QtdeMaterialMovimento],[QtdeMaterialMovimento]*-1)) AS Qtde"
    strCbo = strCbo & " FROM TabMateriais INNER JOIN TabMovimentacoes ON TabMateriais.CodMaterial = TabMovimentacoes.CodMaterialMovimento"
    strCbo = strCbo & " GROUP BY CodMaterialMovimento, DescMaterial, EquipeMovimentacao, CMMovimentacao"
    strCbo = strCbo & " WHERE TipoMovimentacao='" & "Baixa Equipes" & "'"
    strCbo = strCbo & " Or TipoMovimentacao='" & "Devolucao Equipe" & "'"
    strCbo = strCbo & " Or TipoMovimentacao='" & "Retirada Equipes" & "'"
    strCbo = strCbo & " And ChecHD='" & Me!CheckHD & "'"

    strCbo = strCbo & " HAVING EquipeMovimentacao=" & Forms!FormMaterialBaixado!EquipeBaixa & "AND CMMovimentacao=" & Me!CMBaixa & "AND Sum(SeImed([TipoMovimentacao]='Retirada Equipes',[QtdeMaterialMovimento],[QtdeMaterialMovimento]*-1))>0"
    strCbo = strCbo & " ORDER BY TabMovimentacoes.CodMaterialMovimento;"
    Me!CodMaterialBaixa.RowSource = "Table/Query"
    Me!CodMaterialBaixa.RowSource = strCbo

    Obrigado pela ajuda!!!

    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Inserir IIf em string para caixa de combinação Empty Re: [Resolvido]Inserir IIf em string para caixa de combinação

    Mensagem  Alexandre Neves 12/7/2013, 21:33

    strCbo = "SELECT CodMaterialMovimento, DescMaterial, EquipeMovimentacao, CMMovimentacao, Sum(SeImed([TipoMovimentacao]='Retirada Equipes',[QtdeMaterialMovimento],[QtdeMaterialMovimento]*-1)) AS Qtde"
    strCbo = strCbo & " FROM TabMateriais INNER JOIN TabMovimentacoes ON TabMateriais.CodMaterial = TabMovimentacoes.CodMaterialMovimento"
    strCbo = strCbo & " WHERE TipoMovimentacao='" & "Baixa Equipes" & "'"
    strCbo = strCbo & " Or TipoMovimentacao='" & "Devolucao Equipe" & "'"
    strCbo = strCbo & " Or TipoMovimentacao='" & "Retirada Equipes" & "'"
    strCbo = strCbo & " And ChecHD='" & Me!CheckHD & "'"
    strCbo = strCbo & " GROUP BY CodMaterialMovimento, DescMaterial, EquipeMovimentacao, CMMovimentacao"
    strCbo = strCbo & " HAVING EquipeMovimentacao=" & Forms!FormMaterialBaixado!EquipeBaixa & "AND CMMovimentacao=" & Me!CMBaixa & "AND Sum(SeImed([TipoMovimentacao]='Retirada Equipes',[QtdeMaterialMovimento],[QtdeMaterialMovimento]*-1))>0"
    strCbo = strCbo & " ORDER BY TabMovimentacoes.CodMaterialMovimento;"
    Me!CodMaterialBaixa.RowSource = "Table/Query"
    Me!CodMaterialBaixa.RowSource = strCbo


    .................................................................................
    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
    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Inserir IIf em string para caixa de combinação Empty Re: [Resolvido]Inserir IIf em string para caixa de combinação

    Mensagem  Leandro 12/7/2013, 23:50

    Alexandre, obrigado, vou testar e volto cá com um parecer.

    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Inserir IIf em string para caixa de combinação Empty Re: [Resolvido]Inserir IIf em string para caixa de combinação

    Mensagem  Leandro 30/7/2013, 18:29

    Boa tarde Alexandre, como vai?
    Estive em férias por isso o tópico ficou tanto tempo parado.
    Voltei hoje à batalha e comecei a mexer novamente nessa parte, inseri a string alterada e agora acusa o erro: "Função 'SeImed' Indefinina na expressão".
    Estou cá fazendo meus testes, caso tenha alguma idéia por favor me repasse, muito obrigado.


    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Inserir IIf em string para caixa de combinação Empty Re: [Resolvido]Inserir IIf em string para caixa de combinação

    Mensagem  Alexandre Neves 30/7/2013, 20:37

    Boa tarde, Leandro
    Nunca uso SeImed. Usei apenas porque já o tinhas usado e funcionou. Por isso, ficou mais fácil adaptar-
    Poderá ser assim
    strCbo = "SELECT CodMaterialMovimento, DescMaterial, EquipeMovimentacao, CMMovimentacao, Sum(IIf([TipoMovimentacao]='Retirada Equipes',[QtdeMaterialMovimento],[QtdeMaterialMovimento]*-1)) AS Qtde"
    strCbo = strCbo & " FROM TabMateriais INNER JOIN TabMovimentacoes ON TabMateriais.CodMaterial = TabMovimentacoes.CodMaterialMovimento"
    strCbo = strCbo & " WHERE TipoMovimentacao='" & "Baixa Equipes" & "'"
    strCbo = strCbo & " Or TipoMovimentacao='" & "Devolucao Equipe" & "'"
    strCbo = strCbo & " Or TipoMovimentacao='" & "Retirada Equipes" & "'"
    strCbo = strCbo & " And ChecHD='" & Me!CheckHD & "'"
    strCbo = strCbo & " GROUP BY CodMaterialMovimento, DescMaterial, EquipeMovimentacao, CMMovimentacao"
    strCbo = strCbo & " HAVING EquipeMovimentacao=" & Forms!FormMaterialBaixado!EquipeBaixa & "AND CMMovimentacao=" & Me!CMBaixa & "AND Sum(IIf([TipoMovimentacao]='Retirada Equipes',[QtdeMaterialMovimento],[QtdeMaterialMovimento]*-1))>0"
    strCbo = strCbo & " ORDER BY TabMovimentacoes.CodMaterialMovimento;"
    Me!CodMaterialBaixa.RowSource = "Table/Query"
    Me!CodMaterialBaixa.RowSource = strCbo

    Abraço,
    Alexandre


    .................................................................................
    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
    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Inserir IIf em string para caixa de combinação Empty Re: [Resolvido]Inserir IIf em string para caixa de combinação

    Mensagem  Leandro 30/7/2013, 21:27

    Muito obrigado Alexandre!

    Funcionou como eu preciso, minha necessidade para montar essa string era para adaptar também a restrição de códigos na combo.


    Abraço


    Conteúdo patrocinado


    [Resolvido]Inserir IIf em string para caixa de combinação Empty Re: [Resolvido]Inserir IIf em string para caixa de combinação

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 29/4/2024, 17:11