Musashi_RS Postado Agosto 27, 2007 Denunciar Share Postado Agosto 27, 2007 Olá, Tenho um arquivo .mdb com duas tabelas dentro: Tabela1 e Tabela2 na minha aplicação em VB6, utilizo um Data Control com DAO 3.51. Preciso de uma instrução SQL que realize uma busca nas duas tabelas pelos registros em que o campo TIPO possua a string armazenada na variável PESQ.No momento estou utilizando assim: Primeiro faz a busca na primeira tabela.SELECT * FROM Tabela1 WHERE Tipo LIKE '*PESQ*'Se não encontrar na primeira tabela faz a busca na segunda:SELECT * FROM Tabela2 WHERE Tipo LIKE '*PESQ*' O problema disso é que não seleciona no DBGrid registros da Tabela1 e Tabela2 ao mesmo tempo. Ou todos da Tabela1 ou todos da tabela2. Por isso eu preciso selecionar apenas em uma instrução SQL. Ou se houver outra forma...PS.: Sei que em SQL se utiliza "%", mas no VB não deu certo. Por isso utilizo "*" que funciona.Desde já agradeço a atenção. :lol: Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Macêdo Postado Agosto 27, 2007 Denunciar Share Postado Agosto 27, 2007 Uma opinião, faça o seguinte teste:Ponha outro FORM, nele insira, ao invés do DataControl, um ADODCInsira um DataGridFaça a ligação do DataGrid com o Controle ADODCPonha no RecordSource do ADODC o comando select para selecionar as duas tabelasdesta forma aparecerá no Grid os campos das duas tabelas como se estivessem em umaOBS: com o Controle ADODC pode usar o "%" Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Agosto 27, 2007 Denunciar Share Postado Agosto 27, 2007 não uso ADODC então não sei se a dica do macedo vai dar certo. mas se não der, eu costumo fazer assim:SELECT * FROM Tabela1 WHERE Tipo LIKE '*PESQ*' UNION ALL SELECT * FROM Tabela2 WHERE Tipo LIKE '*PESQ*'num select só. mas so vai funcionar, se as estruturas das duas tabelas forem IDENTICAS. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Musashi_RS Postado Agosto 27, 2007 Autor Denunciar Share Postado Agosto 27, 2007 Quanto a resposta do Macêdo, fui colocar via código a instrução no RecorddSource do ADODC mas ele não tem essa opção. Como fazer via código? :huh: não uso ADODC então não sei se a dica do macedo vai dar certo. mas se não der, eu costumo fazer assim:SELECT * FROM Tabela1 WHERE Tipo LIKE '*PESQ*' UNION ALL SELECT * FROM Tabela2 WHERE Tipo LIKE '*PESQ*'num select só. mas so vai funcionar, se as estruturas das duas tabelas forem IDENTICAS.OK, realmente a Tabela dois possui um campo a mais. Vou igualar a estrutura então.Obrigado. :lol: Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Agosto 27, 2007 Denunciar Share Postado Agosto 27, 2007 OK, realmente a Tabela dois possui um campo a mais. Vou igualar a estrutura então.Obrigado. :lol:você não precisa necessariamente igualar as estruturas, pode igualar os selects:SELECT Campo1, Campo2 FROM Tabela1 WHERE Tipo LIKE '*PESQ*' UNION ALL SELECT Campo1, Campo2 FROM Tabela2 WHERE Tipo LIKE '*PESQ*' Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Macêdo Postado Agosto 28, 2007 Denunciar Share Postado Agosto 28, 2007 Colocando o controle ADODC você clica nele com o direitoClica em ADODC Propertiesabre então a caixa PROPERTIE PAGESClica em UseConnection StringClica no Botão BUILDabre a caixa PROPRIEDADE DE VINCULAÇÂO DE DADOSNa janela que abre você clica duas vezes no item MICROSOFT JET 4.0 OL DB PROVIDERentão ele salta para a aba conexão onde você clica no botão "..." e seleciona o BDDepois clica em TESTAR CONEXÂODepois em OKele volta para a primeira caixa: PROPERTIE PAGESvocê clica na aba RECORDSOURCENo item COMMAND TYPE escolhe a opção 1- ADCMDTEXTisto habilita a caixa COMMAND TEXT SQLvocê põe sua SQL la dentro agora é so ir na propriedade do DATAGRIDcolocar na propriedade DATASOURCE o nome do controle ADODC, o qual já aparece lá quando você clica na seta pra baixoclicar com o direito sobre o DATAGRID e clicar em RETREVIE FIELD'S PRONTO ele preenche com os campo das duas tabelasDá pra fazer isto tudo via código, por sinal estou abandonando um pouco o controle ADODC, uso ele só quando é para consultas ou uso de GRID's pois facilita bastante, se quiser saber mais é só postar que terei prazer em passar o pouco do conhecimento que tenho. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Musashi_RS
Olá,
Tenho um arquivo .mdb com duas tabelas dentro: Tabela1 e Tabela2 na minha aplicação em VB6, utilizo um Data Control com DAO 3.51.
Preciso de uma instrução SQL que realize uma busca nas duas tabelas pelos registros em que o campo TIPO possua a string armazenada na variável PESQ.
No momento estou utilizando assim:
Primeiro faz a busca na primeira tabela.
SELECT * FROM Tabela1 WHERE Tipo LIKE '*PESQ*'
Se não encontrar na primeira tabela faz a busca na segunda:
SELECT * FROM Tabela2 WHERE Tipo LIKE '*PESQ*'
O problema disso é que não seleciona no DBGrid registros da Tabela1 e Tabela2 ao mesmo tempo. Ou todos da Tabela1 ou todos da tabela2.
Por isso eu preciso selecionar apenas em uma instrução SQL. Ou se houver outra forma...
PS.: Sei que em SQL se utiliza "%", mas no VB não deu certo. Por isso utilizo "*" que funciona.
Desde já agradeço a atenção. :lol:
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.