Fórum Dúvida em SQL #183515
22/09/2003
0
Meu banco de dados é Access, possui duas tabelas (Tab1 e Tab2) e é acessado via ADO.
Gostaria de saber se é possível pesquisar dados em Tab1, utilizando informações que sejam provenientes de Tab1 [color=red:22f3eae1f4][b:22f3eae1f4]e[/b:22f3eae1f4][/color:22f3eae1f4] também de Tab2.
Exemplo:
Tab1 possui os campos: NumeroSerie e AnoFrabricacao.
Tab2 possui os campos: Tipo, Cor e Data.
Desejo pesquisar os registros da [b:22f3eae1f4]Tab1 [/b:22f3eae1f4]que possuem [b:22f3eae1f4]AnoFrabricacao [/b:22f3eae1f4]entre 1999 e 2003 [color=red:22f3eae1f4][b:22f3eae1f4]e[/b:22f3eae1f4][/color:22f3eae1f4] que sejam do [b:22f3eae1f4]Tipo [/b:22f3eae1f4]´X´ e da [b:22f3eae1f4]Cor [/b:22f3eae1f4]´Branca´ (dados [b:22f3eae1f4]Tipo [/b:22f3eae1f4]e [b:22f3eae1f4]Cor [/b:22f3eae1f4]encontrados na Tab2).
É possível fazer uma pesquisa dessas envolvendo dados de duas tabelas diferentes? Se sim, como?
Grato.
wbb
Wbb
Curtir tópico
+ 0Posts
22/09/2003
Koplin
Tab1.locate(´campo_1;campo_2;campo_3´),vararrayoff([campo_1.value,tab2Campo_1.value,Tab2.Campo_2.value]),[]);
Podendo ainda usar os parametros opcionais de pesquisa. Consulte o Help do Deplhi que mostra detalhes
Gostei + 0
22/09/2003
Wbb
Sobre a resposta que você indicou, desculpe minha ignorância mas não sei muita coisa sobre SQL ou outros recursos relacionados de determinados controles, tais como parâmetros, etc. Dei uma olhada no help, mas tem coisas, as quais todos já passamos, em que a resposta está na nossa cara e não conseguimos ver. Sendo assim, se possível, você poderia me passar mais detalhes?
Grato.
wbb
OBS.: [b:ef1a7e42f8]Tab1 [/b:ef1a7e42f8]e [b:ef1a7e42f8]Tab2 [/b:ef1a7e42f8]são os nomes das tabelas contidas num banco de dados do tipo Access. O acesso ao BD é feito via ADOConnection.
Gostei + 0
22/09/2003
Koplin
Eu é que peço desculpas, não prestei atenção na sua pergunta direito. O telefone tocou e eu perdi o fio da meada.
Mas olhando melhor sua questão, Voce precisa encontrar vários registros entre determinado valor. Sendo assim, A opção é voce usar uma consulta SQL;
Select Tab1.*, Tab2.cor, tab2.tipo from Tab1, tab2 where tab2.campo_secundario=tab1.campo_chave and tab1.AnoFabricacao between 2000 and 2001 and tab2.cor=´BRANCA´ Tab2.tipo=´X´ order by tab1.anofabricacao
Se for um unico ano faça
tab1.AnoFabricacao = 2000
A tabela Tab2 precisa ter um campo que reflita o valor do campo chave TAb1 (ou outro campo), para voce poder fazer a ligação, e voce não disse se tem ou quais são estes campos.
Campo_secundario da tab2 = campo_chave de Tab1
A query assim montada vai trazer para voce todos os registros de tab1 que estiverem dentro do ano de fabricacao definido pela consulta e com o valor definido pelo campo <<numerodeserie>> e de tab2 cujo registro secundário corresponda ao primário de Tab1.
Se numerodeserie for string o valor deve estar entre aspas simples <<´123456´>
Vc pode usar outros campos seguindo a mesma filosofia
Se ficou confuso, me manda um email com os detalhes das duas tabelas que te mando a sql
Gostei + 0
23/09/2003
Wbb
Obrigado!
wbb
Gostei + 0
24/09/2003
Wbb
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)