Ådriano 9 Denunciar post Postado Dezembro 19, 2006 Eu tenho uma query que mostra 17 itens cadastrados e não alterados (pelo menos até agora). ai quando pesquiso o usuario ele ja vem com alguns destes itens que é um menu mostrando o que tem liberado para ele... Ai eu queria fazer uma outra query mostrando apenas os itens que falta ,os itens que não foi adicionado a ele ainda....para evitar colocar duas vezes o mesmo item....tentei assim mais não deu... qryitem1.Close; qryitem1.SQL.Clear; qryitem1.SQL.Add('Select*from item'); qryitem1.SQL.Add('where not item.numero='''+QryitemITEM.AsString+''''); qryitem1.SQL.Add('order by item'); qryitem1.Open; O que sera que saiu errado desta vez????? A queryitem é a que mostra o que o usuario ja tem.... E a queryitem1 seria para mostrar o que ele não tem... 100+ Ådriano http://forum.imasters.com.br/public/style_emoticons/default/natal_happy.gif Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Dezembro 19, 2006 Você vai precisar usar o comando not in no caso isso via SQL, tipo: select *from tabelawhere not tabela.codigo in (select tab.codigo from tabela as tab)and tabela.restricoes = 'suas restricoes' Compartilhar este post Link para o post Compartilhar em outros sites
Ådriano 9 Denunciar post Postado Dezembro 19, 2006 Não consegui ...(9dade......rsrrsrsr) é o seguinte estou fazendo um controle de usuario e funciona bl....Igual a quele que você me mandou....para estudo...Agora que estou podendo ver com calma (férias).NO código que você me mandou ele le a tabela inteira de permissão e me retorna apenas o que não foi gravado nela ainda....sem diferenciar o usuarioAi tentei fazer as tais restrições mais não resultou em nada ....apenas escreve que permição.item não tem um valor padrãoSó que ai eu queria que ela me retorna-se o que ele não tem....Então ..tenho uma tabela de" item" do menu e outra de "permissão "As duas os campos são de numeros em tabelas feitas no access..:a de "Item" tem:numero: que é um campo de numero.E "permissão" que tem:Item :Que tb é um campo numero.tentei explicar o maximo ficou até longo de+....De uma olhada ai Amados mestresss.... Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Dezembro 20, 2006 Se eu entendi direito, poderia ser algo do tipo: select *from itemwhere not item.numero in (select permissao.item from permissao) where permissao.usuario = ?cod_usuario_X? Se não são estes os nomes dos campos, teria somente que alterar, no caso o SQL apenas vai pegar tudo da tabela item onde ainda não esta dentro da tabela de permissao para o usuário X. Compartilhar este post Link para o post Compartilhar em outros sites
Ådriano 9 Denunciar post Postado Dezembro 20, 2006 Ainda deu erro ....escrevi deste jeito:Qryitem1.Close;qryitem1.SQL.Clear;qryitem1.SQL.Add('select* ');qryitem1.SQL.Add('From item');qryitem1.SQL.Add('Where not item.numero in (select Perm.item From PERM)');Qryitem1.SQL.Add('where perm.usuario='''+edit1.text+'''');qryitem1.open;Se você pesquisar sem usar a linha ...Qryitem1.SQL.Add('where perm.usuario='''+edit1.text+'''');...Ele mostra tudo o que a tabela item tem que ainda não gravou na tabela permissao...Agora coloca a linha escreve este erro:Project Adriano.exe raised exception Class EOleException with message'Erro de Sintaxe( Operador Faltando)NA expressão de Consulta 'Not Item.numero in (Select Permissao.item from permissao)Where Permissao.Usuario='Adriano'''.Precess Stopped.Blablabla... Compartilhar este post Link para o post Compartilhar em outros sites
Vinicius Callegaro 0 Denunciar post Postado Dezembro 20, 2006 Teste.... Qryitem1.Close;qryitem1.SQL.Clear;qryitem1.SQL.Add('select * ');qryitem1.SQL.Add('From item');qryitem1.SQL.Add('Where numero not in ');qryitem1.SQL.Add(' (select item From PERM');Qryitem1.SQL.Add(' where usuario='+QuotedStr(edit1.text)+')');qryitem1.open; Post editado. Linha do where faltava um '+' Compartilhar este post Link para o post Compartilhar em outros sites
Ådriano 9 Denunciar post Postado Dezembro 21, 2006 Deu certinho.............Na linha Qryitem1.SQL.Add(' where usuario='QuotedStr(edit1.text)+')');Faltou um sinal de Adição para funcionar e ai ficou assim:Qryitem1.SQL.Add(' where usuario='+QuotedStr(edit1.text)+')');Mas funcionou Muito Obrigado.... Compartilhar este post Link para o post Compartilhar em outros sites
Vinicius Callegaro 0 Denunciar post Postado Dezembro 21, 2006 Estamos aí http://forum.imasters.com.br/public/style_emoticons/default/natal_noel.gif Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Dezembro 21, 2006 E tb você havia fechado o parênteses ( antes da hora, na linha: qryitem1.SQL.Add('Where not item.numero in (select Perm.item From PERM)'); deveria de ser qryitem1.SQL.Add('Where not item.numero in (select Perm.item From PERM'); Ficando como o SQL que o Vinicius passou... Compartilhar este post Link para o post Compartilhar em outros sites